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

正文內(nèi)容

第二章進程及作業(yè)管理-文庫吧

2025-08-25 14:02 本頁面


【正文】 終端、父進程的打開文件表等; pri為新進程的初始優(yōu)先數(shù); fn為新進程的執(zhí)行程序文本之文件名; args是 fn 第二章 進程及作業(yè)管理 過程 getfreepcb從 PCB集中獲取一個空閑 PCB,返回值 i為PCB號。過程 memallocate按指定要求分配內(nèi)存空間, 返回內(nèi)存區(qū)地址 add。過程 memrelease和 pcbrelease分別釋放指定內(nèi)存區(qū)和 PCB。過程 datasetinit初始化數(shù)據(jù)區(qū),并裝入?yún)?shù)表 args。過程 filestate檢查指定文件的存貯狀態(tài),若該文件駐在內(nèi)存,則返回其內(nèi)存區(qū)地址 add及長度 size,同時將該文件的共享計數(shù)加 1,這表明新進程將與其它進程共享一個純代碼程序;否則打開該文件,返回文件長度 size,add=NIL。過程 read讀入指定文件。過程 insert(RQ,i)將新進程插入就緒隊列 RQ。 otherinit表示對 PCB的其它項置初值,如消息隊列信號量、進程現(xiàn)場等。EXE是執(zhí)行態(tài)進程的 PCB指針,本原語由執(zhí)行態(tài)進程調(diào)用,故執(zhí)行態(tài)進程就是新進程的父進程。本原語最后返回新進程的內(nèi)部號,即 PCB號。如果建立失敗,則返回 NIL。 第二章 進程及作業(yè)管理 一個進程一旦被建立便處于就緒狀態(tài),隨時等候被進程 一個進程在正常運行結(jié)束后,一般應主動終止而進入停止狀態(tài),同時向父進程發(fā)一“完成”消息,等待父進程撤銷它,這通過調(diào)用“停止”原語實現(xiàn)。停止原語 halt的大致描述如下: procedure halt。 begin :=39。stop39。 send(,39。pleted39。)。 EXE:=NIL。 scheduler。 end。 第二章 進程及作業(yè)管理 撤銷原語可大致描述如下: procedure destory(i)。 begin if ′ stop′ then remove(,i)。 while 0 do begin :=。 findchild(i,child)。 destory(child)。 end。 memrelease(,)。 close(,t)。 if t=true then memrelease(,)。 resrelease(i)。 pcbrelease(i)。 end。 第二章 進程及作業(yè)管理 其中,過程 remove將指定進程移出所屬狀態(tài)隊列;過程 findchild尋找指定進程的子進程,返回子進程的內(nèi)部號;過程 close關閉指定文件,若返回值 t=true表示關閉成功,否則表示該文件為共享文件且正被其它進程所使用;過程resrelease釋放除內(nèi)存之外的其它資源。本原語可遞歸調(diào)用, 第二章 進程及作業(yè)管理 掛起與激活 掛起原語 suspend和激活原語 activate的調(diào)用參數(shù)均為進程內(nèi)部號。它們可描述如下: procedure suspend(i)。 begin :=if = ′ready ′then ′readys ′ else ′waiteds ′。 swapout(,add)。 :=add。 memrelease(,)。 close(,t)。 if t=true then memrelease(,)。 end。 第二章 進程及作業(yè)管理 其中, 調(diào)用了換出過程 swapout將數(shù)據(jù)集復制到外存交換區(qū)并返回相應的地址。進程實體中的執(zhí)行程序并未被復制到交換區(qū),因為執(zhí)行程序文件尚在外存并未被撤銷,但仍要回收它所占用的內(nèi)存空間 (若它未被其它進程共享 ),這樣做的好處是減少了交換時間。 procedure activate(i)。 begin memallocate(,add)。 if add=NIL then return(false)。 swapin(,add)。 :=add。 filestate(,add,size)。 if add=NIL then begin 第二章 進程及作業(yè)管理 memallocate(size,add)。 if add=NIL then begin memrelease(,)。 return(false)。 end。 read(,size,add)。 end。 :=add。 :=if = ′readys ′then ′ready ′ else ′waited ′。 return(true)。 end。 第二章 進程及作業(yè)管理 阻塞與喚醒 進程從執(zhí)行態(tài)到等待態(tài)以及從等待態(tài)到就緒態(tài)的過渡分別是通過阻塞原語 block和喚醒原語 wakeup實現(xiàn)的。 當現(xiàn)行進程需要等待某個事件時, 可調(diào)用 block原語使自己加入到該事件的等待隊列中,調(diào)用參數(shù)為等待隊列指針。操作系統(tǒng)為每類事件設置一個等待隊列,當某個事件發(fā)生時, 通過 wakeup原語移出相應等待隊列中的某個進程, 將其送入應緒隊列,調(diào)用參數(shù)也是等待隊列指針,下面是 block原語和 wakeup原語的類 PASCAL語言描述: 第二章 進程及作業(yè)管理 procedure block(q)。 begin save(EXE)。 := ′waited ′。 :=q。 insert(q,EXE)。 EXE:=NIL。 scheduler。 end procedure wakeup(q)。 begin outqueue(q,i)。 :=if = ′waited ′ then ′ready ′ else ′readys ′。 :=RQ。 insert(RQ,i)。 end。 第二章 進程及作業(yè)管理 167。 4 進 程 同 同步概念 對同步與互斥的上述解釋表明,它們的實質(zhì)都是對進程在執(zhí)行時序上的某種限制。因此,可把它們歸結(jié)為:并發(fā)進程在執(zhí)行時序上的相互制約關系。這就是廣義同步概念。故在廣義上,互斥是一種特殊的同步。 第二章 進程及作業(yè)管理 并發(fā)進程可以共享系統(tǒng)中的各種資源,但是系統(tǒng)中某些資源具有一次只允許一個進程所使用的屬性,我們稱這樣的資源為臨界資源。換言之,若有一進程正在使用某臨界資源,那么其他欲使用該資源的進程必須等待,只有當占有者釋放后,其他進程才能使用。也就是說,共享臨界資源的進程必須互相排斥。 第二章 進程及作業(yè)管理 許多物理設備都屬于臨界資源,如輸入機、打印機、磁帶機等。還有許多可以被幾個進程所修改的共享變量(如公共變量、數(shù)據(jù)、表格、隊列等 )也是臨界資源。例如,進程 A和 B共享一個公共變量 count,都要對 count執(zhí)行“ count:=count+1”操作,但是在許多計算機上完成這一 LD R1, count INC R1 LD count, R1 第二章 進程及作業(yè)管理 由于進程 A和 B異步前進,故 A、 B中相同的這個指令串 A:LD R1,count A:INC R1 B:LD R1
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1