作業系統設計必須滿足某些一般性的需求,大多數需求都涉及程序:
程序的定義:
也可以把程序當作一組元素的實體,程序的兩個基本元素是程式**(可能被執行相同程式的其他程序共享)和與**相關聯的資料集。假設處理器開始執行該程式**,且我們把這個執行實體成為程序。在程序執行時,任意給定乙個時間,程序都可以唯一的被表徵為以下元素:
狀態:如果程序正在執行,那麼程序處於執行態
優先順序:相對於其他程序的優先順序
上下文資料:程序執行時處理器的暫存器中的資料
i/o狀態資訊:包括顯示的i/o請求、分配給程序的i/o裝置和被程序使用的檔案列表等
審計資訊:可包括處理器時間綜合、使用的時鐘數綜合、事件限制、審計號等
前面的列表資訊被存在在乙個程序控制塊的資料結構中。該控制塊有作業系統建立和管理。如圖:
程序控制塊是作業系統能夠支援多程序提供多重處理技術的關鍵工具。當程序被中斷時,作業系統會把程式計數器和處理器暫存器(上下文資料)儲存到程序控制快中相應位置,程序狀態也改變為其他值,例如阻塞態或就緒態。現在作業系統可以自由地把其他程序置為執行態,把其他程序的程式計數器和程序上下文資料載入到處理器暫存器中,這樣其他程序就可以開始執行。
每個程序都有程序控制塊pcb,都存放在記憶體中。但是我們要盡量少的把東西放到pcb裡面去。
通俗來說,程序需包含三方面內容:1. 程序在執行什麼程式
2. 執行的程式在處理什麼資料
3. 程序處於什麼狀態
對於pcb我的理解:在引進了多工作業系統後,作業系統需要在程序切換的時候,需要把當前暫存器中的值寫入當前程序pcb的registers中,儲存起來。再把新程序的pcb的registers中的值裝載入cpu,這樣才完成了程序的切換。這些開銷是額外的開銷,在單機環境裡面是不應該有這些開銷的,程序上下文切換這種額外開銷要越少越好。
1.程序終止原因如圖:
2.程序的五狀態模型
如圖:
分析:新建態舉例:乙個新使用者登入到分時系統中,首先,作業系統執行一些必須的輔助工作,將識別符號關聯到程序,分配和建立管理程序所需要的所有表。此時,程序處於新建態,意味著作業系統已經執行了建立程序的必須動作,但還沒有執行程序。例如,作業系統可能基於效能或記憶體侷限性的原因,限制系統中的程序數量。當程序處於新建態時,作業系統所需要的關於該程序的資訊儲存在記憶體的程序表中,但程序自身還未進入記憶體,就是即將執行的程式**不再記憶體中,也沒有為這個程式相關的資料分配空間。當程序處於新建態時,程式保留在外村中,通常是磁碟中。
狀態中轉換有兩種需要注意:
《作業系統 精髓與設計原理》 程序描述和控制
作業系統必須交替執行多個程序,在合理的響應時間範圍內使處理器的利用率最大 作業系統必須按照特定的策略給程序分配資源,同時避免死鎖 作業系統可以支援程序間的通訊和使用者建立程序,它們對構建應用程式很有幫助 程序乙個正在執行中的程式 乙個正在計算機上執行的程式例項 能分配給處理器並由處理器執行的實體 乙...
作業系統原理 程序描述和控制
程序的出現,是為了作業系統可以以一種有序的方式管理應用的執行,以達到以下的目的 資源對多個應用程式是可用的。程序在多個應用程式之間的切換以保證多個應用程式都在執行中。處理器和i o裝置能夠得到充分利用。程序是一組元素組成的實體,他可以是乙個正在執行中的程式,也可以是乙個能分配處理器並由處理器執行的實...
作業系統 程序描述
作業系統為了管理程序和資源,必須掌握每個程序和資源的當前狀態。最普遍採用的一張方法是 作業系統管理並維護其管理的每個實體的資訊表。大致可以分為四類 記憶體,i o,檔案,程序。以後的學習中將會著重對這四部分內容學習。如上圖所示,作業系統會為如上實體維護資訊表,在此目前只研究程序,其餘的在以後的學習會...