wait() 會執行將value減1操作操作 ,當value < 0時,代表目前有阻塞的程序在等資源,當 value = 1 時,給予程序執行
signal() 會執行將 value加1操作,,當 value < 0 時,代表優程序正阻塞等資源,此時,可以隨機釋放其中的任意程序,當 value = 1 時,代表當前處於互斥狀態 ,無線程等待資源
n 代表緩衝區
in用於記錄生產數量 in = (in+1) % n
out 用於記錄消費數量 ou = (out+1) % n
迴圈緩衝,所以 當 in == out 時, 緩衝區為空
當 (in+1) % n ==out 時,緩衝區為滿
處理機的排程是處理就緒佇列程序,而死鎖是處理阻塞佇列的程序
程序排程的任務:
儲存處理機的現場資訊、按某種演算法選取程序、把處理器分配給程序
程序排程有搶占式與非搶占式,目前的程序排程都是搶占式:
非搶占方式:只有完成或因某事無法繼續執行、 i/o 、執行了原語操作如 block ,才會引起 程序排程
優點:簡單、開銷小、適用大多數批處理系統
搶占方式:對分時系統而言 .有人機互動、對實時系統而言 .能滿足任務需求 主要原則:優先權原則、短 程序優先原則、時間片原則
產生死鎖的4個必要條件:
互斥條件:一段時間只被乙個程序占用
請求和保持條件:程序已經保持至少乙個條件,但又提出新資源請求
不可搶占條件:只能在程序用完才能釋放
迴圈等待條件:存在迴圈鏈
處理死鎖的4個方法:
1,預防死鎖:設定限制條件,破壞產生死鎖四個必要條件來預防(程式設計師幹的)
2,避免死鎖:在資源動態分配時,用某種方法防止系統進入不安全狀態
3,檢測死鎖:通過檢測機構及時檢測死鎖,採取適當措施以解脫
4,解除死鎖:撤銷程序,**資源 ,分配給處於阻塞的程序
1—4 防範逐漸減弱 .但資源利用率提高 .程序因資源因素而阻塞的頻度下降
避免死鎖
檢測死鎖
解除死鎖
作業系統複習
l 計算機系統把資源管理和控制程式執行的功能集中組成一種軟體,稱為 作業系統 是系統軟體 l作業系統的兩個設計目標 1 使計算機系統使用方便 2 使計算機系統能高效地工作 擴充硬體的功能,使硬體的功能發揮得更好 使使用者合理共享資源,防止相互干擾 以檔案形式管理軟體資源,保證資訊的安全和快速訪問。l...
作業系統複習
1.1作業系統的目標和作用 作業系統的作用 作業系統的目標 1.2作業系統的發展過程 1.作業系統的產生 2.作業系統的形成 3.作業系統的基本特徵 3.1併發 並行 程序 3.2共享 3.3虛擬 4.作業系統的主要功能 1,處理機管理功能 處理機是計算機中最重要的資源 4.2儲存器管理功能 是計算...
作業系統複習
1.程序和執行緒的區別。1 程序是資源分配和保護的基本單位,執行緒是處理器排程和分派的基本單位,程式執行的最小單元。2 同乙個程序中可以包含多個執行緒,並且執行緒共享整個程序的資源 暫存器 堆疊 上下文 乙個程序至少包含乙個執行緒。3 程序結束後,它所有的執行緒都將銷毀,而執行緒的結束不會影響同個程...