操作系統(tǒng)第3-4次作業(yè)_第1頁
操作系統(tǒng)第3-4次作業(yè)_第2頁
操作系統(tǒng)第3-4次作業(yè)_第3頁
操作系統(tǒng)第3-4次作業(yè)_第4頁
操作系統(tǒng)第3-4次作業(yè)_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

操作系統(tǒng)課程實驗報告實驗編號與實驗名稱:1、 管理Linux系統(tǒng)進程2、 進程互斥實驗3、 進程的控制實驗實驗目的:一、1) 回顧系統(tǒng)進程的概念,加深對Linux / UNIX進程管理的理解。2) 回顧ps命令和選項。3) 列出當前shell中的進程。4) 列出運行在系統(tǒng)中的所有進程。二、1、進一步認識并發(fā)執(zhí)行的實質2、通過分析實驗結果,分析進程競爭資源的現(xiàn)象,學習解決進程互斥的方法三、1、 掌握進程另外的創(chuàng)建方法:需認真分析實驗結果,體會本次實驗進程創(chuàng)建方法與fork的不同2、 2、通過分析實驗結果,熟悉進程的睡眠、同步、撤消等進程控制方法實驗內容及要求(詳見實驗講義):一、步驟1:登錄進入Linux。步驟2:訪問命令行。步驟3:回顧系統(tǒng)進程概念。步驟4:回顧ps命令和信息。步驟5:列出系統(tǒng)中運行的所有進程。步驟6:試調試下二段代碼。二、 1、進程互斥的實現(xiàn) 2、分析以下程序的輸出結果三、 1、用fork( )創(chuàng)建一個進程,再調用exec( )用新的程序替換該子進程的內容 2、利用wait( )來控制進程執(zhí)行順序實驗用到的軟件(:)虛擬機實驗內容、關鍵步驟(流程圖、代碼等)及結果分析(70分)第一個實驗步驟3:回顧系統(tǒng)進程概念1) Linux系統(tǒng)中,幾乎每一個啟動的進程,都會由內核分配一個唯一的進程標識符 (PID),用于跟蹤從進程啟動到進程結束。2) 當啟動新進程的時候,內核也給它們分配系統(tǒng)資源,如CPU時間和RAM空間。3) 永遠不向父進程返回輸出的進程叫做僵進程。4) 由父進程派生出來的進程叫做子進程。5) 父進程是一個派生另一個進程的進程。6) 運行用于提供服務的Linux系統(tǒng)進程是守護進程。7) 如果父進程在子進程之前結束,它創(chuàng)建了一個孤兒進程。步驟4:回顧ps命令和信息輸入ps命令,將結果截圖貼到實驗報告。輸入 ps -f 命令步驟5:列出系統(tǒng)中運行的所有進程 輸入 ps -ef 命令,顯示運行在系統(tǒng)中的各個進程的完全信息。執(zhí)行該命令,并與ps f命令的輸出結果對照,一致嗎?有何不同?答:不一致ps f 完全 產生一個完全列表,給出每個進程的所有可用信息。ps ef 每一個完全產生一個完全列表,給出每個進程的所有可用信息,顯示系統(tǒng)中每一個進程的信息。a. 顯示了多少個進程?ps f 2個ps ef 所有 143b. PID是什么?進程的進程標識號。PID可以用來殺死進程c. 啟動進程的命令 (CMD) 是什么?命令名守護進程 (執(zhí)行的程序的名字)d. 請觀察,什么命令的PID號是1?第一個命令 root inite. 再次運行 ps -ef | wc -l命令,計算進程的數(shù)目并把輸出結果輸入到wc命令中:執(zhí)行 man ps命令,可以打開Linux用戶命令手冊,了解ps命令的用法,輸入wq命令可退出用戶手冊的閱讀。man命令可以執(zhí)行嗎?結果如何?步驟6:第二個實驗Code 1:沒加lockf()函數(shù)的實驗Code 1:加了lockf()函數(shù)的實驗Code 2:沒加lockf()函數(shù)的實驗Code 2:加了lockf()函數(shù)的實驗第三個實驗:第三題結果:思考題:二、1.2觀察并分析出現(xiàn)的現(xiàn)象結果如何?與未上鎖的輸出結果相比,結果有無不同?原因?將打印字符串的循環(huán)次數(shù)改為1000結果加鎖與否的結果又是否相同?結果都一樣。因為程序在被運行之時會被賦予一個時間片,而 i的值小于 1000 時,CPU執(zhí)行完這個程序所需時間還小于這個時間片,所以操作系統(tǒng)并不會把公共設備奪過來給其他程序。從而兩個結果都一樣。沒使用了lockf()函數(shù)使用了lockf()函數(shù) 從上圖的比較中我們可以看出,當 i 的值變得很大時,lockf()函數(shù)的作用就體現(xiàn)出來了。 他會將一個程序和這個程序所需的公共設備上鎖,直至這個程序結束才解鎖。在這段期間,沒有程序能使用被上鎖的公共設備。三、(1)如何更新子進程內容?fork時根據(jù)返回的進程ID鎖定指定的子進程即進入子進程,其后的操作都是能有效更新子進程的。 (2)可執(zhí)行文件加載時進行了哪些處理?初始化,開辟內存,顯示窗口是后期可選工作。每個程序,任何一個程序,任何一個可執(zhí)行文件,啟動運行時都要調用Ntdll.dll中的NtCreateProcess()。(3)什么是進程同步?wait( )是如何實現(xiàn)進程同步的?我們把異步環(huán)境下的一組并發(fā)進程因直接制約而互相發(fā)送消息而進行互相合作、互相等待,使得各進程按一定的速度執(zhí)行的過程稱為進程間的同步。進程同步是進程之間直接的相互作用,是合作進程間有意識的行為。如果我們對一個消息或事件賦以唯一的消息名,則我們可用過程wait(消息名)表示進程等待合作進程發(fā)來的消息。這樣,wait()就實現(xiàn)了進程間的同步。實驗過程中遇到的問題解決辦法與實驗體會(10分)【請注意:此處必須如實填寫,為空或不適均扣10分】1、 因為第一次使用lockf( ),所以搞不懂lockf( )中的參數(shù)到底應該怎樣用。2、 我使用了lockf( )后并沒有意識到時間片對于程序的影響如 但是我只是寫了一個 i = 5 而已,因為我覺得他們的結果應該都是一樣的。后來多測試了幾次后才發(fā)現(xiàn),但 i = 1000 時結果是會有所改變的。3、 第一次使用Exec( )

溫馨提示

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

最新文檔

評論

0/150

提交評論