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

正文內(nèi)容

湯第02章進程管理-文庫吧在線文庫

2025-02-24 00:07上一頁面

下一頁面
  

【正文】 的環(huán)境和初始條件都相同,但得到的結(jié)果卻各不相同10不可再現(xiàn)性的例子? 有兩個循環(huán)程序 A和 B,它們共享一個變量 N。– 為使程序(含數(shù)據(jù))能獨立運行,應(yīng)為之配置一進程控制塊,即 PCB(– 引入進程的目的也是為了使進程實體能和其他進程實體并發(fā)執(zhí)行,而程序是不能并發(fā)執(zhí)行的。19就緒( Ready)狀態(tài) p 進程獲得了除 CPU以外的一切所需資源p 就緒隊列:在一個系統(tǒng)中處于就緒狀態(tài)的進程可能有多個,通常將它們排成一個隊列,稱為就緒隊列。? 之所以把 CPU和其他資源分開來,是因為在分時系統(tǒng)的時間片輪轉(zhuǎn)機制中,每個進程分到的時間片是若干 ms,進程得到 CPU的時間很短且非常頻繁,進程在運行過程中實際上是頻繁地轉(zhuǎn)換到就緒狀態(tài)的;而其他資源(如外設(shè))的使用和分配或者某一事件的發(fā)生(如 IO操作的完成)對應(yīng)的時間相對很長,進程轉(zhuǎn)換到等待狀態(tài)的次數(shù)也相對較少。( 2)分析下述狀態(tài)轉(zhuǎn)換是否可立即引起其他的狀態(tài)轉(zhuǎn)換: 1,2,3,4。這種靜止?fàn)顟B(tài)稱為掛起狀態(tài)。–靜止就緒狀態(tài) Readys:當(dāng)用掛起原語 suspend將進程掛起后,該進程便轉(zhuǎn)換為靜止就緒狀態(tài), 處于Readys狀態(tài)的進程不再被調(diào)度執(zhí)行 。40創(chuàng)建( New)狀態(tài)? 引入創(chuàng)建狀態(tài)的原因– 保證進程調(diào)度必須在創(chuàng)建工作完成后進行,以確保對 PCB操作的完整性。? 執(zhí)行 ?終止:當(dāng)進程到達了自然結(jié)束點,或是出現(xiàn)了無法克服的錯誤,或是被 OS所終止,或是被其他有終止權(quán)的進程所終結(jié),進程即進入終止?fàn)顟B(tài)。? 因為 PCB經(jīng)常被系統(tǒng)訪問,尤其是被運行頻率很高的進程及分派程序訪問,故 PCB應(yīng)常駐內(nèi)存。為了描述進程的家族關(guān)系,還應(yīng)設(shè)置父進程標(biāo)識及子進程標(biāo)識。57UNIX系統(tǒng) V中 PCB中的信息P357? 進程表項,其中包括最常用的核心數(shù)據(jù)? U區(qū),用于存放用戶進程表項的一些擴充數(shù)據(jù)? 系統(tǒng)區(qū)表,存放各個區(qū)在物理存儲器中的地址信息等? 進程區(qū)表,用于存放各區(qū)的起始虛地址及指向系統(tǒng)區(qū)表中對應(yīng)區(qū)表項的指針58進程控制塊的組織方式? 鏈接方式– 把具有同一狀態(tài)的 PCB,用其中的鏈接字鏈接成一個隊列。4 8PCB3PCB是一種原子操作( Atomic進程的終止( 2)作業(yè)調(diào)度(由系統(tǒng)內(nèi)核創(chuàng)建新進程)– 在 批處理系統(tǒng) 中,當(dāng)作業(yè)調(diào)度程序按一定的算法調(diào)度到某作業(yè)時,便將該作業(yè)裝入內(nèi)存,為它分配必要的資源,并立即為它創(chuàng)建進程,再插入就緒隊列中。73( 2)為新進程分配資源? 為新進程的程序和數(shù)據(jù)以及用戶棧分配必要的內(nèi)存空間。引起進程終止的事件2.這是指程序所訪問的存儲區(qū)已越出該進程的區(qū)域。這是指用戶進程試圖去執(zhí)行一條只允許OS執(zhí)行的指令。這是指在 I/O過程中發(fā)生了錯誤等。822. 進程的終止過程? 如果系統(tǒng)中發(fā)生了上述要求終止進程的某事件, OS便調(diào)用 進程終止原語 ,按下述過程去終止指定的進程。進程阻塞過程3.假如 A尚未將數(shù)據(jù)輸入完畢,則進程 B將因沒有所需的處理數(shù)據(jù)而阻塞;一旦進程 A把數(shù)據(jù)輸入完畢,便可去喚醒進程 B。913. 進程喚醒過程? 當(dāng)被阻塞進程所期待的事件出現(xiàn)時,如 I/O完成或其所期待的數(shù)據(jù)已經(jīng)到達,則由有關(guān)進程(如用完并釋放了該 I/O設(shè)備的進程)調(diào)用喚醒原語Wakeup(),將等待事件的進程喚醒。最后,若被掛起的進程正在執(zhí)行,則轉(zhuǎn)向調(diào)度程序重新調(diào)度。從靜態(tài)角度看,進程是由程序、數(shù)據(jù)和PCB三部分組成的。– 例如,當(dāng)多個進程去爭用一臺打印機時,有可能使多個進程的輸出結(jié)果交織在一起,難于區(qū)分;– 當(dāng)多個進程去爭用共享變量、表格、鏈表等時,有可能致使數(shù)據(jù)處理出錯。當(dāng)輸入進程 A把數(shù)據(jù)送入緩沖后,便將計算進程 B喚醒;– 當(dāng)單緩沖 滿 時,輸入進程 A因無法再向緩沖中投放數(shù)據(jù)而阻塞,只有當(dāng)計算進程 B將緩沖內(nèi)數(shù)據(jù)取走后便可喚醒 A。Resource),諸進程間應(yīng)采取互斥方式,實現(xiàn)對資源的共享。v輸出指針 out:指示下一個可獲取產(chǎn)品的緩沖區(qū),每當(dāng)消費者進程取走一個產(chǎn)品后,輸出指針加 1。n==out167。//關(guān)鍵這個!生產(chǎn)者 — 消費者問題的實現(xiàn)107producer: while(true){ … produce an item in nextp。 counter。? 在生產(chǎn)者進程中使用一局部變量 nextp,用于暫時存放每次剛生產(chǎn)出來的產(chǎn)品。假定 counter的當(dāng)前值是 5。 buffer[in]=nextp。 }v進入?yún)^(qū):用于檢查是否可以進入臨界區(qū)的代碼段。v同樣地,在臨界區(qū)后必須增加一段稱作退出區(qū)的代碼,用于將已有進程進入臨界區(qū)訪問臨界資源的標(biāo)志改為無進程進入臨界區(qū)使用臨界資源。remainderv “忙等 ”的主要缺點是浪費 CPU的時間,另外,它還可能引起預(yù)料不到的后果。? 原語:– 是由若干條機器指令構(gòu)成的完成某種特定功能的一段程序,具有不可分割性。whilev wait(s)cobegin…processvalue:integer。0{=0為此,可為這兩個數(shù)據(jù)分別設(shè)置用于互斥的信號量 Dmutex和 Emutex,并令它們的初值為1,相應(yīng)在兩進程中都要包含兩個對 Dmutex和 Emutex的操作,即Process//Dmutex=0ProcessAND同步機制的基本思想125Swait(s1,s2,…,sn)if)processfirstcountSwaitsi++。processesinto 信號量集127Swait(s1,t1,d1,…,sn,tn,dn)amp。i=n。thetheprogram(i=1。Removeassociated( 3) Swait(S,1,0):這是一種很特殊且很有用的信號量。while(true){}缺少 wait將會導(dǎo)致系統(tǒng)混亂,不能保證對臨界資源的互斥訪問;缺少 signal將會使臨界資源永遠不被釋放,從而使因等待該資源而阻塞的進程不再被喚醒。S1。signal(d)。{S5。S6。}。wait(b)。}。S6。}。– 使大量的同步操作分散在各個進程中。? 進程對共享資源的申請、釋放和其他操作,都是通過這組過程對共享數(shù)據(jù)結(jié)構(gòu)的操作來實現(xiàn)的,這組過程還可以根據(jù)資源的情況,或接受或阻塞進程的訪問,確保每次僅有一個進程使用共享資源,這樣就可以統(tǒng)一管理對共享資源的所有訪問,實現(xiàn)進程互斥。過 程名 (形式參數(shù)表 )。函數(shù)名 (形式參數(shù)表 ):值類 型 。管程中的數(shù)據(jù)結(jié)構(gòu)只能被管程中的過程訪問,這些過程也是在管程內(nèi)部定義的,供管程外的進程調(diào)用,而管程中的數(shù)據(jù)結(jié)構(gòu)以及過程(函數(shù))的具體實現(xiàn)外部不可見。v 通常,等待的原因可有多個,為了區(qū)別它們,又引入了條件變量 condition。如果有進程 Q處于阻塞狀態(tài),當(dāng)進程 P執(zhí)行了,怎樣決定由哪個進程執(zhí)行,哪個進程等待,可采用下述兩種方式處理:167。? 又假定這些生產(chǎn)者和消費者相互等效,只要緩沖池未滿,生產(chǎn)者便可將消息送入緩沖池;只要緩沖池未空,消費者便可從緩沖池中取走一個消息。{while(true){nextp。wait(mutex)。{wait(mutex)。signal(full)。 producebuffer[n]。條件變量146 經(jīng)典進程的同步問題例如,由于共享數(shù)據(jù)被占用而使調(diào)用進程等待,該條件變量的形式為nonbusy:condition。( 5)管程可作為語言或 OS成分,不必創(chuàng)建或撤銷;而進 程具 有生命周期,由創(chuàng)建而 產(chǎn) 生 , 由撤銷而 消 亡。管程是一個基本程序單位,可以單獨編譯。共享 變 量 說 明 。? 管程的組成部分:– 管程的名稱– 局部于管程內(nèi)部的共享數(shù)據(jù)結(jié)構(gòu)說明– 對該數(shù)據(jù)結(jié)構(gòu)進行操作的一組過程– 對局部于管程內(nèi)部的共享數(shù)據(jù)設(shè)置初始值的語句管程的定義138管程的示意圖初始化代碼條件(不忙)隊列進入隊列共享數(shù)據(jù)…一組操作過程139管程的結(jié)構(gòu)condition c1wait(c1)…condition wait()urgent queue signal局部數(shù)據(jù)條件變量過程 1過程 k出口初始化代碼入口管程等待調(diào)用的進程隊列管程等待區(qū)域…管程語法 type– 電傳機(硬件資源):可用于分配該資源有關(guān)的狀態(tài)信息( busy或 free)和對它進行請求或釋放的操作,以及等待該資源的進程隊列來描述。wait(l)。wait(f)。signal(j)。{signal(d)。S1。{S3。{remaindercritical{cobeginthewaitingbeginningsititheelseAND條件126? 在記錄型信號量機制中, wait(s)或signal(s)操作僅能對信號量施以增 1或減 1的操作,即每次只能獲得或釋放一個單位的臨界資源。queuei++){tosi1,andqueue…amp。B:wait(Dmutex)://Dmutex=1B:wait(Emutex)。 記錄型信號量123p 上述進程互斥問題,是針對進程之間要共享 一個 臨界資源而言的。signal(s)整型信號量121? 系統(tǒng)中現(xiàn)有 S1和 S2兩個并發(fā)進程,如何確保,只有當(dāng)S1完成后才能執(zhí)行 S2?解:使用整型信號量機制來解決。現(xiàn)在,信號量機制已被廣泛應(yīng)用于單處理機和多處理機系統(tǒng)以及計算機網(wǎng)絡(luò)中。當(dāng)已有進程進入臨界區(qū)時,表明臨界資源正被訪問,因而其他試圖進入臨界區(qū)的進程必須等待,以保證對臨界資源的互斥訪問。( 2)忙則等待criticalv退出區(qū):將臨界區(qū)正被訪問的標(biāo)志恢復(fù)為未被訪問標(biāo)志。 nextc=buffer[out]。還有其他順序不可再現(xiàn)性111v臨界區(qū):每個 進程 中訪問臨界資源的那段 代碼 。=6) counter=register2。(register1=6) register2=counter。? While counter++。int 加 1:生產(chǎn)者進程向緩沖中投放一個產(chǎn)品167。 輸出指針加 1: out=(out+1)%為使生產(chǎn)者進程和消費者進程能并發(fā)執(zhí)行,在兩者之間設(shè)置了一個具有 n個 緩沖區(qū) 的 緩沖池 ,生產(chǎn)者進程可將它所生產(chǎn)的產(chǎn)品放入一個 空緩沖區(qū) 中,消費者進程可從一個 滿緩沖區(qū) 中取得一個產(chǎn)品消費。( 2)兩隊舉行籃球比賽是間接制約,其中籃球是臨界資源。所謂 間接相互制約即源于這種資源共享 。進程可創(chuàng)建進程,而程序不可能形成新的程序。? 激活原語先將進程從外存調(diào)入內(nèi)存,檢查該進程的現(xiàn)行狀態(tài),若是靜止就緒,便將之改為活動就緒;若為靜止阻塞,便將之改為活動阻塞。進程的掛起2.可見, 進程的阻塞是進程自身的一種主動行為 。? 例如,進程啟動了某 I/O設(shè)備,如果只有在I/O設(shè)備完成了指定的 I/O操作任務(wù)后進程才能繼續(xù)執(zhí)行,則該進程在啟動了 I/O操作后,便自動進入阻塞狀態(tài)去等待。( 4)將被終止進程所擁有的全部資源,或者歸還給其父進程,或者歸還給系統(tǒng)。– 父進程請求。這是指進程等待某事件的時間超過了規(guī)定的最大值。這是指程序試圖去執(zhí)行一條不存在的指令。– 在 分時系統(tǒng) 中,用戶可利用 Log– 對于交互型作業(yè),用戶可以不給出內(nèi)存要求而由系統(tǒng)分配一定的空間。– 例如,某應(yīng)用程序需要不斷地從鍵盤終端輸入數(shù)據(jù),繼而又要對輸入數(shù)據(jù)進行相應(yīng)的處理,然后,再將處理結(jié)果以表格形式在屏幕上顯示。進程的創(chuàng)建651. 進程圖? 進程圖是用于描述一個進程的家族關(guān)系的有向樹。原子操作在管態(tài)下執(zhí)行,常駐內(nèi)存。7就緒索引表阻塞索引表61 進程控制? 進程控制是進程管理中最基本的功能。8 0PCB59PCB鏈接隊列示意圖執(zhí)行指針就緒隊列指針阻塞隊列指針空閑隊列指針PCB? 當(dāng)處理機被中斷時,所有這些信息都必須保存在 PCB中,以便在該進程重新執(zhí)行時,能從斷點繼續(xù)執(zhí)行。51進程控制塊中的信息? 進程標(biāo)識符? 處理機狀態(tài)? 進程調(diào)度信息? 進程控制信息52進程標(biāo)識符? 進程標(biāo)識符用于惟一地標(biāo)識一個進程。48PCB是進程存在的唯一標(biāo)志? OS根據(jù) PCB來對并發(fā)執(zhí)行的進程進行控制和管理的。? 終止進程的步驟– 等待 OS進行善后處理– 將其 PCB清零,并將 PCB空間返還系統(tǒng)42終止( terminated)狀態(tài)? 幾種情況,使進程
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1