天天看點

淺談作業系統之程序管理

     詳解本文前,先來說說什麼是作業系統吧,要不,大家可能都不知道自己在看些什麼。下圖,可以非常形象的表示作業系統及它的相關内容。本文主要詳細介紹一下作業系統的程序管理功能。

淺談作業系統之程式管理

      上圖可以看出,作業系統是位于計算機硬體和應用軟體之間的,有效組織和管理系統中各種軟、硬體資源。它通過資源管理,提高了計算機系統的效率;也改善了人機界面,不需要我們直接面對簡單且複雜的0和1了,向使用者提供了友好的工作環境。下面來細說說程序管理吧。

     首先,我們需要了解,什麼是程序,與其相關的,什麼又是線程?程序,可以認為它就是程式的一次執行。程序主要有程式、資料和程序控制塊(pcb)組成,其中pcb是程序的唯一辨別。而線程則是程序的一個實體。通過建立線程,減少程式并發執行時的時空開銷,下圖形象的表示了程序與線程的關系。

淺談作業系統之程式管理

     說到程序管理,就不得不說說三态模型了。對比着,我們可以看出程序的管理主要哎就緒狀态和運作狀态之間的轉換。先看圖:

淺談作業系統之程式管理

     三種狀态:運作态、就緒态和等待态。在就緒狀态時:程序已得到運作所需資源,隻等cpu的排程即可運作,可稱之為萬事俱備隻欠東風;而運作狀态:程序已得到運作所需資源,并且得到了cpu的排程;等待狀态則是不具備運作條件,等待時機的狀态。三種狀态間的轉換圖中已顯示清楚,不再贅述。

     其中在就緒狀态和運作狀态間的轉換中,涉及到了很重要的程序排程。下面來詳細說一說。

     程序排程有兩種方式:可剝奪和不可剝奪。可剝奪式是指當有更高優先級的程序到來時,強行将正在運作程序的cpu配置設定給更高優先級的程序;不可剝奪式與其不同,即便有更高優先級的程序到來,也需要等待正在運作程序自動釋放占用的cpu。

     這裡的排程也就是涉及到三級排程。請看下圖:

淺談作業系統之程式管理

     而常用的排程算法主要有先來先服務、時間片輪轉、優先級排程和多級回報排程算法。

     先來先服務算法按照作業送出或程序成為就緒狀态的先後次序配置設定cpu,也就是說程序排程總是将就緒隊列隊首的程序投入運作。時間片輪轉則分為固定時間片和可變時間片。固定時間片配置設定給每個程序相等的時間片,使所有程序都公平執行。而可變時間片則是根據程序不同要求對時間片大小實時修改。優先級排程顧名字義,誰的優先級高就優先排程誰。多級回報排程則是時間片輪轉和優先級排程的一個結合。

     大緻就是這些了,繼續學習,繼續補充吧!