顯示具有 研究所 標籤的文章。 顯示所有文章
顯示具有 研究所 標籤的文章。 顯示所有文章

2010年8月14日 星期六

Never Ends...

最近為了畢業論文花了兩個禮拜左右的時間
研究關於Linux Performance Monitoring的相關技術
從原本完全不知道如何做Performance的Monitoring
到發現原來有不少Open Sourced的Performance Monitoring的Tools
像是:SystemTap、LTTng、Ftrace等工具...
以及其底層所實做的技術:Kprobes、Tracepoints、Ptrace...等

在試過幾個不同的技術後
最後決定Kernel Space Tracing
使用Performance Overhead較高 (因為需要插入Breakpoint instructions)
但可以在不更動所欲偵測程式的source code的情況下做Dynamic Analysis的Kprobes

而User Space Tracing則打算使用GNU GDB底層所使用的Ptrace
(原本打算使用Ptrace的增進版 - Utrace,不過由於尚未支援ARM平台所以只好作罷...)

另外為了能讓資料由Kernel Space pass到User Space的Overhead降到最低
所以還稍微研究了Relay (前身為Relayfs)

以及為了提供nanosecond等級的時間精準度
所打算使用的hrtimer (High Resolution Timer)

但人算不如天算...
原先想說大概基本所需要技術都研究的差不多了
剩下的就是跟老師討論實做在我們3D Chip平台上所需的細節後
就可以真正開始設計這套系統...

結果沒想到今天在報告關於Kprobes的進度後
老師又丟了一個新的議題要我解決:
算出Process Context Switch所花的時間
啊吼... 這下真的是在我頭上投下了一個超大顆的震撼彈!!
(難不成是要我去修改Linux Kernel的Scheduler?! 囧rz)
因為不管是Kprobes或是Ptrace...
其原理都是在fucntion的entry或是exit處甚至是function內部再加上int 3的assembly code
(x86、x86_64平台上的breakpoint instruction,也就是soft interrupt)
在對CPU發出soft interrupt後再將控制權轉交給其他的handlers
如此就可以透過此方法來計算function enter及return的timestamps
進而計算出function所花的執行時間,達到Performance Monitoring的功能
但由於Context Switch發生的時間點完全無法預測
因此也無法得知需要在哪個部位下breakpoints

原本是想找理由"婉拒"
但沒想到老師搬出Linux的time程式
說可以測量出real、user、sys這三種時間

我之前就記得這個程式也只是單純計算程式在User Space及Kernel Space的執行時間
並沒有特別將Context Switch的時間給計算出來...
但因為討論的當下並沒有明確的證據可以證明
老師又很堅持他的論點,所以只好妥協... QQ

果然之後查了user就是程式在User Space所執行的時間
sys就是程式在Kernel Space所執行的時間
而且時間精準度只有second等級 (頂多到millisecond...)
底層實做方法則是透過wait3() system call來實做的
雖然沒有很仔細的好好trace過time的source code
但感覺起來用Kprobes、Ptrace所算出來的時間可能還更精準一點?!


不過有個好消息是我有可能不用作硬體整合
可以專心開發Performance Monitoring Tool了!! (喔耶~ \(●口●)/)
但看來Context Switch的問題勢必是會被要求得解決了?! QQ
目前查了一些資料 是的確有計算Context Switch的Benchmark
(像是:LMbench)
不過還不知道其底層所實做的方法為何就是...
(倒是覺得自己越來越像是在OS Lab了... XDDD)

目前還有另外一個隱憂就是目前測試都是在x86的平台上做的
天曉得移植到板子的ARM平台後又會發生啥鬼事情?!
還有root filesystem若有缺少所需使用的Library可能也得自行想辦法加入... QQ


果然就如同學長所說的
若是他能預測老師的想法他早就畢業了...

這次報告前完全沒想到會有Context Switch相關的問題要解決
沒想到老師還是給它揪了出來!!
老師的想法果真是很難預測..... QQ

就連才要在台灣待兩個月的德國佬今天也被我們老師assign工作要做了
原本以為兩個月的時間應該光瞭解一些基礎知識就差不多要回國哩
但老師還是assign他要用SystemC做一個Flash Memory版的cache
甚至還要求能轉換成RTL下到FPGA上
(不過我想這點時間能完成SystemC modules大概就很不錯了...)

實驗室真的是越來越"強大"了!! <囧>

2010年7月22日 星期四

Recently...

唸研究所滿一年了...
馬上也就要碩一升碩二了~
時間過得真快...
也體會了不少黑暗學術界的辛酸血淚... QQ

當初進研究所的時候是想要專心研究Embedded Linux
雖然還是有做到Device Driver相關的Maintenance
不過最後還是被老闆抓去做硬體整合... Orz

能有機會學到以前輔大不太常碰到的硬體是個還蠻難得的機會
而且軟體寫久了也會想瞭解一下最底層的硬體是怎樣在運作的
不過整合最討厭的就是得先等到別人開發到一定的程度後才能開始工作
(就某方面來說這也很像Device Driver的開發
必須等到軟/硬體都有一定的程度侯才能驗證自己寫的是否正確無誤... QQ)
再加上設計者不是自己
因此只能單純就Bus上的行為來觀察IP是否正常運作
沒問題的話倒還好...
機車的就是當問題發生的時候常常不知道為啥會出錯!!!!!
有可能是我們自己整合的時候有修改到錯的地方
也有可能是他們本身設計上的錯誤...
雖然目前主要還是學長在處理這方面的問題
不過看了真的是覺得沒啥勁.....
而且之後還要把我們實驗室的CPU和ICE一起給整進去
最後還要能Tape out成一顆晶片回來!!
(聽說光排隊等Tape out就要一、兩個月?! QQ)
一想到就整個頭很大..................... <囧>

原本以為自己碩士畢業論文大概就是跟軟/硬體整合相關的了
沒想到上週老闆又提起了當初他所提的軟/硬體效能監測工具的東西出來
這次再被提就真的是逃不掉了...
硬著頭皮就是得給它做出來才行!!

一開始對軟體的效能監測一直都沒啥頭緒
只知道用最簡單的printf()或是printk()來印出所執行的時間
但這些function calls本身的overhead就非常重
而且若想要移植到新的應用程式就得重新寫過
對效能和可移植性來說都是非常不好的方法

再加上在有OS的情況下因為OS Scheduler的關係...
要針對各個應用程式來監測便變得更加的困難
因此勢必得從Kernel層本身來下手

在書上無意間看到了LTTng (Linux Trace Toolkit Next Generation) 這套工具
查了以後才發現這是套非常強大的Open-Sourced的軟體
不但可以針對Kernel Space及User Space來監測其效能
甚至還提供了LTTV (LTTng Viewer) 這套GUI介面的軟體來分析其所擷取的效能分析結果
而且最棒的是作者在他的官方網頁上都有放他所投出去的Papers和Presentations
連他自己的博士論文都完整的放在網頁上供人點閱
也就此瞭解到了不少Kernel Source本身
或是別人release的Kernel Patches來協助完成tracing / debugging的功能
像是:
GNU GDB和strace所使用的ptrace() system call
Kprobes
LTTng作者:Mathieu Desnoyers (神人!!) 所開發的Kernel MarkerTracepoints
IBM工程師特別針對Device Driver tracing / debugging的Linux Driver Tracing Interface (DTI)
以及relay (前身為relayfs)

希望在研究後也可以設計出自己一套基本的軟/硬體效能監測的工具!! XDDD

另外Linux Symposium也是一個超棒的研討會
很多Mainline Linux Kernel所包含的技術都有在這研討會上發表過Papers
(還蠻希望未來能有一天可以參加這種研討會的... XDDD)

前兩天還去上了國家晶片研究中心(CIC)開的Bootloader的課程
對程式底層架構、Linker script和U-boot也終於是有了一點概念...
不過ARM的assembly code實在是很不熟!! QQ


雖然還沒開始正式接觸到硬體設計的部份
不過就目前來說還是對Linux Kernel比較有興趣點... >M<"
而且這也比較符合當初進研究所希望做的Linux Kernel相關研究
自己也能比較有自己的進度 不用每次都要等別人修改
(但Overloading也跟著變重很多就是... QQ)


還不曉得最近看的東西是否真的可以用在我們實驗室的平台上
x86或x64平台的支援還是比ARM要完整的多了...
而且我們實驗室用的板子是廠商自己開發的
相對於有Open-Sourced支援的Versatile平台限制可能也會多了不少?!
還是得花時間再研究一下其可行性才行.....


希望這真的是我最後的畢業題目了...
之前做的事情對老師來說真的只是在"練功"
而且就"練功"而言來說還真的是不太好練... <囧>

現在的Overloading已經接近滿載!!
而且還有要帶學弟...etc 的事情要弄
再被assigned其他的東西要做我就真的是要先自爆嚕!!!!! (●皿●)"
另外最重要的當然就是希望能兩年準時畢業啦!! XDDD

2009年5月27日 星期三

論文規劃計算機

GO!
Starting on: 9/1/2009
Ending on: 6/30/2011

There are 666 days to complete the assignment.

我的結果

----------------------------------

之前有看到一個可以幫你規劃研究所進度的網站
只要你輸入你計畫開始的時間
和你預定結束的時間
它就會大概的幫你規劃好你每個階段所應完成的事情
點進去每個項目都還可以有更詳細的說明...

雖然只是個大方向
內容也很籠統...
不過還是可以了解一下寫論文的大概流程?! XDDD


有興趣的人可以去玩玩:Dissertation and Thesis Calculator

2009年5月8日 星期五

研究所考試之旅...

魔術數字:07
從開始準備研究所到現在
今天終於是順利的劃上句點了!!

回想從去年七月起...
一開始只想做專題 不想讀書
到後來九、十月都坐在TKB噴了七、八千塊來補回我所翹的課
十一月才正式開始好好自己讀
甚至到十二月底、一月開始才真正進入到"很拼"的狀態...

在K中二月快考試的時候看到一個人在桌子上一直在倒數
還寫著"台大資工"聳然的四個大字!!
原本都覺得他很煩 所以每次看到都會把他擦掉
但倒數到最後幾天的時候看到他寫了一句話:"2XX天的努力"
果然...
想進台大就是需要這種毅力!!
從十一月開始算起到二月也才四個月左右
算一算加起來不過12X天而已...
比起來我看書的時間是人家一半不到
所以在考前面幾間的時候一直不是很順手
只有清大覺得還OK
但高手太多 大家都覺得簡單
渺小的我根本不足構成威脅!!
最後放榜也證明了我跟其他人的差距...
放了前面五間 連一個備取都沒有
算是給我死的很痛快!! QQ

不過自己原本給自己的定位就是在中字輩左右
所以在心態上也就不太在意...
也很平靜的去考了中央、中正、中山

在考中央的時候原本以為自己很有希望的
上午考得很高興 沒想到下午的計組爆得那麼慘
再加上考中正的時候也是一整個大爆炸!!
程式C語言都不會寫...
數學+計算機系統也都不是寫得很順手
(好像在政大考的:成功+中正都寫得不是很好~ 完全沒有"主場優勢"... Orz)

心灰意冷的我原本是不抱太大的期望的
也做好了可能得重考的心裡準備去考中山
沒想到中山的題目還應付得來
前面計組+資結&OS都還寫得不錯
只有後面的數學危險了一點...
(該拿的基本題都沒拿到 果然數學是我的罩門... QQ)

結果放榜出來:
中央:備取第201名
有備跟沒備一樣 但至少在某方面還算是個肯定...

中正:落榜
完全是在預料中的事情... =M=a

中山:備取第31名
這個放出來的時候就爽的多了!!
備取的夠前面... 應該是有機會可以上
所以放榜當天就展開了找教授之旅!!

結果沒想到教授還真的是有夠難找
寄了九封E-mail:
六個回我說滿了
一個沒回我
只有兩個教授有意願再與我面談

不過在與教授面談後我也很快就確定了要跟的教授
還算是順利... XDDD

剩下的就是開始等備取
中山資工備取算快的
一開始正取報到的時候就先抓了20個備取的一起去
因此也加快了備取進度
5/6開始備取
5/7就備到我了
再加上今天早上終於接到07開頭的電話...
等這通等了好幾個禮拜了!! XDDD
接到這通也代表我正式有研究所可以唸了~ \(●O●)/



雖然中山是我當初報的八間中倒數第一或第二的志願
但好歹也是個中字輩
算一算也算是換血成功的!! >M<"
而且花這點時間 最後能有這樣的結果
套句小胖的話:C/P值算是很高的了!! XDDD

剩下的只要能順利畢業就可以成為研究生了...


最後To哨子:
我筆記可以給妳了!! XDDD
希望妳明年能考得比我更好

考試這檔事就是花多少的時間有多少的成果
妳的時間還夠...
只要肯下定決心好好讀
台交清成絕對不會是問題!!
(連我這麼晚讀都可以"矇"上中山了... XDDD)

希望明年可以去公館or新竹找妳...
不然一起來高雄找我也是不錯的!! XDDD


各位以後有機會到高雄的話也歡迎來找我玩~~~ ^u^b

2009年4月9日 星期四

該是面對的時候了...


這幾天真的是過得很愜意~
春假那幾天不是在玩Facebook上的黑手黨遊戲
就是在CS Online上面殺殭屍...
很久沒有這樣"頹廢"的過生活了!! XDDD

不過果然已經過了貪玩的年紀...
春假過了就開始想自己看點東西充實自己
於是昨天去天瓏買了已經喊了很久要看的Linux (Fedora 10)的書...
從昨天開始在VMware上邊看邊try~
再加上Android也有開始上網看些範例研究一下Codes...
接下來也還有兩個Projects要做...
果然這才是我要的生活!! XDDD
看到自己在看書前所希望考完要做的事能一一上軌道真的是件不錯的事!!

但... 不知道這種生活還能過多久?!
再過一天多中央就要放榜了... 囧
也是到了該面對的時候!!
不過自己也已經做好了再一次"榜上無名"的心理準備~
實在是因為最後一科的計組考的太不理想了...
不然前面兩科還不錯有把握的說?! (或許... =M=a)
只能期望前面兩科的成績能好到可以補足我計組所Lose掉的分數... QQ

不過就算中央沒有上我也不會意外~
最慘的就是連中山都沒有!!
(中正能上的或然率已經趨近於0%了... Orz)
要是真的連最後這道防線都失守!!
(數學果然是我的罩門... QQ)
就真的是得掰掰再重來一次了... =M=a
到時我就得再重回那暗無天日的讀書 while loop
也可能得暫時放下or無法全心投入自己想做的事了!!

才剛考完不過快兩個禮拜就已經不想重回準備考試的日子...
心態實在是變化的很快!! QQ



總之...
希望最後能至少給我隨便矇上一間~
(當然如果是中央最好!! XDDD)
我是真的很想趕快進去實驗室做Projects的!! >M<"

2009年3月31日 星期二

清大成績出爐...


清大成績出爐...
----------------------------------
基礎計算機科學(線代+離散):38分
計算機系統(計組+OS+資結+演算法):52分
語文能力測驗(英文):36分
----------------------------------
總分:90分
最低錄取總分:124分

囧... 整個被數學給拖累!!
而且幾乎是每間考每間爆
其他四科都還不會這麼慘~
果然平常的練習不夠馬上在考場上顯現出來... QQ

跟最低錄取分數差了34分...
要是能再多對個三題大概就能有個備取了?!
只可惜自己數學太爛+練習不夠+鬼打牆?! QQ

計算機系統52分還算過得去...
要是數學再好點就還蠻有機會了!! 可惜.........

英文倒是有明顯的退步... =M=a
雖然台大和清大都只是考個標準
我也都有過...
不過以往都只靠英文在撐的我這兩次還真的是考得頗爛的... >M<"
果然老本都吃得差不多了......
看來等研究所(如果)有個下落
英文還是得給他加強一下了!! QQ

至於成大的成績就很慘了...
一考完就知道自己考不好
偏偏這次題目我覺得應該還算簡單
也因此正取也飆到了平均:69.67分
備取也要:54.67分
(我才38.33分.......... Orz)
整個是考爆!! QQ


總之沒上就是沒上了!!
剩下中央和中山看有沒有機會嚕... GG~

2009年3月29日 星期日

考完了...

爽?!

結束了...
為期將近五個月的奮鬥(不含補習)...
說實在跟別的人比起來算是準備很短的了!!
也因此目前放了五間連一間備取都沒有... QQ
果然花多少的時間得多少的成果!! Orz

今天和昨天考中山、中山...

中正大概沒機會了
當我看到他配分56分的C++程式題後我就沒心在繼續考下去了...
以往他們都有出點選擇...
題目就有點像在考SCJP那種的程式觀念題
所以都還可以應付
但沒想到今年一題選擇題都沒有
還要寫C++的code
如果是一般的程式題就算了
但還要寫implement malloc()這個function的程式
我連malloc()在做些啥都不知道了
更何況還要我寫C++來implement它!!
所以整個G掉...
再加上數學也寫得不是很好
計組+OS也沒很好寫
整個算是炸到了!!
考到後面也沒啥心情考...
還不如早點交捲去看書~ Orz
(雖然我最後還是有撐完它... =M=a)

今天考中山...
計組第一大題就給大家來個下馬威
算是自己出的題型
四個小題只寫了兩題
但我想大家應該也都不太會...
所以影響應該還好?!
後面的就有些基本題
有些沒啥把握or不太會
但大致上都還算好寫~
只可惜最後發現自己有一小題(5%)的Cache 的index bit好像粗心算錯了...

第二節考OS+資結
這科是我今天考得三科裡面覺得最好寫的
大部分都有寫出來
可非常非常可惜的是第一大題(15%)的答案我竟然算錯!!!!!
++value我竟然想成value++!!
整個output都少算了1...
偏偏這配分又特別重: 15%!!!!
算到這邊光粗心就最起碼少了20分了!!
自己總是在鬼打牆... 真的很可惜!! 囧rz
今年算是很喜歡考failure function...
交大、清大+今天的中山都有考~
不過好險在考清大之前就有上網查過
所以沒有miss掉分數...

最後一節是數學
果然數學是我的罩門
考完碰到蔡侑縉和林世傑他們也都說數學比較會寫
前面兩科反而比較難!! (剛好跟我相反... Orz)
光是第一和第二大題共30%的分數我就噴了!!
還有equivalent的和組合基本題我竟然不會!!
瞬間又噴了15%... 囧rz
算一算數學大概最高只剩4x分了!! Orz
果然題目練習的不夠+記憶力差真的是害死自己... Orz

算算三科考下來光粗心錯的20分+該會的基本題15分共45分自己就miss掉了...
不然整個考下來應該可以更穩點!!
(我恨鬼打牆... QQ)

不過好佳在前面兩科考得還算OK...
雖然粗心錯了但只要其他有算的都有對就還是有機會!!
再加上真的高手早就上前面的學校不會來考了...
所以如果最後平均能有5X就應該至少有個備取?!

只怕又是自己太樂觀最後出來的成績並沒如自己所估計的!!
那...................................................







哨子妳就有人可以跟你組個讀書會了!! QQ


最後的機會:中央+中山...
希望能中任何一間!!
(不過最理想的當然還是中央就能先上了... XDDD)



整個讀下來給自己打75分!!
還有很大的進步空間!!
要是自己能再早點有心開始準備我想結局應該會更好?!

不過不管如何這已經是我這輩子以來最努力的一段時光了!!
我也發現我是可以讀的... 是可以真的拼這麼久的!!
就算最後真的不幸得再重考一年... QQ (希望不會... Orz)
我相信我一定可以再ㄍㄧㄥ住好好唸書的!!
有了這段經歷...
也相信以後的困難都更能迎刃而解!!
這大概是我這段時間讀下來最大的收穫了吧... XDDD


不過考完突然覺得有點失去方向感
但好像也有不少想做的事情要做...?!
反正不管最後結局如何~
離最後的放榜還有將近一個月!!
先讓自己放一個月的假再說吧~~~ >M<"
放假嚕~~~~~ \(^▽^)/ YA!!!!!!!!!!!!!!!!

2009年3月26日 星期四

兵敗如山倒...

慘!!!

放了五間學校...
全軍覆沒!!
連個備取的機會都沒有... QQ
算是真的給我死得很痛快!!!!!

照這態勢下來中央大概也沒啥希望了...
週末中正、中山似乎是最後一道防線

果然研究所沒這麼好考
不好好的準備個半年、八個月↑是沒什麼希望的!!
因為大家都是半年、八個月↑
又沒比其他人聰明
只有努力的人才能成功!!
只能說自己太晚花心思下去做了...

雖然大家都說中正、中山會好考很多
因為前面上榜的都不會再去考了
不過以我現在的態勢+實力
再加上這禮拜還卡了個工數期中考佔掉我不少時間...
所以現在已經有了再來一年的心理準備了~

清大沒上沒話說
畢竟我準備的時間本來就比較短
實力也沒比別人強
高手雲集的情況下只有敗下陣來的份...

倒是台科大算是我比較意外的
因為分數跟我自己所估計的有段落差
不知道是自己太樂觀?!
字寫太潦草?!
估計錯誤?!
或是更慘的自以為對?!

總之結果已經出來...
只能默默的接受它
最後週末的中正、中山
還是好好準備吧
剩一天多的時間
看多少算多少
反正心理準備已經有...
剩下的就交由來安排了!!



換個角度想想...
如果真的沒上至少哨子就有人陪可以一起奮鬥了?!
我也不會再是一個人在戰場上孤軍奮鬥?!
再真的準備一年台清交也更有機會?!
所以好像也還OK.......?! 囧rz

(我真樂觀...?! QQ)



小新清大備15... 應該是可以上沒問題!!
在這邊恭喜他了~ (雖然他看不到... XDDD)

果然花多少時間準備就有多少成果...
在此我殘酷的親身印證了這個事實!!!!!

2009年3月22日 星期日

[黑特] 幹你他媽的計組!!

原本是不想上來PO文的...

但實在是太靠夭了!!

計組整個被裱很大!!!!!

雖然自己知道邏輯電路會考→CLA、SHIFT register...etc

但從來沒想到會幾乎全部都考這個!!

媽的考卷拿到的時候就噴了...

之前就有想說如果有考就送他

畢竟幾乎都是93年以前才會考這種的

應該比例不會佔太重

結果沒想到這次整個大G!!

OS的比率也只剩1/4

還是多選題~

自己寫的也不是很有把握... Orz

原本上午考的兩科想說還不錯頗有機會的

下午要考的計組和OS我又比較有把握...

這下全部洗牌重聽了!! 幹!!!!

心情就好像拿了可以湊大四喜的牌結果放炮被胡一樣!!!!!

真是他媽的雞掰!!!!!!

如果我中央沒上...

80%一定是計組害的~

棍!!!!!

現在只能祈禱大家跟我一樣都不怎會了...

希望前面兩科真的如我所感覺的考得還不錯~

能夠補一下噴掉的計組...

不然就..... QQ

2009年2月7日 星期六

缺水...

所以來灌個...


快考試了...
可拜自己的"記憶力"所賜
現在實在是沒啥把握

常常看了這個就忘記了之前看的
導致重複著浪費時間在看一些早就看過的東西
考古題也才做一點點...
沒"實戰"的經驗實在是沒啥信心
稍微跳到比較像"考試"的題目自己就整個亂掉了!!

不知道自己是怎樣...
到底哪跟筋不對?!
還是Memory的容量太少只好超過的就全部Swap out...?!
資料總是存在Cache果然不是件好事...
重開機後資料就全沒了!! 棍~ QQ

那些比較前面學校較為艱澀的題目現在更是不敢多做奢望...

也只能靠多做點題目加深點感覺和印象了
能做多少算多少 能記多少算多少...

不然對於目前的自己...








實在是沒什麼信心....................