

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、進程運行軌跡的跟蹤與統(tǒng)計 進程運行軌跡的跟蹤與統(tǒng)計難度系數(shù):★★★☆☆實驗目的 實驗目的? 掌握 Linux 下的多進程編程技術;? 通過對進程運行軌跡的跟蹤來形象化進程的概念;? 在進程運行軌跡跟蹤的基礎上進行相應的數(shù)據(jù)統(tǒng)計,從而能對進程調度算法進行實際的量化評價,更進一步加深對調度和調度算法的理解,獲得能在實際操作系統(tǒng)上對調度算法進行實驗數(shù)據(jù)對比的直接經驗。實驗內容 實驗內容進程從創(chuàng)建(Linux 下調用 fork())到結束的整個
2、過程就是進程的生命期,進程在其生命期中的運行軌跡實際上就表現(xiàn)為進程狀態(tài)的多次切換,如進程創(chuàng)建以后會成為就緒態(tài);當該進程被調度以后會切換到運行態(tài);在運行的過程中如果啟動了一個文件讀寫操作,操作系統(tǒng)會將該進程切換到阻塞態(tài)(等待態(tài))從而讓出 CPU;當文件讀寫完畢以后,操作系統(tǒng)會在將其切換成就緒態(tài),等待進程調度算法來調度該進程執(zhí)行……本次實驗包括如下三個方面的內容:? 基于模板“process.c”編寫多進程的樣本程序,實現(xiàn)如下功能:? 所有
3、子進程都并行運行,每個子進程的實際運行時間一般不超過30秒;? 父進程向標準輸出打印所有子進程的 id,并在所有子進程都退出后才退出;? 在 Linux 0.11上實現(xiàn)進程運行軌跡的跟蹤?;救蝿帐窃趦群酥芯S護一個日志文件/var/process.log,把從操作系統(tǒng)啟動到系統(tǒng)關機過程中所有進程的運行軌跡都記錄在這一 log 文件中。? 在修改過的0.11上運行樣本程序,通過分析 log 文件,統(tǒng)計該程序建立的所有進程的等待時間、完成時
4、間(周轉時間)和運行時間,然后計算平均等待時間,平均完成時間和吞吐量。可以自己編寫統(tǒng)計程序,也可以使用 python 腳本程序—— stat_log.py ——進行統(tǒng)計。? 修改0.11進程調度的時間片,然后再運行同樣的樣本程序,統(tǒng)計同樣的時間數(shù)據(jù),和原有的情況對比,體會不同時間片帶來的差異。/var/process.log 文件的格式必須為:pid X time其中:? pid 是進程的 ID;? X 可以是 N,J,R,W
5、 和 E 中的任意一個,分別表示進程新建(N)、進入就緒態(tài)(J)、進入運行態(tài)(R)、進入阻塞態(tài)(W)和退出(E);? time 表示 X 發(fā)生的時間。這個時間不是物理時間,而是系統(tǒng)的滴答時間(tick);? 三個字段之間用制表符分隔。例如:12 N 1056評分標準 評分標準? process.c,50%? 日志文件建立成功,5%? 能向日志文件輸出信息,5%? 5種狀態(tài)都能輸出,10%(每種2%)? 調度算法修改,10%? 實驗報
6、告,20%實驗提示 實驗提示process.c 的編寫涉及到 fork()和 wait()系統(tǒng)調用,請自行查閱相關文獻。0.11內核修改涉及到 init/main.c、kernel/fork.c 和 kernel/sched.c,開始實驗前如果能詳細閱讀《注釋》一書的相關部分,會大有裨益。編寫樣本程序 編寫樣本程序所謂樣本程序,就是一個生成各種進程的程序。我們的對0.11的修改把系統(tǒng)對它們的調度情況都記錄到 log 文件中。在修改調度算
7、法或調度參數(shù)后再運行完全一樣的樣本程序,可以檢驗調度算法的優(yōu)劣。理論上,此程序可以在任何 Unix/Linux 上運行,所以建議在Ubuntu 上調試通過后,再拷貝到0.11下運行。process.c 是樣本程序的模板。它主要實現(xiàn)了一個函數(shù):/** 此函數(shù)按照參數(shù)占用 CPU 和 I/O 時間* last: 函數(shù)實際占用 CPU 和 I/O 的總時間,不含在就緒隊列中的時間,>=0是必須的* cpu_time: 一次連續(xù)占用 CP
8、U 的時間,>=0是必須的* io_time: 一次 I/O 消耗的時間,>=0是必須的* 如果 last > cpu_time + io_time,則往復多次占用 CPU 和 I/O,直到總運行時間超過 last為止* 所有時間的單位為秒*/cpuio_bound(int last, int cpu_time, int io_time);比如一個進程如果要占用10秒的 CPU 時間,它可以調用:cpuio_bound
9、(10, 1, 0); // 只要 cpu_time>0,io_time=0,效果相同以 I/O 為主要任務:cpuio_bound(10, 0, 1); // 只要 cpu_time=0,io_time>0,效果相同CPU 和 I/O 各1秒鐘輪回:cpuio_bound(10, 1, 1);較多的 I/O,較少的 CPU:cpuio_bound(10, 1, 9); // I/O 時間是 CPU 時間的9倍修改此模
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- hit操作系統(tǒng)實驗三指導書
- 操作系統(tǒng)實驗指導書
- linux操作系統(tǒng)實驗指導書
- 操作系統(tǒng)實驗一指導手冊
- 2013操作系統(tǒng)實驗指導書
- 操作系統(tǒng)內存管理實驗指導書
- 實驗1和2指導書
- 操作系統(tǒng)實訓指導書
- 操作系統(tǒng)結構分析指導書
- 操作系統(tǒng)課程設計指導書
- genex assistant 3.5指導書
- 面向對象程序設計實驗四指導書
- 操作系統(tǒng)實驗三
- 實驗指導書-《財務實驗操作》
- 三坐標操作規(guī)范指導書
- 實驗指導書
- 《操作系統(tǒng)》學習指導
- 操作系統(tǒng)實驗
- isaac操作指導書
- 《信號與系統(tǒng)》實驗指導書
評論
0/150
提交評論