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