操作系統(tǒng)第二章進程管理_第1頁
操作系統(tǒng)第二章進程管理_第2頁
操作系統(tǒng)第二章進程管理_第3頁
操作系統(tǒng)第二章進程管理_第4頁
操作系統(tǒng)第二章進程管理_第5頁
已閱讀5頁,還剩83頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、進程管理進程管理I1C1P1I2C2P2進程管理進程管理P1P1P1P1進程管理進程管理I1I2I3I4C1C2C3C4P1P2P3P4t進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理就緒就緒阻塞阻塞執(zhí)行執(zhí)行時間片完時間片完進程調(diào)度進程調(diào)度I/O請求請求I/O完成完成圖圖25 進程的三種基本狀態(tài)及其轉(zhuǎn)換進程的三種基本狀態(tài)及其轉(zhuǎn)換進程管理進程管理進程管理進程管理執(zhí)行執(zhí)行活動活動就緒就緒靜止靜止就緒就緒活動活動阻塞阻塞靜止靜止阻塞阻塞激活激活掛起掛起激活激活掛起掛起釋放釋放釋放釋放掛起掛起請求請求I/O進程管理進程管理v寫一個程序描述進程狀態(tài)遷移過程。寫一個程序描

2、述進程狀態(tài)遷移過程。v要求:要求: 提供導(dǎo)致進程狀態(tài)變化的調(diào)用接口,包括創(chuàng)建、提供導(dǎo)致進程狀態(tài)變化的調(diào)用接口,包括創(chuàng)建、刪除、調(diào)度、阻塞、時間到、掛起、激活等。刪除、調(diào)度、阻塞、時間到、掛起、激活等。 實現(xiàn)進程列表顯示的接口。實現(xiàn)進程列表顯示的接口。 注:這里設(shè)計的進程是一個假設(shè)的對象實體,是注:這里設(shè)計的進程是一個假設(shè)的對象實體,是由程序自己創(chuàng)建和刪除,不是系統(tǒng)維護的進程。由程序自己創(chuàng)建和刪除,不是系統(tǒng)維護的進程。進程管理進程管理pid進程狀態(tài)進程狀態(tài)現(xiàn)場現(xiàn)場優(yōu)先級優(yōu)先級阻塞原因阻塞原因程序地址程序地址同步機制同步機制資源清單資源清單鏈接指針鏈接指針進程管理進程管理執(zhí)行指針執(zhí)行指針就緒隊列指

3、針就緒隊列指針阻塞隊列指針阻塞隊列指針空閑隊列指針空閑隊列指針PCB14PCB23PCB30PCB48PCB5PCB67PCB79PCB80PCB91進程管理進程管理struct wait_queue struct wait_queue struct task_struct struct task_struct * * task; task;struct wait_queue struct wait_queue * * next; next;PCBPCBPCB進程管理進程管理PCB1PCB2PCB3PCB4PCB5PCB6PCB7執(zhí)行指針執(zhí)行指針就緒表指針就緒表指針阻塞表指針阻塞表指針進程管理

4、進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理producer: repeat produce an item in nextp; while counter=n do no-op;bufferin:=nextp;in:=(in+1)mod n;counter:=counter+1;until false;consumer: repeatwhile counter=0 do no-op;nextc:=bufferout;out:=(out+1) mod n;

5、counter:=counter-1;consumer the item in nextc;until false;進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理Swait(s1,s2,sn)if s11 and and sn 1 then for i:=1 to n do si:=si-1; endforelseplace the process in the waiting queue with the first si found with si1, and set the program

6、count of this process to the beginning of swait operationend if Ssignal(s1,s2,sn)for i:=1 to n do si:=si+1; remove all the process waiting in the queue associated with si into the ready queue endfor進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理S1S2S3S4S5S6abcdegf進程管理進程管理進程管理進程管理進程管理進程管理producer: begin repeat Prod

7、uce an item in nextp; 進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理va,b a,b 兩點間是一段東西向的單行車道,現(xiàn)要設(shè)計一兩點間是一段東西向的單行車道,現(xiàn)要設(shè)計一個自動管理系統(tǒng),管理規(guī)則如下:當個自動管理系統(tǒng),管理規(guī)則如下:當abab間有車輛在間有車輛在行駛時同方向的車可以同時駛?cè)胄旭倳r同方向的車可以同時駛?cè)隺bab段,但另一方向段,但另一方向的車必須在的車必須在abab段外等

8、待;當段外等待;當abab之間無車時,到達之間無車時,到達a a(或(或b b)的車輛可以進入)的車輛可以進入abab段,但不能從段,但不能從a a,b b點同點同時駛?cè)?;當某方向在時駛?cè)耄划斈撤较蛟赼bab段行駛的車輛使出了段行駛的車輛使出了abab段且段且無車輛進入無車輛進入abab段時,應(yīng)讓另一方向等待的車輛進入段時,應(yīng)讓另一方向等待的車輛進入abab段行駛。請用段行駛。請用wait,signalwait,signal工具對工具對abab段實現(xiàn)正確段實現(xiàn)正確管理。管理。進程管理進程管理Semaphore s, mutexab,mutexbaPab:Wait(mutexab)Countab

9、+If countab=1 then wait(s);Signal(mutexab) .wait(mutexab)countab- -;if countab=0 then signal(s)signal(mutexab);進程管理進程管理Pba:wait(mutexba)countba=countba+1;If countba=1 then wait(s)wait(mutexba) enter;wait(mutexba)countba-;if countba=0 then signal(s)signal(mutexba);進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理

10、進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理mqmutexsmsender:Asize:5text:Hellosend(B,a)sender :Asize :5text:hellonext:0發(fā)送區(qū)發(fā)送區(qū)Asender:Asize:5text:Helloreceive(b)接收區(qū)接收區(qū)Bab進程進程APCB(B)進程進程B進程管理進程管理v 試說明如果使用試說明如果使用send_mailboxsend_mailbox和和receive_mailbox receive_mailbox 原原語實現(xiàn)打印文件的

11、系統(tǒng)。欲打印的進程將要打印的文語實現(xiàn)打印文件的系統(tǒng)。欲打印的進程將要打印的文件名發(fā)送到郵箱件名發(fā)送到郵箱printer,printer,打印機假脫機將打印郵箱中打印機假脫機將打印郵箱中出現(xiàn)名字的任何文件出現(xiàn)名字的任何文件/process wish to printCharfilename ;Status=send_mailbox(“printer”,filename);If (status 0) /failure/print spoolerchar filename while (true) status=receive_mailbox(“printer”,filename);if(status 0)/failureprint(filename);進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理進程管理v進程間通信和同一進程內(nèi)線程間通信的效率?進程間通信和同一進程內(nèi)線程間通信的效率?進

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論