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

正文內(nèi)容

湯第02章進(jìn)程管理(留存版)

  

【正文】 重,已可能影響到對(duì)實(shí)時(shí)任務(wù)的控制時(shí),可由系統(tǒng)把一些不重要的進(jìn)程掛起,以便系統(tǒng)能正常運(yùn)行。? 終止進(jìn)程的步驟– 等待 OS進(jìn)行善后處理– 將其 PCB清零,并將 PCB空間返還系統(tǒng)42終止( terminated)狀態(tài)? 幾種情況,使進(jìn)程進(jìn)入終止?fàn)顟B(tài)– 進(jìn)程到達(dá)了自然結(jié)束點(diǎn)– 出現(xiàn)了無(wú)法克服的錯(cuò)誤– 被 OS所終結(jié)– 被其他有終止權(quán)的進(jìn)程所終結(jié)? 進(jìn)入終止?fàn)顟B(tài)的進(jìn)程以后不能再執(zhí)行,但在 OS中依然保留一個(gè)記錄(保存狀態(tài)碼和一些計(jì)時(shí)統(tǒng)計(jì)數(shù)據(jù),供其他進(jìn)程收集)。51進(jìn)程控制塊中的信息? 進(jìn)程標(biāo)識(shí)符? 處理機(jī)狀態(tài)? 進(jìn)程調(diào)度信息? 進(jìn)程控制信息52進(jìn)程標(biāo)識(shí)符? 進(jìn)程標(biāo)識(shí)符用于惟一地標(biāo)識(shí)一個(gè)進(jìn)程。59PCB鏈接隊(duì)列示意圖執(zhí)行指針就緒隊(duì)列指針阻塞隊(duì)列指針空閑隊(duì)列指針PCB7就緒索引表阻塞索引表61 進(jìn)程控制? 進(jìn)程控制是進(jìn)程管理中最基本的功能。進(jìn)程的創(chuàng)建651. 進(jìn)程圖? 進(jìn)程圖是用于描述一個(gè)進(jìn)程的家族關(guān)系的有向樹。– 對(duì)于交互型作業(yè),用戶可以不給出內(nèi)存要求而由系統(tǒng)分配一定的空間。這是指程序試圖去執(zhí)行一條不存在的指令。– 父進(jìn)程請(qǐng)求。? 例如,進(jìn)程啟動(dòng)了某 I/O設(shè)備,如果只有在I/O設(shè)備完成了指定的 I/O操作任務(wù)后進(jìn)程才能繼續(xù)執(zhí)行,則該進(jìn)程在啟動(dòng)了 I/O操作后,便自動(dòng)進(jìn)入阻塞狀態(tài)去等待。進(jìn)程的掛起2.進(jìn)程可創(chuàng)建進(jìn)程,而程序不可能形成新的程序。所謂 間接相互制約即源于這種資源共享 。為使生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程能并發(fā)執(zhí)行,在兩者之間設(shè)置了一個(gè)具有 n個(gè) 緩沖區(qū) 的 緩沖池 ,生產(chǎn)者進(jìn)程可將它所生產(chǎn)的產(chǎn)品放入一個(gè) 空緩沖區(qū) 中,消費(fèi)者進(jìn)程可從一個(gè) 滿緩沖區(qū) 中取得一個(gè)產(chǎn)品消費(fèi)。 加 1:生產(chǎn)者進(jìn)程向緩沖中投放一個(gè)產(chǎn)品167。 counter++。 register2=counter。(register1=6) nextc=buffer[out]。critical( 2)忙則等待signal(s) 記錄型信號(hào)量123p 上述進(jìn)程互斥問題,是針對(duì)進(jìn)程之間要共享 一個(gè) 臨界資源而言的。B:wait(Dmutex)://Dmutex=1queuetoAND條件126? 在記錄型信號(hào)量機(jī)制中, wait(s)或signal(s)操作僅能對(duì)信號(hào)量施以增 1或減 1的操作,即每次只能獲得或釋放一個(gè)單位的臨界資源。sitithe{cobegincriticalremainder{signal(d)。signal(j)。wait(l)。? 管程的組成部分:– 管程的名稱– 局部于管程內(nèi)部的共享數(shù)據(jù)結(jié)構(gòu)說明– 對(duì)該數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的一組過程– 對(duì)局部于管程內(nèi)部的共享數(shù)據(jù)設(shè)置初始值的語(yǔ)句管程的定義138管程的示意圖初始化代碼條件(不忙)隊(duì)列進(jìn)入隊(duì)列共享數(shù)據(jù)…一組操作過程139管程的結(jié)構(gòu)condition c1wait(c1)…condition wait()urgent queue signal局部數(shù)據(jù)條件變量過程 1過程 k出口初始化代碼入口管程等待調(diào)用的進(jìn)程隊(duì)列管程等待區(qū)域…管程語(yǔ)法 type共享 變 量 說 明 。管程是一個(gè)基本程序單位,可以單獨(dú)編譯。例如,由于共享數(shù)據(jù)被占用而使調(diào)用進(jìn)程等待,該條件變量的形式為nonbusy:condition。buffer[n]。produce wait(mutex)。wait(mutex)。while(true){{? 又假定這些生產(chǎn)者和消費(fèi)者相互等效,只要緩沖池未滿,生產(chǎn)者便可將消息送入緩沖池;只要緩沖池未空,消費(fèi)者便可從緩沖池中取走一個(gè)消息。v 通常,等待的原因可有多個(gè),為了區(qū)別它們,又引入了條件變量 condition。函數(shù)名 (形式參數(shù)表 ):值類 型 。? 進(jìn)程對(duì)共享資源的申請(qǐng)、釋放和其他操作,都是通過這組過程對(duì)共享數(shù)據(jù)結(jié)構(gòu)的操作來(lái)實(shí)現(xiàn)的,這組過程還可以根據(jù)資源的情況,或接受或阻塞進(jìn)程的訪問,確保每次僅有一個(gè)進(jìn)程使用共享資源,這樣就可以統(tǒng)一管理對(duì)共享資源的所有訪問,實(shí)現(xiàn)進(jìn)程互斥。}。}。}。S6。{S1。}( 3) Swait(S,1,0):這是一種很特殊且很有用的信號(hào)量。associated(i=1。thei=n。amp。intosi++。countprocess)//Dmutex=0Process=00value:integer。processcobeginwhile? 原語(yǔ):– 是由若干條機(jī)器指令構(gòu)成的完成某種特定功能的一段程序,具有不可分割性。v同樣地,在臨界區(qū)后必須增加一段稱作退出區(qū)的代碼,用于將已有進(jìn)程進(jìn)入臨界區(qū)訪問臨界資源的標(biāo)志改為無(wú)進(jìn)程進(jìn)入臨界區(qū)使用臨界資源。 buffer[in]=nextp。假定 counter的當(dāng)前值是 5。? 在生產(chǎn)者進(jìn)程中使用一局部變量 nextp,用于暫時(shí)存放每次剛生產(chǎn)出來(lái)的產(chǎn)品。//關(guān)鍵這個(gè)!生產(chǎn)者 — 消費(fèi)者問題的實(shí)現(xiàn)107producer: while(true){ … produce an item in nextp。n==out167。Resource),諸進(jìn)程間應(yīng)采取互斥方式,實(shí)現(xiàn)對(duì)資源的共享。從靜態(tài)角度看,進(jìn)程是由程序、數(shù)據(jù)和PCB三部分組成的。913. 進(jìn)程喚醒過程? 當(dāng)被阻塞進(jìn)程所期待的事件出現(xiàn)時(shí),如 I/O完成或其所期待的數(shù)據(jù)已經(jīng)到達(dá),則由有關(guān)進(jìn)程(如用完并釋放了該 I/O設(shè)備的進(jìn)程)調(diào)用喚醒原語(yǔ)Wakeup(),將等待事件的進(jìn)程喚醒。進(jìn)程阻塞過程3.這是指在 I/O過程中發(fā)生了錯(cuò)誤等。這是指程序所訪問的存儲(chǔ)區(qū)已越出該進(jìn)程的區(qū)域。73( 2)為新進(jìn)程分配資源? 為新進(jìn)程的程序和數(shù)據(jù)以及用戶棧分配必要的內(nèi)存空間。進(jìn)程的終止3PCB57UNIX系統(tǒng) V中 PCB中的信息P357? 進(jìn)程表項(xiàng),其中包括最常用的核心數(shù)據(jù)? U區(qū),用于存放用戶進(jìn)程表項(xiàng)的一些擴(kuò)充數(shù)據(jù)? 系統(tǒng)區(qū)表,存放各個(gè)區(qū)在物理存儲(chǔ)器中的地址信息等? 進(jìn)程區(qū)表,用于存放各區(qū)的起始虛地址及指向系統(tǒng)區(qū)表中對(duì)應(yīng)區(qū)表項(xiàng)的指針58進(jìn)程控制塊的組織方式? 鏈接方式– 把具有同一狀態(tài)的 PCB,用其中的鏈接字鏈接成一個(gè)隊(duì)列。? 因?yàn)?PCB經(jīng)常被系統(tǒng)訪問,尤其是被運(yùn)行頻率很高的進(jìn)程及分派程序訪問,故 PCB應(yīng)常駐內(nèi)存。40創(chuàng)建( New)狀態(tài)? 引入創(chuàng)建狀態(tài)的原因– 保證進(jìn)程調(diào)度必須在創(chuàng)建工作完成后進(jìn)行,以確保對(duì) PCB操作的完整性。這種靜止?fàn)顟B(tài)稱為掛起狀態(tài)。( 2)分析下述狀態(tài)轉(zhuǎn)換是否可立即引起其他的狀態(tài)轉(zhuǎn)換: 1,2,3,4。19就緒( Ready)狀態(tài) p 進(jìn)程獲得了除 CPU以外的一切所需資源p 就緒隊(duì)列:在一個(gè)系統(tǒng)中處于就緒狀態(tài)的進(jìn)程可能有多個(gè),通常將它們排成一個(gè)隊(duì)列,稱為就緒隊(duì)列。– 為使程序(含數(shù)據(jù))能獨(dú)立運(yùn)行,應(yīng)為之配置一進(jìn)程控制塊,即 PCB(Pi+1而 Ii+1和 Ci及 Pi1是重迭的,亦即在 Pi1和 Ci以及 Ii+1之間,可以并發(fā)執(zhí)行。)Graph),用于描述進(jìn)程之間執(zhí)行的前后關(guān)系。Graphv有向無(wú)循環(huán)圖 DAGmayNode:沒有后繼的結(jié)點(diǎn)v Weight:結(jié)點(diǎn)所含的程序量或結(jié)點(diǎn)的執(zhí)行時(shí)間v上圖的前趨關(guān)系: Ii?Ci?PiCi?Ci+1,進(jìn)程的三種基本狀態(tài)3.? 運(yùn)行狀態(tài)? 就緒狀態(tài)? 阻塞狀態(tài)? 創(chuàng)建狀態(tài)? 結(jié)束狀態(tài)18運(yùn)行狀態(tài)( Running)p 也叫執(zhí)行狀態(tài)。? 阻塞狀態(tài) ?就緒狀態(tài)( I/O完成)– 當(dāng)進(jìn)程等待的事件到來(lái)時(shí),如 IO操作結(jié)束或中斷結(jié)束時(shí),中斷處理程序必須把相應(yīng)進(jìn)程的狀態(tài)由阻塞狀態(tài)轉(zhuǎn)換為就緒狀態(tài)。( 4) 靜止阻塞 → 活動(dòng)阻塞–處于 Blockeds狀態(tài)的進(jìn)程,若用激活原語(yǔ) Active激活后,進(jìn)程將轉(zhuǎn)變?yōu)?Blockeda狀態(tài)。– 當(dāng) OS要調(diào)度某進(jìn)程執(zhí)行時(shí),要從該進(jìn)程的 PCB中查出其現(xiàn)行狀態(tài)及優(yōu)先級(jí);– 在調(diào)度到某進(jìn)程后,要根據(jù)其 PCB中所保存的處理機(jī)狀態(tài)信息,設(shè)置該進(jìn)程恢復(fù)運(yùn)行的現(xiàn)場(chǎng),并根據(jù)其PCB中的程序和數(shù)據(jù)的內(nèi)存始址,找到其程序和數(shù)據(jù);– 進(jìn)程在執(zhí)行過程中,當(dāng)需要和與之合作的進(jìn)程實(shí)現(xiàn)同步、通信或訪問文件時(shí),也都需要訪問 PCB;– 當(dāng)進(jìn)程由于某種原因而暫停執(zhí)行時(shí),又須將其斷點(diǎn)的處理機(jī)環(huán)境保存在 PCB中。54處理機(jī)狀態(tài)? 這些寄存器包括:– 通用寄存器(用戶可視寄存器):是用戶程序可以訪問的,用于暫存信息,在大多數(shù)處理機(jī)中,有 8~32個(gè)寄存器,在 RISC結(jié)構(gòu)的計(jì)算機(jī)中可超過 100個(gè);– 指令計(jì)數(shù)器 PC:下一條指令的地址;– 程序狀態(tài)字 PSW:含有狀態(tài)信息,如條件碼、執(zhí)行方式、中斷屏蔽標(biāo)志等;– 用戶棧指針:指每個(gè)用戶進(jìn)程都有一個(gè)或若干個(gè)與之相關(guān)的系統(tǒng)棧,用于存放過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址,棧指針指向該棧的棧頂。9 11…60P215隱式鏈接、顯式鏈接按索引方式組織 PCB執(zhí)行指針就緒表指針阻塞表指針PCB? 原語(yǔ)的作用是為了實(shí)現(xiàn)進(jìn)程的通信和控制,系統(tǒng)對(duì)進(jìn)程的控制如不使用原語(yǔ),就會(huì)造成其狀態(tài)的不確定性,從而達(dá)不到進(jìn)程控制的目的。該應(yīng)用進(jìn)程為使這幾個(gè)操作能并發(fā)執(zhí)行,以加速任務(wù)的完成,可以分別建立鍵盤輸入進(jìn)程、 數(shù)據(jù)處理進(jìn)程、 表格輸出進(jìn)程等。 off去表示進(jìn)程運(yùn)行完畢,此時(shí)同樣可產(chǎn)生一個(gè)中斷,去通知 OS進(jìn)程已運(yùn)行完畢。– 算術(shù)運(yùn)算錯(cuò)。( 5)將被終止進(jìn)程( PCB)從所在隊(duì)列(鏈表)中移出,等待其他程序來(lái)搜集信息。? 進(jìn)入 block過程后,由于此時(shí)該進(jìn)程還處于執(zhí)行狀態(tài),所以應(yīng)先立即停止執(zhí)行,把 PCB中的現(xiàn)行狀態(tài)由 “執(zhí)行 ”改為 “阻塞 ”,并將 PCB插入阻塞隊(duì)列。? 假如采用的是 搶占調(diào)度 策略,則每當(dāng)有新進(jìn)程進(jìn)入就緒隊(duì)列時(shí),應(yīng)檢查是否要進(jìn)行重新調(diào)度,即由調(diào)度程序?qū)⒈患せ钸M(jìn)程與當(dāng)前進(jìn)程進(jìn)行優(yōu)先級(jí)的比較,如果被激活進(jìn)程的優(yōu)先級(jí)更低,就不必重新調(diào)度;否則,立即剝奪當(dāng)前進(jìn)程的運(yùn)行,把處理機(jī)分配給剛被激活的進(jìn)程。( 3)流水線生產(chǎn)的各道工序是直接制約,各道工序間需要相互合作,每道工序的開始都依賴于前一道工序的完成。n167。in,out。conditionregister2。n 是代碼n 進(jìn)程內(nèi)的代碼n 一段或多段n 不一定連續(xù)n 不一定相同v若能保證諸進(jìn)程互斥地進(jìn)入自己的臨界區(qū),便可實(shí)現(xiàn)諸進(jìn)程對(duì)臨界資源的互斥訪問。v剩余區(qū):其他代碼 臨界區(qū) (critical section)113v為了互斥地訪問臨界資源,系統(tǒng)必須保證進(jìn)程互斥地進(jìn)入臨界區(qū)。同步機(jī)制應(yīng)遵循的規(guī)則116( 3)有限等待整型信號(hào)量記錄型信號(hào)量 AND型信號(hào)量信號(hào)量集119v 整型信號(hào)量定義為一個(gè)整型量,除初始化外,僅能通過兩個(gè)標(biāo)準(zhǔn)的原子操作 Wait(S)整型信號(hào)量的應(yīng)用S1S2semaphore資源數(shù)目加 1wait(Dmutex)。amp。setassociatedifwaitingofsi=si+di。in}。signal(e)。wait(e)。signal(a)。wait(c)。wait(k)。– FIFO隊(duì)列(軟件資源):可用其隊(duì)長(zhǎng)、隊(duì)首和隊(duì)尾以及在該隊(duì)列上所執(zhí)行的一組操作來(lái)描述。144v 在利用管程實(shí)現(xiàn)進(jìn)程同步時(shí),必須設(shè)置兩個(gè)同步操作原語(yǔ)wait和 signal。生產(chǎn)者 — 消費(fèi)者問題利用記錄型信號(hào)量解決生產(chǎn)者 — 消費(fèi)者問題利用 AND信號(hào)量解決生產(chǎn)者 — 消費(fèi)者問題利用管程解決生產(chǎn)者 — 消費(fèi)者問題wait(empty)。 in因?yàn)?,后者總是要?zhí)行s++操作,因而總會(huì)改變信號(hào)量的狀態(tài)。? 信息掩蔽。procedurecoend}S1S2 S3 S4S5 S6S8S7134 管程機(jī)制? 信號(hào)量機(jī)制的優(yōu)點(diǎn)– 一種既方便又有效的進(jìn)程同步機(jī)制? 信號(hào)量機(jī)制的缺點(diǎn)– 每個(gè)要訪問臨界資源的進(jìn)程都必須 自備 同步操作 wait(s)和 signal(s)。wait(d)。{coend}F一個(gè)結(jié)點(diǎn)對(duì)應(yīng)一個(gè)進(jìn)程;F一條邊對(duì)應(yīng)一個(gè)信號(hào)量;F可以少用幾個(gè)信號(hào)量 133學(xué)生自己設(shè)計(jì)的實(shí)例Varwait(d)。signal(c)coend}利用信號(hào)量實(shí)現(xiàn)進(jìn)程互斥131wait(mutex)和 signal(mutex)必須成對(duì)出現(xiàn)。Ssignal(s1,d1,…sn,dn)itsPlace因而,在每次分配之前,都必須測(cè)試該資源的數(shù)量是否大于測(cè)試值 t。theofthev 要么全分配
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1