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

正文內(nèi)容

第三章進程管理-1(參考版)

2024-10-15 21:52本頁面
  

【正文】 END END。 V(s)。 BEGIN if (count0) then BEGIN count 。VAR s: semaphore。 END。 END else V()。 if (0) then BEGIN 。VAR count:integer)。 第三章 進 程 管 理 2020/11/17 97 Procedure wait(VAR instance:one_instance。 END else V()。 BEGIN if (0) then BEGIN 。 END。 第三章 進 程 管 理 2020/11/17 95 Procedure enter(VAR instance:one_instance)。 第三章 進 程 管 理 2020/11/17 94 例 : 用 管程的實現(xiàn) ? 直接構(gòu)造(效率高) ? 間接構(gòu)造,即用某種已經(jīng)實現(xiàn)的同步機制來構(gòu)造 Type one_instance=RECORD mutex:semaphore(初值為 1) urgent:semaphore(初值為 0) urgent_count:int (初值為 0) Type monitor_elements=MODULE。否則釋放管程的互斥權(quán),執(zhí)行此操作的進程的 PCB入 C鏈尾部。 對于條件型變量,可以執(zhí)行 wait和 signal操作。當(dāng)進入管程的進程因資源被占用等原因不能繼續(xù)運行時 使其等待。它的優(yōu)先級應(yīng)該高于入口等待隊列的優(yōu)先級。 如果進程 P喚醒進程 Q,則 P等待 Q繼續(xù)。 問題:多個進程出現(xiàn)在管程中 當(dāng)一個進入管程的進程執(zhí)行等待操作時,它應(yīng)當(dāng)釋放管程的互斥 權(quán);當(dāng)一個進入管程的進程執(zhí)行喚醒操作時,管程中便存在兩個同 時處于活動狀態(tài)的進程。 ② 為了保證管程共享變量的數(shù)據(jù)完整性,規(guī)定管程互斥進入。 ③ 信息掩蔽,管程是半透明的,管程中的外部過程(函數(shù))實現(xiàn)了某些功能,管程中的內(nèi)部過程(函數(shù))實現(xiàn)了某些功能,至于這些功能是怎樣實現(xiàn)的,在其外部是不可見的。 第三章 進 程 管 理 2020/11/17 90 管程的 4個組成部分 ① 名稱 ② 數(shù)據(jù)結(jié)構(gòu)說明 ③ 對該數(shù)據(jù)結(jié)構(gòu)進行操作的一組過程 /函數(shù) ④ 初始化語句 管程的 3個主要特征 ① 模塊化,一個管程是一個基本程序執(zhí)行單位,可以單獨編譯。 FUNCTION 函數(shù)名(形參表):值類型 函數(shù)局部變量說明; BEGIN 語句序列; END。 ? Use 本管程外所定義、本管程內(nèi)可調(diào)用的過程(函數(shù))名字表。 管程的形式 ? Type monitor_name=MONITOR。 系統(tǒng)按資源管理的觀點分解成若干模塊,用數(shù)據(jù)表示抽象系統(tǒng)資源, 同時分析了共享資源和專用資源在管理上的差別,按不同的管 理方 式定義模塊的類型和結(jié)構(gòu),使同步操作相對集中,從而增加了模塊 的相對獨立性。因為 OS或并發(fā)程序通常很大,要保證這樣一個復(fù)雜的系統(tǒng)沒有邏輯錯誤是很難的。因為程序的局部性差,所以一組變量或一段代碼的修改都可能影響全局。由于信號量的操作是分散的,而要了解對于一組共享變量及信號量的操作是否正確,者必須通讀整個系統(tǒng)或者并發(fā)程序。 第三章 進 程 管 理 2020/11/17 87 進程的同步機制--管程 管程的提出 采用 ,對于共享變量及信號量變量的 操作將被分散在各個進程中。 ? 寫者必須互斥(只允許一個寫者寫,也并不允許讀者寫者同 時進行。 } 第三章 進 程 管 理 2020/11/17 86 IPC 經(jīng)典問題 :有兩組并發(fā)進程:讀者和寫著共享一組數(shù)據(jù)區(qū)。 } state[i]=THINKING。 v(amp。 test([i1]%5)。mutex)。s[i])。mutex)。 test[i]。mutex)。s[i])。 (state[(i+1)%5]!=EATING { state[i]=EATING。(STATE[(i1)%5]!=EATING amp。 Void test(int i) { if ((state[i]= = HUNGRY)amp。 Semaphore mutex=1。并且一次拿到兩只筷子,否則不拿。 ? 給所有哲學(xué)家編號,奇數(shù)號的必須先拿左邊,偶數(shù)號的必須先拿右邊的。為了吃通心粉,每個哲學(xué)家必須拿到兩只筷子,并且每個人只能直接從自己的左邊或右邊取筷子。 } 第三章 進 程 管 理 2020/11/17 83 : 有五個哲學(xué)家,圍坐在一圓桌旁,桌中央有一盤通心粉,每人面前有一只空盤子,每兩人之間放一只筷子。 } 寫者 While (true) { P(w)。 if (readcount= =0) V(w)。 讀; P(mutex)。 if (readcount== 1) P(w)。 Wrt =1 第三章 進 程 管 理 2020/11/17 82 讀者 While (true) { P(mutex)。 寫; V(Wrt)。 ? 有其他寫者,新寫者等待。 如果寫者來 ? 無讀者,新寫者可以寫。 要求:允許多個讀者同時執(zhí)行讀操作 不允許讀者、寫著同時操作(讀、寫互斥) 不允許多個寫者同時操作(只能一個寫) 第一類:讀者優(yōu)先策略 如果讀者來 ? 無讀者、寫者,新讀者可以讀 ? 有寫者等,但有其他讀者正在讀,則新讀者也可以讀。 v(a)。 p(mutex)。 v(b)。 p(mutex)。 int b=N1。 用 要求滿足條件: ① N B產(chǎn)品數(shù)量 A產(chǎn)品數(shù)量 ② 每次只能存入一種產(chǎn)品( A或 B) M int mutex=1。 扔一個蘭球 。 1 ≤ 2 紅 蘭 ≤ 用 扔紅球者 ... P(r) 扔一個紅 V(b1); V(g) 扔蘭球者 ... P(b1)。要求池子里球滿足條件 1 ≤ 2 紅球數(shù) 蘭球數(shù) ≤ 用 扔紅球者 ... P(r) 扔一個 V(b) 扔蘭球者 ... P(b) 扔一個蘭球 V(r) V(r) 原來的條件 蘭 ≤ 紅 ≤ 2 蘭 r= 1 b= 0 第三章 進 程 管 理 2020/11/17 78 例 : 有一個大池子 ,三個人分別向池子里扔球 ,甲扔 蘭 球 ,乙扔 紅 球 ,丙扔綠 球,一次扔一個。 V(S):表示釋放一個資源 .因此 S=S+1。 消費產(chǎn)品 。 V(mutex2)。 P(mutex2) 從 Buffer[j]中取產(chǎn)品 。 } j=0。 i=(i+1) % n。 P(mutex1)。 While (true) { 生產(chǎn)產(chǎn)品 。 j=(j+1) % n。 V(mutex) V(S1)。 P(S2)。 } j=0。 P(mutex) 往 Buffer[i]放產(chǎn)品 V(mutex) V(S2)。 While (true) { 生產(chǎn)產(chǎn)品 。 j=(j+1) % n。 V(mutex) V(S1)。 While (true) { P(S2)。 i=(i+1) % n。 P(S1)。 } P: S2 =0 上面情況所關(guān)注的問題 : 一個生產(chǎn)者和一個消費者的問題 第三章 進 程 管 理 2020/11/17 72 n個 緩沖區(qū) ,m個生產(chǎn)者和 k個消費者問題 P: Q: i=0。 消費產(chǎn)品 。 從 Buffer[j]中取產(chǎn)品 。 } j=0。 往 Buffer[i]放產(chǎn)品 V(S2)。 While (true) { 生產(chǎn)產(chǎn)品 。 j=(j+1)%n。 V(S1)。 While (true) { P(S2)。 i=(i+1)%n。 P(S1)。 } 第三章 進 程 管 理 2020/11/17 68 P 放消息 Q 取消息 i j 此圖說明的問題 : 當(dāng)緩沖區(qū)增大的時候 第三章 進 程 管 理 2020/11/17 69 3. 多個緩沖區(qū)的生產(chǎn)者-消費者問題 P: Q: i=0。 V(S1)。 } While (true) { P(S2)。 送產(chǎn)品到緩沖區(qū) 。等 計算 A+B 0 1 0 S 0 1 0 S 第一種(甲快) : 第二種(乙快): 執(zhí)行過程: 輸入輸入輸入快 第三章 進 程 管 理 2020/11/17 65 規(guī)定:一次只可放一個產(chǎn)品 生產(chǎn)者:生產(chǎn)一件產(chǎn)品,放入倉庫,一次只能放一件產(chǎn)品 消費者:消費一件產(chǎn)品,從倉庫中取一件產(chǎn)品消費 2. 經(jīng)典的生產(chǎn)者-消費者問題 生產(chǎn)者 消費者 倉庫 第三章 進 程 管 理 2020/11/17 66 同步問題 P進程不能往滿的緩沖區(qū)中放產(chǎn)品,設(shè)置信號量為 S1 Q進程不能從空的緩沖區(qū)中取產(chǎn)品,設(shè)置信號量為 S2 問題:怎么知道設(shè)置 2個信號量 S1和 S2 生產(chǎn)者進程 ... 生產(chǎn)一件產(chǎn)品 P(S1) 放入倉庫 消費者進程 ... P(S2) 取一件產(chǎn)品 消費 S1: 表示倉庫中的空位 S2: 表示倉庫中的產(chǎn)品 第三章 進 程 管 理 2020/11/17 67 P: S1= 1 Q: S2= 0 While (true) { 生產(chǎn)一個產(chǎn)品 。 ? } ? } ? V(s) ? { =+1。 第三章 進 程 管 理 2020/11/17 56 信號量 ① 互斥的信號量 : ② 同步的信號量 : 信號量的物理意義 ① S0:S表示可用資源的個數(shù) . ② S=0:S表示無資源使用 ,也無等待進程 . ③ S0: 表示等待隊列中進程的個數(shù) S 問題 :信號量的初值不能為負 ,為什么 ? 第三章 進 程 管 理 2020/11/17 57 原語 :primitive or aic action ? 是由若干機器指令構(gòu)成的完成某種特定功能的一段程序 ,具有不可 分割性 .即原語的執(zhí)行必須是連續(xù)的 ,在執(zhí)行過程中不允許被中斷 . 原語實現(xiàn) :開關(guān)中斷 1. 必須置一次且只能設(shè)一次初值 2. 初值不能為負數(shù) 3. 修改信號量
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1