管理cpu時,引出 「程序、執行緒」 。
對於含有io指令和不含io指令的一段程式,cpu的執行時間要查好幾個量級,因為cpu在硬體電路上工作,速度特別快,io指令在磁碟(磁臂——機械結構)工作,所以執行速度差好幾個量級。——可以把cpu看做人,其他指令操作都看成要做的事情,因此就可以產生 等待、先做別的事不斷檢查、等等操作。
同時,利用多程式提高cpu利用率,即乙個cpu交替執行多道程式:併發。
此處類似於看書時候被打斷,再重新看的事件。
os管理cpu即要執行程式,而單道程式時cpu利用率太低,因此,使用多道程式同時執行(即併發),而程式的交替執行就需要記錄執行中程式的樣子,因此引入程序的概念。程序即是執行中的程式。
——即找出下乙個程序pnew
——程序都儲存在記憶體中,相互可能存在耦合,對於使用者程式設計而言,都是在記憶體上操作,所以可能在程序1上修改程序2的記憶體資料。
因此,必須要限制乙個程序對另外程序的位址的讀寫。
程序管理+記憶體管理形成了多程序影象。
——生產者-消費者例項
構建緩衝區,並以counter做連線。
當多個程序同時對緩衝區操作,並且程序之間交替執行時,可能只執行每個程序的部分語句,可能產生緩衝區混亂。(建議:要實際演練一次程式執行)——生產者程序++,消費者程序--之後counter應為5,但程式交替執行出現錯誤。
作業系統之程序與執行緒4 程序排程
程序排程策略依照不同的應用也有不同的策略,比如衛星導航系統需要實時性強 嵌入式系統需要省電等排程策略具體實現。而且面對不同的情況,有無窮盡的排程策略,因此本文只討論一般普通pc機的幾種一般排程策略。由前邊程序 執行緒切換的知識可知,程序排程策略即是 如何從程序就緒佇列中選取下乙個即將執行的程序 即作...
作業系統 程序與執行緒
程序 作業系統結構的基礎,是乙個正在執行的程式 計算機中正在執行的程式例項 可以分配給處理器並由處理器執行的乙個實體 由單一順序的執行顯示,乙個當前狀態和一組相關的系統資源所描述的活動單元。程序切換 從正在執行的程序中收回處理器,然後再使待執行程序來占用處理器。這裡所說的從某個程序收回處理器,實質上...
作業系統 程序與執行緒
為什麼會有程序?以前的計算機效能較差,作業系統只支援單任務,也就是一次只能執行乙個任務,當這個任務執行完成之後,才能執行下乙個任務,例如msdos。當該任務進行io時,cpu會處於空閒狀態。隨著計算機效能增強,出現了多工作業系統,作業系統可以將多個任務同時載入到記憶體中,併發執行。當某個任務進行io...