freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第二章進程及作業(yè)管理-在線瀏覽

2024-12-01 14:02本頁面
  

【正文】 內(nèi)部號,即 PCB號。 第二章 進程及作業(yè)管理 一個進程一旦被建立便處于就緒狀態(tài),隨時等候被進程 一個進程在正常運行結(jié)束后,一般應(yīng)主動終止而進入停止狀態(tài),同時向父進程發(fā)一“完成”消息,等待父進程撤銷它,這通過調(diào)用“停止”原語實現(xiàn)。 begin :=39。 send(,39。)。 scheduler。 第二章 進程及作業(yè)管理 撤銷原語可大致描述如下: procedure destory(i)。 while 0 do begin :=。 destory(child)。 memrelease(,)。 if t=true then memrelease(,)。 pcbrelease(i)。 第二章 進程及作業(yè)管理 其中,過程 remove將指定進程移出所屬狀態(tài)隊列;過程 findchild尋找指定進程的子進程,返回子進程的內(nèi)部號;過程 close關(guān)閉指定文件,若返回值 t=true表示關(guān)閉成功,否則表示該文件為共享文件且正被其它進程所使用;過程resrelease釋放除內(nèi)存之外的其它資源。它們可描述如下: procedure suspend(i)。 swapout(,add)。 memrelease(,)。 if t=true then memrelease(,)。 第二章 進程及作業(yè)管理 其中, 調(diào)用了換出過程 swapout將數(shù)據(jù)集復(fù)制到外存交換區(qū)并返回相應(yīng)的地址。 procedure activate(i)。 if add=NIL then return(false)。 :=add。 if add=NIL then begin 第二章 進程及作業(yè)管理 memallocate(size,add)。 return(false)。 read(,size,add)。 :=add。 return(true)。 第二章 進程及作業(yè)管理 阻塞與喚醒 進程從執(zhí)行態(tài)到等待態(tài)以及從等待態(tài)到就緒態(tài)的過渡分別是通過阻塞原語 block和喚醒原語 wakeup實現(xiàn)的。操作系統(tǒng)為每類事件設(shè)置一個等待隊列,當某個事件發(fā)生時, 通過 wakeup原語移出相應(yīng)等待隊列中的某個進程, 將其送入應(yīng)緒隊列,調(diào)用參數(shù)也是等待隊列指針,下面是 block原語和 wakeup原語的類 PASCAL語言描述: 第二章 進程及作業(yè)管理 procedure block(q)。 := ′waited ′。 insert(q,EXE)。 scheduler。 begin outqueue(q,i)。 :=RQ。 end。 4 進 程 同 同步概念 對同步與互斥的上述解釋表明,它們的實質(zhì)都是對進程在執(zhí)行時序上的某種限制。這就是廣義同步概念。 第二章 進程及作業(yè)管理 并發(fā)進程可以共享系統(tǒng)中的各種資源,但是系統(tǒng)中某些資源具有一次只允許一個進程所使用的屬性,我們稱這樣的資源為臨界資源。也就是說,共享臨界資源的進程必須互相排斥。還有許多可以被幾個進程所修改的共享變量(如公共變量、數(shù)據(jù)、表格、隊列等 )也是臨界資源。為了防止發(fā)生這種與時間有關(guān)的錯誤,變量 count必須按臨界資源處理。 第二章 進程及作業(yè)管理 同步機構(gòu) 1.測試與設(shè)置 (Test and Set) 這是一種借助一條硬件指令 Test and Set(簡記 TS)來實現(xiàn)互斥的同步機構(gòu)。 TS指令的功能可用 PASCAL語言描述如下: 第二章 進程及作業(yè)管理 procedure TS(vara,b:boolean)。 begin temp:=a。 b:=temp end function TS(var b:boolean):boolean。 b:=true end v 第二章 進程及作業(yè)管理 TS指令的執(zhí)行是不可分割的,利用 TS指令可以簡單而有效地實現(xiàn)互斥。于是用 TS指令實現(xiàn)互斥的進程的程序結(jié)構(gòu)為: 第二章 進程及作業(yè)管理 var key: blooean。 while key do TS(lock,key)。 … end begin … while TS (lock) do skip。 (2 ′ lock:=false。信號量是個被保護的量,只有 P、 V操作和信號量初始化操作才能訪問和改變它的值, Dijkstra把信號量 s定義為一個非負整型量。把信號量 s上的 V操作 V(s)定義為: s值加 1,若有進程在 s上等待,則喚醒其中一個進程。在實現(xiàn)該同步機構(gòu)時,可采取“忙等待”方式也可采取“讓權(quán)等待”方式。讓權(quán)等待方式,即當執(zhí)行進程必須在某信號量上等待時,就將該進程變?yōu)榈却隣顟B(tài),并將其插入與此信號量相關(guān)的等待隊列中,以讓出處理機給其他就緒進程。而在多機系統(tǒng)中,為減少進程狀態(tài)變換而引起的開銷,可采取忙等待方式。 第二章 進程及作業(yè)管理 (1)忙等待方式的 P、 V vars: integer。 s:=s1 V(s) :s:=s+1。不難看出這種形式的 P、 V操作完全可用硬件指令來實現(xiàn)。采取這種方式需要對原信號量定義進一步擴充,把信號量由整型量擴充成為記錄形式: type psem=semaphore semaphore=record value: integer。 end 即信號量 s是二元組 s(v,q) , v是信號量 s的值,它是個整型量, q是指向 s等待隊列 WQ的隊首指針。 var s: psem。 if 0 then block() end procedure V ( s )。 begin :=+1 if ≤0 then wakeup() end 第二章 進程及作業(yè)管理 根據(jù)上述定義, P、 V操作的物理意義可這樣來看待。 每執(zhí)行一次 P操作意味著請求分配一個單位的資源,因此描述為 :=。執(zhí)行一次 V操作意味著釋放一個單位資源,故描述為 .v:=+1,若 ≤0,表示在等待隊列 源不能滿足而被阻塞的進程,因此喚醒等待隊列 一個或優(yōu)先數(shù)最高的進程,允許其使用該資源。此時信號量是公用信號量,它的初值為 1,每個進程均可對它施行 P、 V操作。對于每個想使用 R的進程,只需把它們的臨界區(qū) CS置于 P(mutex)和 V(mutex)之間,即可實現(xiàn)互斥。 procedure processl begin while true do begin … p(mutex)。 V(mutex)。 第二章 進程及作業(yè)管理 procedure process 2:…。 begin seminitial(,l)。 process 2。 coend end 第二章 進程及作業(yè)管理 2 利用信號量同樣可以方便地實現(xiàn)合作進程之
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1