程序
一. 程序的基本概念
二. 程序的建立
有4種主要事件導致程序的建立:
三. 程序的狀態
1. 程序有三種狀態:
2. 狀態之間的轉換:
四. 程序的實現
為了實現程序模型,作業系統維護者一張**(即程序表,
乙個結構陣列)。每個程序占用乙個程序表項(即程序控制塊pcb)。該表項包含了程序狀態的重要資訊,包括程式計數器、堆疊指標、記憶體分配情況、所開啟的檔案狀態、賬號和排程資訊,以及其他在程序中由執行態轉換到就緒態或阻塞態時必須儲存的資訊,從而保證程序隨後能再次啟動,就像從未被中斷過一樣。
一. 執行緒的基本概念
二. 執行緒模型
執行緒模型試圖實現的是,共享一組資源的多個執行緒的執行能力,以便這些執行緒可以為完成某一任務而共同工作,如下圖所示,
第一列給出了在乙個程序中所有執行緒共享的內容,第二列給出了每個執行緒自己的內容:
程序與執行緒的區別
ipc程序間通訊方式
程序同步方式
程序排程策略
一. 排程介紹
在作業系統中,完成程序選擇工作的這一部分稱為排程程式,該程式使用的演算法稱為排程演算法。為了選取正確的程序執行,排程程式還要考慮cpu的利用率,因為程序切換的代價是比較高昂的。首先使用者態必須切換到核心態(控制權由使用者轉到作業系統);然後要儲存當前程序的狀態,包括在程序表中儲存暫存器值以便以後重新裝載。在許多系統中,記憶體映像(如頁表內的記憶體訪問位)也必須儲存;接著,通過執行排程演算法選定乙個新程序;之後,應該將新程序的記憶體映像重新裝入mmu;最後新程序開始執行。除此之外,程序切換還要使整個記憶體快取記憶體失效,強迫快取從記憶體中動態重新裝入兩次(進入核心一次,離開核心一次)。總之,如果每秒鐘切換程序的次數太多,會耗費大量cpu時間。
二. 程序行為
某些程序花費了絕大多數時間在計算上,而其他程序則在等待i/o上花費了絕大多數時間。前者稱為計算密集型,後者稱為i/o密集型。
三. 何時排程:
四. 排程演算法
1. 兩個重要概念:
2. 程序排程演算法
(1)fcfs(先到先服務排程):
(2)sjf(最短作業優先排程):
(3)psa(優先順序排程):
(4)rr(輪轉法排程):
(5)mqsa(多級佇列排程):
(6)mfqsa(多級反饋佇列排程):
程序間 執行緒間通訊方式小結
管道 pipe 管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。有名管道 namedpipe 有名管道也是半雙工的通訊方式,但是它允許無親緣關係程序間的通訊。訊號量 semophore 訊號量是乙個計數器,可以用來控制多個程序對共...
程序間 執行緒間通訊方式小結
之前一直對程序間和執行緒間的通訊方式搞混,今天對它們總結一下。管道 pipe 管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。有名管道 namedpipe 有名管道也是半雙工的通訊方式,但是它允許無親緣關係程序間的通訊。訊號量 s...
程序間 執行緒間通訊方式小結
管道 pipe 管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。有名管道 namedpipe 有名管道也是半雙工的通訊方式,但是它允許無親緣關係程序間的通訊。訊號量 semophore 訊號量是乙個計數器,可以用來控制多個程序對共...