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

正文內(nèi)容

計(jì)算機(jī)操作系統(tǒng)-進(jìn)程管理(編輯修改稿)

2025-02-17 15:26 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 理機(jī)將會(huì)出現(xiàn)空轉(zhuǎn)而浪費(fèi)資源。 第二章 進(jìn) 程 管 理 3. 進(jìn)程喚醒過(guò)程 ? 當(dāng)被阻塞進(jìn)程所期待的事件出現(xiàn)時(shí) , 則由有關(guān)進(jìn)程調(diào)用 喚醒原語(yǔ) wakeup( ), 將等待該事件的進(jìn)程喚醒 。 ?執(zhí)行過(guò)程 : ?把被阻塞的進(jìn)程從等待該事件的阻塞隊(duì)列中移出 ,將其 PCB中的現(xiàn)行狀態(tài)由阻塞改為就緒 。 ?再將該 PCB插入到就緒隊(duì)列中 。 第二章 進(jìn) 程 管 理 圖 喚醒原語(yǔ) 第二章 進(jìn) 程 管 理 進(jìn)程的掛起與激活 1. 進(jìn)程的掛起 當(dāng)出現(xiàn)了引起進(jìn)程掛起的事件時(shí),系統(tǒng)將利用 掛起原語(yǔ)suspend( )將指定進(jìn)程或處于阻塞狀態(tài)的進(jìn)程掛起。 執(zhí)行過(guò)程: ?首先檢查被掛起進(jìn)程的狀態(tài),若處于活動(dòng)就緒狀態(tài),便將其改為靜止就緒;對(duì)于活動(dòng)阻塞狀態(tài)的進(jìn)程,則將之改為靜止阻塞。 ?若被掛起的進(jìn)程正在執(zhí)行,則轉(zhuǎn)向調(diào)度程序重新調(diào)度。 第二章 進(jìn) 程 管 理 2. 進(jìn)程的激活過(guò)程 當(dāng)發(fā)生激活進(jìn)程的事件時(shí),系統(tǒng)將利用 激活原語(yǔ)active( )將指定進(jìn)程激活。 過(guò)程: 先將進(jìn)程從外存調(diào)入內(nèi)存,檢查該進(jìn)程的現(xiàn)行狀態(tài),若是靜止就緒,便將之改為活動(dòng)就緒;若為靜止阻塞,便將之改為活動(dòng)阻塞。 掛起 激活 Active( ) Suspend( ) 第二章 進(jìn) 程 管 理 在 UNIX系統(tǒng)中進(jìn)程控制的系統(tǒng)調(diào)用有: fork() 創(chuàng)建子進(jìn)程 sleep() 進(jìn)程睡眠 exit() 進(jìn)程自已終止 ( 自殺 ) wait() (父 ) 等待子進(jìn)程終止 wakeup() 進(jìn)程喚醒 第二章 進(jìn) 程 管 理 小結(jié) ? 操作系統(tǒng)的順序進(jìn)程和并發(fā)進(jìn)程的各自特點(diǎn) (1) 順序性 1) 間斷性 (2) 封閉性 2) 失去封閉性 (3) 可再現(xiàn)性 3) 不可再現(xiàn)性 ? 進(jìn)程基本概念 進(jìn)程是進(jìn)程實(shí)體的運(yùn)行過(guò)程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位 ? 進(jìn)程的三個(gè)基本狀態(tài)及轉(zhuǎn)換 1) 就緒 (Ready)狀態(tài) 2) 3) 阻塞狀態(tài) ? 進(jìn)程控制 就緒阻塞 執(zhí)行時(shí)間片完進(jìn)程調(diào)度I / O 完成I / O 請(qǐng)求第二章 進(jìn) 程 管 理 ?并發(fā)引起的操作系統(tǒng)的改變 ?操作系統(tǒng)必須記住各種活躍的進(jìn)程 ?必須為每個(gè)進(jìn)程分配和釋放各種資源 ?保護(hù)每個(gè)進(jìn)程的數(shù)據(jù)和物理資源 ?進(jìn)程的結(jié)果必須與執(zhí)行速度無(wú)關(guān) 進(jìn) 程 同 步 第二章 進(jìn) 程 管 理 進(jìn) 程 同 步 進(jìn)程同步的基本概念 1. 兩種形式的制約關(guān)系 ? 間接相互制約關(guān)系 ——進(jìn)程互斥。 源于共享著某種系統(tǒng)資源 ? 直接相互制約關(guān)系 ——進(jìn)程同步 。 源于進(jìn)程間的合作 第二章 進(jìn) 程 管 理 進(jìn)程互斥 一 . 互斥的概念 引例: 宿舍電話的使用 2個(gè)同學(xué)搶椅子 打印機(jī)的使用 1. 臨界資源 (共享變量、互斥資源, critical resource): 一次僅允許一個(gè)進(jìn)程使用的資源稱為臨界資源。 P16 第二章 進(jìn) 程 管 理 例 1:兩個(gè)進(jìn)程對(duì)同一變量 count訪問(wèn)和修改, P1: count+=1。 P2: count=1。 若 count = 5。 P1: R1 = count。 R1 = R1+1。 count = R1。 P2: R2 = count。 R2 = R2 1 。 count = R2。 若順序執(zhí)行 P P2,則 count = 5。 若并發(fā)執(zhí)行,則 count=4? 6? 第二章 進(jìn) 程 管 理 ?并行語(yǔ)句記號(hào) 可以用語(yǔ)句 cobegin S1; S2; … ; Sn ; coend 來(lái)表示語(yǔ)句 S1, S2, … , Sn可以并發(fā)執(zhí)行 。 Si(i=1,2,3,...,n)表示 n個(gè)語(yǔ)句 ( 程序段 ) ,這 n個(gè)語(yǔ)句用 cobegin和 coend括起來(lái)表示這 n個(gè)語(yǔ)句是可以并發(fā)執(zhí)行的 。 co是 concurrent的頭兩個(gè)字符 。 這是 Dijkstra提出的 。 第二章 進(jìn) 程 管 理 互斥資源的例子 引例中的電話和打印機(jī)都屬于臨界資源,還有其他的: 物理設(shè)備:輸入機(jī)、磁帶機(jī); 軟件資源:內(nèi)存變量、指針、數(shù)組、棧、隊(duì)列等等也是臨界資源。 P37不可在現(xiàn)的例子中, N是臨界資源,上例中,count是臨界資源。 對(duì) 臨界資源 的使用要作某種限制,否則會(huì)產(chǎn)生與時(shí)間有關(guān)的錯(cuò)誤。 第二章 進(jìn) 程 管 理 臨界區(qū)( critical section/region) : 每個(gè)進(jìn)程中訪問(wèn)臨界資源的那段程序段稱為 臨界區(qū) (臨界段)。 P50 write write read 臨界資源 第二章 進(jìn) 程 管 理 3.互斥 定義 : 在操作系統(tǒng)中,當(dāng)某一進(jìn)程正在訪問(wèn)某臨界區(qū)時(shí),就不允許其它進(jìn)程進(jìn)入,否則就會(huì)發(fā)生 (后果 )無(wú)法估計(jì)的錯(cuò)誤。我們把進(jìn)程之間的這種 相互制約的關(guān)系 稱為 互斥 。 或者: 不允許兩個(gè)及以上的共享臨界資源的并發(fā)進(jìn)程同時(shí)進(jìn)入臨界區(qū)稱 互斥 。 第二章 進(jìn) 程 管 理 互斥的例子 ? 交通十字路口、窄橋相對(duì)通行、獨(dú)木橋等等。 ? 日常生活中,隨處可見(jiàn),操作系統(tǒng)很多原理和現(xiàn)象來(lái)自于生活,學(xué)習(xí)時(shí)可以從日常生活中的現(xiàn)象來(lái)分析理解。 第二章 進(jìn) 程 管 理 互斥的例子 例 1: 進(jìn)程 A、 B共享一臺(tái)打印機(jī),則當(dāng)一進(jìn)程占用打印機(jī)后,另一進(jìn)程若也要使用打印機(jī),則必須等待,直至它釋放打印機(jī)。 例 2: 機(jī)票預(yù)訂系統(tǒng),機(jī)票數(shù)為 n,此時(shí) n=1 A B 旅行社 A查到某機(jī)座空 1; : : 旅行社 B查到某機(jī)座空 1; 與其顧客商量; : : 旅行社 A預(yù)訂該機(jī)座; n: B預(yù)訂該 機(jī)座; n 第二章 進(jìn) 程 管 理 解決辦法 ? do { entry section critical section。 exit section remainder section。 }while(1)。 第二章 進(jìn) 程 管 理 進(jìn)入臨界區(qū)的準(zhǔn)則: (1) 空閑讓進(jìn)。 (2) 忙則等待。 (3) 有限等待。 (4) 讓權(quán)等待。 第二章 進(jìn) 程 管 理 二 . 用鎖實(shí)現(xiàn)互斥 、 開(kāi)鎖操作 解決進(jìn)程互斥的最簡(jiǎn)單的辦法是加鎖 。 在系統(tǒng)中為 每個(gè)臨界資源設(shè)置一個(gè)鎖位 w, w=0 表示資源可用 , w=1 表示資源已被占用 ( 不可用 ) 。 同時(shí) ,系統(tǒng)要提供上鎖原語(yǔ)和開(kāi)鎖原語(yǔ) , 供進(jìn)程在使用臨界資源之前使用上鎖原語(yǔ) , 使用完臨界資源之后使用開(kāi)鎖原語(yǔ) 。 第二章 進(jìn) 程 管 理 上鎖、開(kāi)鎖操作 ? 對(duì)于每一共享的數(shù)據(jù)塊或者設(shè)備都要有一個(gè)單獨(dú)的鎖位。 ? 進(jìn)程使用某一共享資源之前必須完成下列動(dòng)作(上鎖操作): ① 檢測(cè)鎖位的值( 0還是 1)。 ② 如果原來(lái)的值為 0。將鎖位置 1(上鎖)。 ③ 如果原來(lái)的值為 1,則返回①繼續(xù)測(cè)試 。 進(jìn)程使用完共享資源后,將鎖位置 0,稱做開(kāi)鎖操作。 第二章 進(jìn) 程 管 理 算法 上鎖原語(yǔ) 算法 lock 輸入:鎖變量 w 輸出:無(wú) { test: if(w==1) goto test。 /*測(cè)試鎖位的值 */ else w=1。 /*上鎖 */ } 開(kāi)鎖原語(yǔ) 算法 unlock 輸入:鎖變量 w 輸出:無(wú) { w=0。 /*開(kāi)鎖 */ } 第二章 進(jìn) 程 管 理 算法的缺 點(diǎn) ? 忙式等待,耗費(fèi)進(jìn)程占用 CPU的時(shí)間,把測(cè)試的任務(wù)交給競(jìng)爭(zhēng)的進(jìn)程,削弱了系統(tǒng)的可靠性。 ? 為了克服這個(gè)缺點(diǎn),對(duì)此進(jìn)一步修改。 第二章 進(jìn) 程 管 理 第二章 進(jìn) 程 管 理 上鎖原語(yǔ) 進(jìn)入臨界區(qū) csb 開(kāi)鎖原語(yǔ) 進(jìn)程 B 上鎖原語(yǔ) 進(jìn)入臨界區(qū) csa 開(kāi)鎖原語(yǔ) 進(jìn)程 A 任何進(jìn)入臨界區(qū)的進(jìn)程必須先執(zhí)行上鎖原語(yǔ),通過(guò)則進(jìn)入臨界區(qū),使用完后執(zhí)行開(kāi)鎖原語(yǔ) 第二章 進(jìn) 程 管 理 main ( ) ppa ( ) ppb ( ) { { { int w=0。 : : cobegin lock(w)。 lock(w)。 ppa()。 CSa。 CSb。 ppb()。 unlock(w)。 unlock(w)。 coend : : } } } 進(jìn)程互斥的實(shí)現(xiàn): 鎖方法的優(yōu)點(diǎn): 實(shí)現(xiàn)互斥簡(jiǎn)單, 缺點(diǎn):效率很低;不公平現(xiàn)象,不能占用 cpu就不能測(cè)試,出現(xiàn)饑餓。 改進(jìn): Dijkstra發(fā)明的 P、 V操作。 第二章 進(jìn) 程 管 理 進(jìn)程互斥的硬件方法 ? 完全利用軟件方法,有很大局限性(如不適于多進(jìn)程),現(xiàn)在已很少采用。 ? 可以利用某些硬件指令--其讀寫操作由 一條指令 完成,因而保證讀操作與寫操作不被打斷; TestandSet指令 該指令讀出標(biāo)志后設(shè)置為 TRUE boolean TS(boolean *lock) { boolean old。 old = *lock。 *lock = TRUE。 return old。 } lock表示資源的兩種狀態(tài): TRUE表示正被占用,F(xiàn)ALSE表示空閑 第二章 進(jìn) 程 管 理
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1