2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、進程運行軌跡的跟蹤與統(tǒng)計 進程運行軌跡的跟蹤與統(tǒng)計難度系數(shù):★★★☆☆實驗?zāi)康?實驗?zāi)康? 掌握 Linux 下的多進程編程技術(shù);? 通過對進程運行軌跡的跟蹤來形象化進程的概念;? 在進程運行軌跡跟蹤的基礎(chǔ)上進行相應(yīng)的數(shù)據(jù)統(tǒng)計,從而能對進程調(diào)度算法進行實際的量化評價,更進一步加深對調(diào)度和調(diào)度算法的理解,獲得能在實際操作系統(tǒng)上對調(diào)度算法進行實驗數(shù)據(jù)對比的直接經(jīng)驗。實驗內(nèi)容 實驗內(nèi)容進程從創(chuàng)建(Linux 下調(diào)用 fork())到結(jié)束的整個

2、過程就是進程的生命期,進程在其生命期中的運行軌跡實際上就表現(xiàn)為進程狀態(tài)的多次切換,如進程創(chuàng)建以后會成為就緒態(tài);當(dāng)該進程被調(diào)度以后會切換到運行態(tài);在運行的過程中如果啟動了一個文件讀寫操作,操作系統(tǒng)會將該進程切換到阻塞態(tài)(等待態(tài))從而讓出 CPU;當(dāng)文件讀寫完畢以后,操作系統(tǒng)會在將其切換成就緒態(tài),等待進程調(diào)度算法來調(diào)度該進程執(zhí)行……本次實驗包括如下三個方面的內(nèi)容:? 基于模板“process.c”編寫多進程的樣本程序,實現(xiàn)如下功能:? 所有

3、子進程都并行運行,每個子進程的實際運行時間一般不超過30秒;? 父進程向標(biāo)準(zhǔn)輸出打印所有子進程的 id,并在所有子進程都退出后才退出;? 在 Linux 0.11上實現(xiàn)進程運行軌跡的跟蹤?;救蝿?wù)是在內(nèi)核中維護一個日志文件/var/process.log,把從操作系統(tǒng)啟動到系統(tǒng)關(guān)機過程中所有進程的運行軌跡都記錄在這一 log 文件中。? 在修改過的0.11上運行樣本程序,通過分析 log 文件,統(tǒng)計該程序建立的所有進程的等待時間、完成時

4、間(周轉(zhuǎn)時間)和運行時間,然后計算平均等待時間,平均完成時間和吞吐量。可以自己編寫統(tǒng)計程序,也可以使用 python 腳本程序—— stat_log.py ——進行統(tǒng)計。? 修改0.11進程調(diào)度的時間片,然后再運行同樣的樣本程序,統(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評分標(biāo)準(zhǔn) 評分標(biāo)準(zhǔn)? process.c,50%? 日志文件建立成功,5%? 能向日志文件輸出信息,5%? 5種狀態(tài)都能輸出,10%(每種2%)? 調(diào)度算法修改,10%? 實驗報

6、告,20%實驗提示 實驗提示process.c 的編寫涉及到 fork()和 wait()系統(tǒng)調(diào)用,請自行查閱相關(guān)文獻。0.11內(nèi)核修改涉及到 init/main.c、kernel/fork.c 和 kernel/sched.c,開始實驗前如果能詳細(xì)閱讀《注釋》一書的相關(guān)部分,會大有裨益。編寫樣本程序 編寫樣本程序所謂樣本程序,就是一個生成各種進程的程序。我們的對0.11的修改把系統(tǒng)對它們的調(diào)度情況都記錄到 log 文件中。在修改調(diào)度算

7、法或調(diào)度參數(shù)后再運行完全一樣的樣本程序,可以檢驗調(diào)度算法的優(yōu)劣。理論上,此程序可以在任何 Unix/Linux 上運行,所以建議在Ubuntu 上調(diào)試通過后,再拷貝到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,則往復(fù)多次占用 CPU 和 I/O,直到總運行時間超過 last為止* 所有時間的單位為秒*/cpuio_bound(int last, int cpu_time, int io_time);比如一個進程如果要占用10秒的 CPU 時間,它可以調(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 時間是 CPU 時間的9倍修改此模

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論