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

正文內容

第三章進程管理-1-文庫吧資料

2024-10-19 21:52本頁面
  

【正文】 的值只能由 . 信號量的使用原則 : 第三章 進 程 管 理 2020/11/17 58 / *原語 ? P(s) ? { =。 pointer_pcb queue。 “交換”指令 第三章 進 程 管 理 2020/11/17 53 硬件辦法 [3] “開關中斷”指令 進入臨界區(qū)前執(zhí)行:執(zhí)行“關中斷”指令 離開臨界區(qū)后執(zhí)行:執(zhí)行“開中斷”指令 第三章 進 程 管 理 2020/11/17 54 進程的同步機制 信號量及 同步機制 信號量及 管程 條件臨界域 路徑表達式等 (用于集中式系統(tǒng)中 ) 同步機制應滿足的基本要求 1. 描述能力 — 必須能夠詳細描述出進程間這種相互配合以及相互矛盾的關系 . 2. 可以實現(xiàn) — 實現(xiàn)起來方便 ,這種機制在一定的機制或一定的語言上要能夠實施 . 3. 效率高 — 不然的話 ,它會降低系統(tǒng)的并行能力和并行程度 . 4. 使用方便 第三章 進 程 管 理 2020/11/17 55 信號量 (semaphore) 是一個數(shù)據(jù)結構 。 } while(key)。 } key=true。 *a=*b。 臨界區(qū) lock=false。 return(old)。 old=*lock。turn=1)。 while (pturnamp。 Pturn=false 臨界區(qū) P: Qturn=true。amp。 turn=2。 qturn=false。 qturn=true。 while( pturn) { if (turn==2) { qturn=false。 pturn=false。 pturn=true。 while( qturn) { if (turn==2) { pturn=false。 flag[1]=false。 flag[1]=true。 while (flag[0]) begin flag[1]=false。 flag[0]=false。 flag[0]=true。 while (flag[1]) begin flag[0]=false。 flag[0]=true。 flag[1]=false。 ... while (flag[0])。 臨界區(qū) 。 flag[1]=false。 flag[1]=true。 flag[0]=false。 flag[0]=true。 Pturn=false 臨界區(qū) Pturn,qturn:初值為 false P進入臨界區(qū)的條件 :pturn ∧ not qturn Q進入臨界區(qū)的條件 :not Pturn ∧ qturn P: Qturn=true。 Turn=true 臨界區(qū) Q: 第三章 進 程 管 理 2020/11/17 45 ? 軟件方法 [3]: Pturn=true。 第三章 進 程 管 理 2020/11/17 44 ? 軟件方法 [2]: While( not turn)。 臨界區(qū) free:表示臨界區(qū)標志 true:有進程在臨界區(qū) false:無進程在臨界區(qū) (初值 ) ? 其基本思路:是在進入臨界區(qū)檢查和設置一些標志,如果已有進程在臨界 區(qū),則在進入?yún)^(qū)通過循環(huán)檢查進行等待;在退出區(qū)修改標志。 第三章 進 程 管 理 2020/11/17 40 程序段 1 程序段 2 程序段 3 共享變量 第三章 進 程 管 理 2020/11/17 41 使用臨界區(qū)的原則 有空讓進 :當臨界區(qū)中無進程時 ,任何有權使用臨界區(qū)的進程可進入 無空等待 :不允許兩個以上的進程同時進入臨界區(qū) . 多中選一 :當沒有進程在臨界區(qū) ,而同時有多個進程要求進入臨界區(qū) , 只能讓其中一個進入臨界區(qū) ,其他進程必須等待 . 有限等待 :任何進入臨界區(qū)的進程要求在有限的時間內得到滿足 . 讓權等待 :處于等待狀態(tài)的進程應該放棄占用 CPU,以便使得其他進程 有機會得到 CPU的使用權 . 第三章 進 程 管 理 2020/11/17 42 進程互斥的兩種解決方法 .由競爭各方平等協(xié)商 .引人一進程管理者 ,由管理者來協(xié)調競爭各方對互斥資源的使用 . 具體辦法 : 硬件 (當一個進程進入臨界區(qū) ,就屏蔽所有中斷 ) 軟件 (用編程解決 ,但常常忙等待 ) 第三章 進 程 管 理 2020/11/17 43 進程互斥的軟件方法 ? 通過平等協(xié)商方式實現(xiàn)進程互斥的最初方法是軟件方法 . ? 軟件方法 [1]: While(free) free=true。 . . . .例 1:民航售票 第三章 進 程 管 理 2020/11/17 39 .臨界區(qū) (互斥區(qū) ):Critical Section 把程序當中具有共享資源并且對共享資源進行操作的這段程序 ,或者說在進程中涉及到臨界資源的程序段叫做臨界區(qū) . a=a+1 print(a) a=a1 print(a) P1 P2 P3 If a0 a=a+1。 順序性 允許環(huán)境的封閉性 運行結果的確定性 運行結果的可再現(xiàn) 第三章 進 程 管 理 2020/11/17 37 例 : 同學甲 同學乙 if 有空椅子 then 坐下 if 有空椅子 then 搬走 造成的結果 1. 運行結果的不確定性 2. 不能保證運行環(huán)境的封閉性 3. 不能保證順序性 4. 運行結果的不可再現(xiàn)性 第三章 進 程 管 理 2020/11/17 38 .并行程序的特征 1. 共享性 2. 并發(fā)性 3. 隨機性 主機 A B C D A進程 B進程 if (x0 ) x=x1。 喚醒原語執(zhí)行的過程是:首先把被阻塞的進程從等待該事件的阻塞隊列中移出 , 將其 PCB中的現(xiàn)行狀態(tài)由阻塞改為就緒 , 然后再將該 PCB插入到就緒隊列中 。 把 i插入到 RQ隊尾 ? continue。 置 i進程為就緒狀態(tài) ? =RQ。找到相應的給定資源進程 N并獲取 N進程的內部名 ? remove(WQ(r),i)。 最后 , 轉調度程序進行重新調度 , 將處理機分配給另一就緒進程 , 并進行切換 , 亦即 ,保留被阻塞進程的處理機狀態(tài) (在 PCB中 ), 再按新進程的 PCB中的處理機狀態(tài)設置 CPU的環(huán)境 。 進入 block過程后 , 由于此時該進程還處于執(zhí)行狀態(tài) ,所以應先立即停止執(zhí)行 , 把進程控制塊中的現(xiàn)行狀態(tài)由 “ 執(zhí)行 ” 改為阻塞 ,并將 PCB插入阻塞隊列 。 轉調度程序 ? End ? . 阻塞原語 第三章 進 程 管 理 2020/11/17 30 正在執(zhí)行的進程 , 當發(fā)現(xiàn)上述某事件時 , 由于無法繼續(xù)執(zhí)行 , 于是進程便通過調用阻塞原語 block把自己阻塞 。 找到相應的插入隊列 ? insert(WQ(r),i)。 ? =blocka。 . 進程的激活 第三章 進 程 管 理 2020/11/17 28 .掛起引起的原因 協(xié)調負載過重 某些設備故障 調試程序 活動就緒靜止就緒執(zhí)行掛起激活釋放掛起活動阻塞靜止阻塞掛起激活釋放請求I/O具有掛起狀態(tài)的進程狀態(tài)圖 第三章 進 程 管 理 2020/11/17 29 1. 引起阻塞和喚醒的事件 請求系統(tǒng)服務 啟動某種操作 新數(shù)據(jù)尚未到達 無新工作可作 . 進程的阻塞與喚醒 ? Procedure Block(n) ? Begin ? i=EP。 激活原語先將進程從外存調入內存 , 檢查該進程的現(xiàn)行狀態(tài) , 若是靜止就緒 , 便將之改為活動就緒;若為靜止阻塞便將之改為活動阻塞 。 ? End ? 第三章 進 程 管 理 2020/11/17 27 當發(fā)生激活進程的事件時 , 例如 , 父進程或用戶進程請求激活指定進程 , 若該進程駐留在外存而內存中已有足夠的空間時 , 則可將在外存上處于靜止就緒狀態(tài)的進程換入內存 。 ? if =“readya” ? scheduler。 2. 進程 的掛起 第三章 進 程 管 理 2020/11/17 26 . 激活原語的激活方式 激活指定標識符的進程 激活某進程及其子孫 ? Procedure active(n) ? Begin ? i=get internal name(n)。 為了方便用戶或父進程考查該進程的運行情況而把該進程的PCB復制到某指定的內存區(qū)域 。 ? End 第三章 進 程 管 理 2020/11/17 25 當出現(xiàn)了引起進程掛起的事件時 , 比如 , 用戶進程請求將自己掛起 , 或父進程請求將自己的某個子進程掛起 , 系統(tǒng)將利用掛起原語 suspend( )將指定進程或處于阻塞狀態(tài)的進程掛起 。 /* 相應的 PCB保留起來以便查看是屬于哪一種掛起 . ? if s==blocka =Blocks else =readys。 ? if =“running” stop(i)。 第三章 進 程 管 理 2020/11/17 24 進程的掛起和激活 掛起 :讓進程暫時不參與資源的競爭 1. 掛起原語的方式 把掛起原語調用者本身掛起 ,即自己掛起自己 掛起某個標識符的進程 將某個指定標識符的進程及其全部或部分子孫掛起 . 掛起用以保存 N進程的 PCB副本的內存區(qū) ,以備參考 . ? Procedure suspend(n,a) ? Begin ? i=get internal name(n)。 4. 將被終止進程所擁有的全部資源 , 或者歸還給其父進程 , 或者歸還給系統(tǒng) 。 2. 若被終止進程正處于執(zhí)行狀態(tài) , 應立即終止該進程的執(zhí)行 , 并置調度標志為真 , 用于指示該進程被終止后應重新進行調度 。 ? 撤銷自己的資源清單并歸還系統(tǒng) ? remove process control block(i)。 ? for all r?() do ?
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1