霍纳法树形流图中处理机p个数_处理机管理(进程管理)
生活随笔
收集整理的這篇文章主要介紹了
霍纳法树形流图中处理机p个数_处理机管理(进程管理)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、進程
1.1.進程的定義
- 程序關于某個數據集合的一次執行過程
1.2.進程的特征(與程序比較)
- 結構特征
- 進程控制塊(PCB) + 程序 + 數據 = 進程實體
- 動態性 -- 最基本特征
- 進程:進程實體的一次執行過程,有生命周期
- 程序:程序是一組有序指令的集合,是靜態的概念
1.3.進程的三種基本狀態
- 就緒狀態(Ready)
- 進程已獲得除CPU之外的所有必需的資源,一旦得到CPU控制權,立即可以運行
- 運行狀態(Running)
- 進程已獲得運行所必需的資源,它正在處理機上執行
- 阻塞狀態(Blocked)
- 正在執行的進程由于發生某時間而暫時無法執行時,便放棄處理機而處于暫停狀態,稱該進程處于阻塞狀態或等待狀態
1.4.進程的五種狀態
- 引入掛起狀態后,增加了掛起狀態(靜止狀態)到非掛起狀態(活動狀態)的轉換,或者相反
二、進程互斥與同步
2.1.進程間兩種形式的制約關系
- 間接相互制約關系 --- 源于資源共享
- 直接相互制約關系 --- 源于進程合作
2.1.臨界資源
- 臨界資源(Critical Resource):把一段時間內只允許一個進程訪問的資源稱為臨界資源或獨占資源
- 臨界區(Critical Section):每個進程中訪問臨界資源的那段代碼稱為臨界區
三、信號量機制
3.1.基本概念
- 信號量時OS提供的管理共有資源的有效手段
- 信號量時一個整數,當信號量大于等于零時,代表可供并發進程使用的資源數量,當信號量小于零時,表示處于阻塞態的進程的個數
3.2.信號量的操作
- Wait操作:
- 申請操作,減量操作,S.value:=S.value-1
- 當S.value<0時,表示資源分配完,進行自我阻塞
- Signal操作:
- 釋放資源,增量操作,S.value:=S.value+1
- 當S.value≦0,喚醒S.L鏈表中的等待進程
四、信號量的應用
4.1.利用信號量實現進程互斥(模式)
- 為使多個進程互斥的訪問某臨界資源,須為該資源設置一互斥信號量mutex,并設其初始值為1,然后將各進程訪問資源的臨界區CS置于wait(mutex)和signal(mutex)之間即可
4.2.利用信號量實現前驅關系(模式)
- 設有兩個并發執行的進程P1和P2,P1中有語句S1,P2中有語句S2,希望在S1執行后再執行S2
- 使進程P1和P2共享一個公用信號量S,并賦予其初值為0
- 進程P1: S1; Signal(S);
- 進程P2:Wait(S); S2;
4.3.利用記錄型信號量實現同步(模式)
- p1,p2兩進程因合作完成一項任務而共用一個變量x。進程p2將處理結果送入x;進程p1將x的結果打印
- 即:p2: x=處理結果;
- p1: Print(x);
五、進程調度
5.1.基本概念
- 也稱短程調度(Short-Term Scheduling),用來決定就緒隊列中的哪個進程應獲得處理機,然后再由分派程序把處理機分配給該進程
5.2.非搶占方式(Non-preemptive Mode)
- 一旦把處理機分配給某進程后,便讓該進程一直執行,直至該進程完成或發生某事件而被阻塞時,才把處理機分配給其他進程,絕不允許進程搶占已分配出去的處理機
- 評價:實現簡單,系統開銷小;適用于大多數的批處理OS,但在要求比較嚴格的實時系統中,不宜采用這種調度方式
5.3.搶占方式(Preemptive Mode)
- 允許調度程序根據某種原則,區暫停某個正在執行的進程,將處理機重新分配給另一進程
- 搶占原則:
- 時間片原則:各進程按時間片運行,一個時間片用完時,停止該進程執行重新進行調度
- 短作業(進程)優先原則:短作業(進程)可以搶占長作業(進程)的處理機
- 優先權原則:優先權高的可以搶占優先權低的進程的處理機
六、調度算法
6.1.分類
- 先來先服務
- 短作業(進程)優先調度算法
- 高優先權優先調度算法
- 時間片輪轉調度算法
6.2.先來先服務調度算法(FCFS)
- 是一種最簡單的調度算法,既可用于作業調度,也可用于進程調度
- 進程調度采用FCFS算法時,每次調度都從就緒隊列中選擇一個最先進入該隊列的進程,為之分配處理機,使之運行
- FCFS算法比較有利于長作業(進程),而不利于短作業(進程)
6.3.短作業(進程)優先調度算法(SJ(P)F)
- 對短作業或短進程優先調度的算法,可以分別用于作業調度和進程調度
- 短作業優先(SJF)的調度算法:從后備隊列中選擇一個或若干個估計運行時間最短的作業,將它們調入內存運行
- 短進程優先(SPF)調度算法:是從就緒隊列中選出一估計運行時間最短的進程,將處理機分配給它,使它立即運行
- SJF調度算法的優缺點:
- 優點:有效降低作業的平均等待時間,提高系統吞吐量
- 缺點:對長作業不利
- 該算法完全未考慮作業的緊迫程度,因而不能保證緊迫性作業(進程)會被及時處理
- 由于作業(進程)的長短只是根據估計執行時間定的,主觀因素較大,不一定能真正做到短作業優先
6.4.高優先權優先調度算法
- 為照顧緊迫性作業,使之在進入系統后便獲得優先處理,引入了最高優先權優先(FPF)調度算法
- 此算法常用于批處理系統中,作為作業調度算法,也作為多種操作系統中的進程調度算法,還可用于實時系統中
- 優先權的類型:
- 靜態優先權:在創建進程時確定的,在進程的整個運行期間保持不變。利用某一范圍的整數來表示(0~7),又稱為優先數
- 動態優先權:在創建進程時所賦予的優先權可以隨進程的推進或隨其等待時間的增加而改變
- 高響應比優先調度算法
- 優先權 = (等待時間+要求服務時間)/要求服務時間
- 或Rp = 響應時間/要求服務時間
- 從上式可以看出:
- 如作業等待時間相同,則要求服務的時間愈短優先權愈高,所以該算法利于短作業
- 當要求服務的時間相同,作業優先權的高低決定于其等待時間的長短,所以時先來先服務
- 對于長作業,作業的優先級可以隨等待時間的增加而提高,當其等待時間足夠長也可獲得處理機
6.5.時間片輪轉調度算法
- 每個進程被分配一個時間段,稱作它的時間片,即該進程允許運行的時間
- 如果在時間片結束時進程還沒有運行結束,則CPU將被剝奪并分配給另一進程,該進程到就緒隊列隊尾重新排隊
- 如果進程在時間片內阻塞或結束,則CPU當即進行切換
七、死鎖
7.1.基本概念
- 是指多個進程在運行過程中因剝奪資源而造成的一種僵局,當進程處于這種狀態時,若無外力作用,它們都將無法再向前推進
7.2.產生死鎖的原因
- 競爭資源:當系統中供多個進程共享的資源如打印機、公用隊列等,其數目不足以滿足諸進程的需要時,會引起諸進程對資源的競爭而產生死鎖
- 可剝奪性資源:資源分配給進程后可以被高優先級的進程剝奪,如CPU、主存
- 不可剝奪性資源:分配給進程后只能在進程用完后才釋放的資源,如磁帶機、打印機等
- 進程間推進順序非法:進程在運行過程中,請求和釋放資源的順序不當,也同樣會導致產生死鎖
7.3.產生死鎖的必要條件
- 互斥條件:進程訪問的時臨界資源,即在一段時間內資源只由一個進程占用,如果此時還有其他進程請求該資源,則請求者只能等待,直至占有該資源的進程用完釋放
- 請求和保持條件:一進程在請求新的資源的同時,保持對已分配資源的占有
- 不可剝奪條件:指進程已獲得的資源,在未使用完之前,不能被剝奪,只能在使用完時由自己釋放
- 環路等待條件:指在發生死鎖時,必然存在一個進程--資源的環形鏈
7.4.處理死鎖的基本方法
- 預防死鎖:設置某些限制條件,去破壞產生死鎖的四個必要條件的一個或幾個
- 摒棄“請求和保持”條件
- 摒棄”不剝奪“條件
- 摒棄”環路等待“條件
- 避免死鎖:防止系統進入不安全狀態
- 銀行家算法避免死鎖
- 檢測死鎖
- 解除死鎖
總結
以上是生活随笔為你收集整理的霍纳法树形流图中处理机p个数_处理机管理(进程管理)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 450W的超级怪兽!RTX 4090/4
- 下一篇: AppleMobileDeviceSer