作業系統-處理器管理
知識點1:程序及其實現
一. 程序
1.程序是程式對某個資料集的一次執行過程,具有動態性和生命週期。
2.執行緒是一種特殊的程序
3.程序包含程式段、資料段、PCB
4.程序是作業系統分配資源的基本單位
5.程序建立後隨即進入等待佇列
6.併發程序:同時進行的程序(這裡的同時指的是巨集觀上的同時,實際為多程序在同一時間段執行)
7.程序三種狀態之間的關係(三態模型)
( !圖中程序可以自身決定的只有IO請求)
8.關於程序的切換:指CPU在不同程序之間的切換(執行->就緒,狀態的轉換必然伴隨著CPU的切換即程序的切換)
9.關於父子程序:父程序與子程序可以併發執行
知識點二:執行緒及其實現
1.引入執行緒的目的:主要目的在於提高CPU的利用率;可以使作業系統具有更好的併發性。
2.關於“基本單元”的概念:無論何時,程序都是資源分配的基本單位;引入執行緒的概念後,執行緒是CPU分配和排程的基本單位。
3.執行緒包含:<1> CPU執行現場、<2> 執行棧
4.執行緒的分類:<1> 使用者級執行緒、<2> 核心級執行緒
5.多執行緒模型
6.執行緒的空間地址:執行緒沒有獨立的空間,其共享所在程序的空間地址。
7.一個程序可能包含多個執行緒,同一程序中的多個執行緒可以併發執行,但每次排程一個程序時,其中一個執行緒只能執行一次。
(例題:A程序設定100個使用者執行緒,排程以程序為單位,採用時間片輪轉排程演算法,A程序執行100次,每個使用者執行緒最多執行 100 次)
知識點三:處理器排程
1.排程層次:<1> 高階排程(作業排程)、<2> 中級排程(將data在記憶體與外部裝置之間相互傳送)、<3> 低階排程(程序排程)
2.作業與程序的關係:程序是對某個資料集的執行過程,是資源分配的基本單位;作業是使用者需要計算機完成的某項任務,是要求計算機所作工作的集合。
3.作業的4個作業步:編譯->連線->裝入->執行
4.常用作計算的幾個計算量:
系統吞吐量:單位時間CPU完成作業的數量
週轉時間=作業i的完成時間-作業i的提交時間
帶權週轉時間=作業i的週轉時間/作業i的執行時間
平均等待時間:(視具體作業排程演算法而定)
響應比=作業響應時間/估計執行時間
作業響應時間=作業等待時間+估計執行時間
5.作業是使用者提交的,程序是由系統自動生成的;前者以使用者任務為單位,後者是作業系統控制的單位。
6.分時作業系統常採用時間片輪轉的策略
7.當一個程序執行時,系統可以基於某種原則強行將其撤下,把處理器分配給其他程序,這種排程方式是剝奪方式(又叫搶佔排程方式)
8.幾種典型排程演算法的應用場景:
<1>短作業優先演算法與作業的執行事件有關
<2>分時作業系統中常採用時間片輪轉演算法
<3>在程序排程演算法中,先來先服務演算法對短程序不利
<4>所有作業同時到達時,平均週轉時間最小的作業是短程序優先演算法
有關計算問題,會陸續補充,未完待續...