記憶體中的程序:
程序中斷時(如時間片到期),儲存當前程序狀態
運用的是pcb資料結構儲存程序上下文:
****程序排程:
1、非搶占式(批處理系統)------------------------>>排程標準是:先來先服務;最短作業優先
2、搶占式(互動系統)----->>排程標準:1、公平(合理分配cpu)2、響應時間短(使用者輸入到執行完成的時間短)3、吞吐量大(單位時間完成的任務數量多) 這三個標準是互相矛盾的
所以搶占式系統就有以下幾種排程策略:
1、輪轉(時間片)
2、優先順序(動態優先順序,等待時間增長,不斷提公升的優先順序)
3、多級佇列反饋
生產者和消費者問題(印表機問題)(共享變數不一致的問題):
偽**如下:
產生問題的核心:
1、排程的不可控 2、counter++,counter--;不是原子操作 ------->>>p.counter!=c.counter;
臨界區:當程序進入臨界區的時候不允許其他程序進行操作
實現臨界區問題:
1、關閉中斷,在程序進入臨界區的時候,關閉中斷,使得該cpu只執行當前程序。問題:如果多核的情況下要關閉多個中斷;並且在程序執行完畢後要重新開啟中斷,不然系統會崩潰,所以這個關閉中斷操作不能交給應用程式許可權;所以這只是理論存解決的方案。
2、硬體指令實現鎖
3、訊號量(djstra)
注意:偽**如下:
作業系統 程序
在作業系統中,作業系統將記憶體,網路,檔案系統抽象為資源的統一抽象表示。1 什麼是程序 程序就是進入記憶體中正在執行的程式。把程序當做一組元素組成的實體。程序包括兩個部分,一部分是 部分,另一部分是 相關的資料集合。程序控制塊 每乙個程序,在核心中都對應著乙個程序控制塊。程序控制塊中儲存著程序的所有...
作業系統 程序
程序是作業系統中的重要概念,描述了程式的執行資訊。乙個程序就是一次執行。可以把程式想象成類,程序就是例項。引入程序的概念有利於實現多程式並行的設計。每乙個程式執行的時候可以大致分為io任務和計算任務,如果乙個程序正在io,那麼應該把cpu讓給另乙個程序執行計算任務,這樣可以提公升cpu的利用率,這就...
作業系統程序
乙個程序就是乙個正在執行的程式。它包括 程序狀態。包括 每個程序在作業系統中用程序控制塊pcb來表示,用來儲存與該程序有關的各種狀態資訊。pcb只是基本原理中的說法,對於乙個真實的作業系統可能不叫pcb,比如linux中叫做任務結構體 task struct 分時系統是在程序之間快速切換,以便使用者...