版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第第3 3章章 處理機調(diào)度處理機調(diào)度 第第3章章 處理機調(diào)度處理機調(diào)度 3.1 調(diào)度級別調(diào)度級別 3.2 作業(yè)調(diào)度作業(yè)調(diào)度3.3 進程調(diào)度進程調(diào)度 3.4 性能評價標準性能評價標準 3.5 常用調(diào)度算法常用調(diào)度算法 3.6 Linux系統(tǒng)中的進程調(diào)度系統(tǒng)中的進程調(diào)度 習題習題 第第3 3章章 處理機調(diào)度處理機調(diào)度 3.1 調(diào)調(diào) 度度 級級 別別 一般來說, 作業(yè)從進入系統(tǒng)到最后完成, 可能要經(jīng)歷三級調(diào)度: 高級調(diào)度、 中級調(diào)度和低級調(diào)度。 (1) 高級調(diào)度: 又稱作業(yè)調(diào)度。 (2) 中級調(diào)度: 為了使內(nèi)存中同時存放的進程數(shù)目不至于太多, 有時就需要把某些進程從內(nèi)存中移到外存上, 以減少多道程序
2、的數(shù)目, 為此設立了中級調(diào)度。 第第3 3章章 處理機調(diào)度處理機調(diào)度 (3) 低級調(diào)度: 又稱進程調(diào)度。 其主要功能是根據(jù)一定的算法將CPU分派給就緒隊列中的一個進程。 第第3 3章章 處理機調(diào)度處理機調(diào)度 3.2 作作 業(yè)業(yè) 調(diào)調(diào) 度度 3.2.1 作業(yè)狀態(tài) 如前所述, 作業(yè)從提交給系統(tǒng), 直到完成任務后退出系統(tǒng)前, 在整個活動過程中它會處于不同的狀態(tài)。 通常, 作業(yè)狀態(tài)分為四種: 提交、 后備、 執(zhí)行和完成, 如圖3-1所示。第第3 3章章 處理機調(diào)度處理機調(diào)度 作業(yè) 1作業(yè) 2作業(yè) 3OSCPU后備作業(yè)磁 盤(輸入井)完成作業(yè)磁 盤(輸出井)打印機讀卡機內(nèi)存提交后備執(zhí)行完成圖3-1 作業(yè)
3、的基本狀態(tài)第第3 3章章 處理機調(diào)度處理機調(diào)度 (1) 提交狀態(tài)即用戶向系統(tǒng)提交一個作業(yè)時, 該作業(yè)所處的狀態(tài)。 (2) 后備狀態(tài)即用戶作業(yè)經(jīng)輸入設備(如讀卡機)送入輸入井(磁盤)中存放, 等待進入內(nèi)存時所處的狀況。 (3) 執(zhí)行狀態(tài)即作業(yè)分配到所需的資源, 被調(diào)入內(nèi)存, 并且在處理機(CPU)上執(zhí)行相應的程序時所處的狀況。 (4) 完成狀態(tài)即作業(yè)完成了計算任務, 結果由打印機輸出, 最后由系統(tǒng)回收分配給它的全部資源, 準備退出系統(tǒng)時的作業(yè)狀況。第第3 3章章 處理機調(diào)度處理機調(diào)度 3.2.2 作業(yè)調(diào)度 1. 作業(yè)控制塊(JCB) 在多道批處理系統(tǒng)中通常有上百個作業(yè)被收容在輸入井(磁盤)中。
4、為了管理和調(diào)度作業(yè), 系統(tǒng)為每個作業(yè)設置了一個作業(yè)控制塊(JCB), 它記錄該作業(yè)的有關信息。 不同系統(tǒng)的JCB的組成內(nèi)容有所區(qū)別。 JCB的主要內(nèi)容如圖3-2所示。第第3 3章章 處理機調(diào)度處理機調(diào)度 圖3-2 作業(yè)控制塊 第第3 3章章 處理機調(diào)度處理機調(diào)度 2. 作業(yè)調(diào)度的功能 如上所述, 作業(yè)調(diào)度的主要任務是完成作業(yè)從后備狀態(tài)到執(zhí)行狀態(tài)和從執(zhí)行狀態(tài)到完成狀態(tài)的轉換。 具體來說, 通常作業(yè)調(diào)度程序要完成以下工作(這就是作業(yè)調(diào)度的功能)。 (1) 記錄系統(tǒng)中各個作業(yè)的情況。 (2) 按照某種調(diào)度算法從后備作業(yè)隊列中挑選作業(yè)。 (3) 為選中的作業(yè)分配內(nèi)存和外設等資源。 (4) 為選中的作業(yè)
5、建立相應的進程。 第第3 3章章 處理機調(diào)度處理機調(diào)度 (5) 作業(yè)結束后進行善后處理工作, 如輸出必要的信息, 收回該作業(yè)所占用的全部資源, 撤消與該作業(yè)相關的全部進程和該作業(yè)的JCB。 第第3 3章章 處理機調(diào)度處理機調(diào)度 3.3 進進 程程 調(diào)調(diào) 度度 3.3.1 進程調(diào)度的功能和時機 進程只有在得到CPU之后才能真正活動起來。 一個就緒進程怎樣獲得CPU的控制權呢? 這是由進程調(diào)度實現(xiàn)的, 進程調(diào)度也被稱為低級調(diào)度。 進程調(diào)度程序也往往被稱為低級調(diào)度程序, 它完成進程狀態(tài)從就緒態(tài)到運行態(tài)的轉化。實際上, 進程調(diào)度程序主要是完成一臺物理的CPU轉變成多臺虛擬(或邏輯)的CPU的工作。第第
6、3 3章章 處理機調(diào)度處理機調(diào)度 1. 功能 進程調(diào)度的主要功能是: (1) 保存現(xiàn)場。 (2) 挑選進程。 (3) 恢復現(xiàn)場。 第第3 3章章 處理機調(diào)度處理機調(diào)度 2. 時機 在什么情況下執(zhí)行進程調(diào)度呢? 一般是在以下事件發(fā)生后作進程調(diào)度: (1) 完成任務。 (2) 等待資源。 (3) 運行到時。 (4) 發(fā)現(xiàn)標志。 (5) 創(chuàng)建新進程。 第第3 3章章 處理機調(diào)度處理機調(diào)度 圖3-3 進程調(diào)度流程 進程A進程B進程K進程L就緒隊列CPU進程調(diào)度程序第第3 3章章 處理機調(diào)度處理機調(diào)度 3.3.2 兩級調(diào)度模型 作業(yè)調(diào)度和進程調(diào)度是CPU主要的兩級調(diào)度, 二者的關系可用圖3-4表示。第第
7、3 3章章 處理機調(diào)度處理機調(diào)度 圖3-4 兩級調(diào)度簡化隊列圖 I/OI/O等待隊列就緒隊列作業(yè)調(diào)度后備作業(yè)隊列I/O完成CPU請求I/O進程調(diào)度結束第第3 3章章 處理機調(diào)度處理機調(diào)度 3.3.3 三級調(diào)度模型 當一個系統(tǒng)中三級調(diào)度同時存在時, 其相互間的關系如圖3-5所示。 簡單來說, 作業(yè)調(diào)度從后備作業(yè)中選擇一批合適的作業(yè)放入內(nèi)存, 并創(chuàng)建相應的進程; 進程調(diào)度從就緒隊列中選擇一個合適進程, 令其投入運行; 中級調(diào)度將在內(nèi)存中駐留時間較長的進程換到磁盤上: 從就緒隊列轉到就緒/掛起隊列, 從阻塞隊列轉到阻塞/掛起隊列。 當內(nèi)存中有足夠的可用空間時, 中級調(diào)度就從就緒/掛起隊列中選擇一些合
8、適的進程放入內(nèi)存, 使之進入就緒隊列。第第3 3章章 處理機調(diào)度處理機調(diào)度 圖3-5 三級調(diào)度簡化隊列 CPU就緒隊列中級調(diào)度就緒, 掛起隊列阻塞, 掛起隊列阻塞隊列作業(yè)調(diào)度后備作業(yè)批作業(yè)交互式用戶事件發(fā)生等待事件中級調(diào)度結束到時進程調(diào)度第第3 3章章 處理機調(diào)度處理機調(diào)度 3.4 性能評價標準性能評價標準 (1) 所用算法應保證實現(xiàn)系統(tǒng)的設計目標。 (2) 對所有作業(yè)或進程應公平對待。 (3) 均衡使用資源, 盡量使系統(tǒng)中各種資源都同時得到利用。 (4) 兼顧響應時間和資源利用率。 (5) 基于相對優(yōu)先級, 但避免無限延期。 (6) 系統(tǒng)開銷不應太大。 第第3 3章章 處理機調(diào)度處理機調(diào)度
9、3.4.2 性能評價標準 1. CPU利用率 CPU的利用率可從0100%。 2. 吞吐量 吞吐量表示單位時間內(nèi)CPU完成作業(yè)(或進程)的數(shù)量。 3. 周轉時間 從一個特定作業(yè)的觀點出發(fā), 最重要的標準就是完成這個作業(yè)要花費多長時間。 第第3 3章章 處理機調(diào)度處理機調(diào)度 作業(yè)i的周轉時間Ti為 siciittT 其中, tsi表示作業(yè)i的提交時刻, tci表示作業(yè)i的完成時刻。 系統(tǒng)中n個作業(yè)的平均周轉時間T為nTTnii11第第3 3章章 處理機調(diào)度處理機調(diào)度 作業(yè)周轉時間沒有區(qū)分作業(yè)實際運行時間長短的特性, 因為長作業(yè)不可能具有比運行時間還短的周轉時間。 為了合理反映長短作業(yè)的差別, 定
10、義了另一個衡量標準帶權周轉時間W, 即W=T/R, 其中T為周轉時間, R為實際運行時間。 平均帶權周轉時間W為nRTnWWniiinii1)(1)(11第第3 3章章 處理機調(diào)度處理機調(diào)度 4. 就緒等待時間 CPU調(diào)度算法并不真正影響作業(yè)執(zhí)行或IO操作的時間數(shù)量。 各種CPU調(diào)度算法僅影響作業(yè)(進程)在就緒隊列中所花費的時間數(shù)量。 第第3 3章章 處理機調(diào)度處理機調(diào)度 5. 響應時間 在交互式系統(tǒng)中, 周轉時間不可能是最好的評價標準。 一個進程往往可以很早地就產(chǎn)生某些輸出, 當前面的結果在終端上輸出時它可以繼續(xù)計算新的結果。 于是, 有另一個評價標準, 就是從提交第一個請求到產(chǎn)生第一個響應
11、所用的時間, 這就叫做響應時間。 第第3 3章章 處理機調(diào)度處理機調(diào)度 3.5 常用調(diào)度算法常用調(diào)度算法 3.5.1 先來先服務(FCFS) 最簡單的CPU調(diào)度算法就是先來先服務(First Come First Served)方法, 即按作業(yè)(進程)到來的先后次序進行調(diào)度。 這樣, 在系統(tǒng)中等待時間最長的作業(yè)就優(yōu)先被調(diào)度, 而不管其所需運行時間的長短。 FCFS的性能很差。 考慮下面三個作業(yè)(如圖3-6所示), 對每個作業(yè), 設已知其運行時間, 我們計算這三個作業(yè)的平均周轉時間。 第第3 3章章 處理機調(diào)度處理機調(diào)度 圖3-6 三個作業(yè) 第第3 3章章 處理機調(diào)度處理機調(diào)度 如果作業(yè)按1,
12、2, 3的順序幾乎同時到達, 那么采用FCFS方式的服務順序也是123, 如圖3-7所示。圖3-7 FCFS方式 第第3 3章章 處理機調(diào)度處理機調(diào)度 作業(yè)1的周轉時間是24; 作業(yè)2的周轉時間是27; 作業(yè)3的周轉時間是30, 平均周轉時間是(24+27+30)/3=27。 然而, 若作業(yè)的到達順序是2, 3, 1, 則服務順序如圖3-8所示。第第3 3章章 處理機調(diào)度處理機調(diào)度 圖3-8 另一種作業(yè)運行順序 第第3 3章章 處理機調(diào)度處理機調(diào)度 3.5.2 短作業(yè)優(yōu)先(SJF) CPU調(diào)度的另一種方式是短作業(yè)優(yōu)先(Shortest Job First)算法。 所謂作業(yè)的長短是指作業(yè)要求運行
13、時間的多少。 當CPU可供使用時, SJF算法就把CPU分給最短的作業(yè)。 例如, 考慮如圖3-9所示的一組作業(yè)(它們同時提交到系統(tǒng))。第第3 3章章 處理機調(diào)度處理機調(diào)度 圖3-9 同時到達的一組作業(yè) 第第3 3章章 處理機調(diào)度處理機調(diào)度 利用短作業(yè)優(yōu)先法調(diào)度, 作業(yè)執(zhí)行的順序如圖3-10所示。其平均周轉時間是13。 圖3-10 SJF調(diào)度法 第第3 3章章 處理機調(diào)度處理機調(diào)度 對于一組給定的作業(yè)來說, 短作業(yè)優(yōu)先法給出最小的平均等待時間。 可以證明, 在這方面它是最佳的。 證明的辦法是, 把一個短作業(yè)移到長作業(yè)之前所減少的短作業(yè)的等待時間大于增加的長作業(yè)等待時間。 相應地, 平均等待時間也
14、減少了, 如圖3-11所示。第第3 3章章 處理機調(diào)度處理機調(diào)度 圖3-11 SJF有最小平均等待時間 長作業(yè)短作業(yè)長作業(yè)短作業(yè)第第3 3章章 處理機調(diào)度處理機調(diào)度 3.5.3 優(yōu)先級(Priority) 短作業(yè)優(yōu)先法是一般優(yōu)先級調(diào)度算法的特例。 每個進程有一個優(yōu)先級, CPU分給優(yōu)先級最高的進程。 優(yōu)先級相同的進程按FCFS調(diào)度。 短作業(yè)優(yōu)先法是簡化的優(yōu)先級算法, 這里優(yōu)先級(p)反比于估計的下一次CPU工作時間(), p=1/。 CPU工作時間越長, 其優(yōu)先級越低。第第3 3章章 處理機調(diào)度處理機調(diào)度 3.5.4 搶占式和非搶占式算法 SJF既可以為搶占式, 又可以為非搶占式。 當一個作業(yè)
15、正在執(zhí)行時, 一個新作業(yè)到來, 并進入就緒隊列, 而新作業(yè)比當前正在執(zhí)行的作業(yè)還短, 在此情況下, 就有兩種不同的處理方式: 搶占式短作業(yè)優(yōu)先算法強行中止當前正在執(zhí)行的作業(yè), 調(diào)度新作業(yè)執(zhí)行; 而非搶占式SJF將允許當前作業(yè)繼續(xù)運行, 直到完成它的CPU運行工作。 搶占式短作業(yè)優(yōu)先法也叫做最短剩余時間優(yōu)先法(SRTF, Shortes Remaining Time First)。 作為例子, 考慮下面4個作業(yè)(如圖3-12所示)。 第第3 3章章 處理機調(diào)度處理機調(diào)度 圖3-12 4個作業(yè)示例 第第3 3章章 處理機調(diào)度處理機調(diào)度 如果這些作業(yè)按上面所示的時間進入就緒隊列并需要指定的運行時間,
16、 那么下面的示意圖(如圖3-13所示)就說明了最短剩余時間優(yōu)先法調(diào)度的結果。第第3 3章章 處理機調(diào)度處理機調(diào)度 圖3-13 SRTF法調(diào)度示例 作業(yè)1作業(yè)2作業(yè)4015101726作業(yè)1作業(yè)3搶占第第3 3章章 處理機調(diào)度處理機調(diào)度 表3-1 SRTF調(diào)度算法的性能 第第3 3章章 處理機調(diào)度處理機調(diào)度 3.5.5 輪轉法(RR) 輪轉法(RR, Round Robin)主要是為分時系統(tǒng)設計的。 一個極為重要的參數(shù)就是時間片, 它是一個小的時間單位, 不能取得過大或者過小, 通常為10100 ms數(shù)量級。 就緒隊列可看成是一個環(huán)形隊列, CPU調(diào)度程序輪流地把CPU分給就緒隊列中的每個進程,
17、 時間長度都是一個時間片。第第3 3章章 處理機調(diào)度處理機調(diào)度 圖3-14 RR法q=1和q=4時進程運行的情況 ABCD0ABCDq4q1進程510201525t第第3 3章章 處理機調(diào)度處理機調(diào)度 由圖3-14可以看出, 在輪轉法中, 一次輪回時間內(nèi)分給任何進程的CPU時間都不會大于一個時間片。 如果一個進程在一個時間片內(nèi)沒有做完自己的事情, 那么在時間片用完時, 該進程就被剝奪對CPU的控制權, 放回到就緒隊列的末尾。 所以, 一個需運行較長時間的進程要經(jīng)過多次輪轉才能完成工作。 表3-2給出各進程的周轉時間和帶權周轉時間項等指標。 第第3 3章章 處理機調(diào)度處理機調(diào)度 表3-2 RR調(diào)
18、度算法的性能 第第3 3章章 處理機調(diào)度處理機調(diào)度 時間片的長短通常由以下幾個因素確定: (1) 系統(tǒng)的響應時間: 在進程數(shù)目一定時, 時間片的長短直接正比于系統(tǒng)對響應時間的要求; (2) 就緒隊列進程的數(shù)目: 當系統(tǒng)要求的響應時間一定時, 時間片的大小反比于就緒隊列中的進程數(shù); (3) 進程的轉換時間: 若進程的轉換時間為t, 時間片為q, 為保證系統(tǒng)開銷不大于某個標準, 應使比值t/q不大于某一數(shù)值, 如1/10; (4) CPU運行指令速度: CPU運行速度快, 則時間片可以短些; 反之, 則應取得長些。第第3 3章章 處理機調(diào)度處理機調(diào)度 3.5.6 多級隊列法(MQ) 另一類調(diào)度算法
19、是把多個進程分成不同級別的組。 例如, 通常的劃分方式是分為前臺進程(交互)和后臺進程(批處理)。 這兩類進程的響應時間要求是完全不同的, 所以有不同的調(diào)度算法。 多級隊列(MQ, Multilevel Queue)調(diào)度算法把就緒隊列劃分成幾個單獨的隊列(如圖3-15所示)。 第第3 3章章 處理機調(diào)度處理機調(diào)度 圖3-15 多級隊列調(diào)度 系統(tǒng)進程交互進程學生批處理進程批處理進程交互編輯進程最高優(yōu)先級最低優(yōu)先級第第3 3章章 處理機調(diào)度處理機調(diào)度 下面是多級隊列調(diào)度法的一個例子, 有如下5個隊列:(1) 系統(tǒng)進程;(2) 交互進程;(3) 交互編輯進程;(4) 批處理進程;(5) 學生批處理進
20、程。第第3 3章章 處理機調(diào)度處理機調(diào)度 3.5.7 多級反饋隊列法(MFQ) 通常在多級隊列法中, 進程是永久性地放到一個隊列中的, 它們不能從一個隊列移到另一個隊列。 而多級反饋隊列法(MFQ, Multilevel Feedback Queue)允許進程在各隊列間移動, 其基本思想是把具有不同CPU工作時間這一特性的進程區(qū)分開來。 第第3 3章章 處理機調(diào)度處理機調(diào)度 圖3-16 多級反饋隊列 時間片8時間片16FCFS第第3 3章章 處理機調(diào)度處理機調(diào)度 3.5.8 多級調(diào)度綜合示例 在一個系統(tǒng)中會采用多級調(diào)度, 如作業(yè)調(diào)度和進程調(diào)度, 并且各采用不同的調(diào)度算法, 如作業(yè)調(diào)度可采用FC
21、FS、 SJF、 SRTF等算法, 而進程調(diào)度可采用最高優(yōu)先權優(yōu)先法(HPF)、 RR、 MQ等算法。例如, 在一個有兩道作業(yè)的批處理系統(tǒng)中, 作業(yè)調(diào)度采用短作業(yè)優(yōu)先的調(diào)度算法, 進程調(diào)度采用搶占式優(yōu)先級調(diào)度算法。 設有以下作業(yè)序列(如圖3-17所示)。 第第3 3章章 處理機調(diào)度處理機調(diào)度 圖3-17 作業(yè)序列示例 第第3 3章章 處理機調(diào)度處理機調(diào)度 其中, 給出的作業(yè)優(yōu)先數(shù)即為相應進程的優(yōu)先數(shù)。 其數(shù)值越小, 優(yōu)先級越高。 在這種情況下, 每個作業(yè)從到達系統(tǒng)到完成要經(jīng)歷兩級調(diào)度: 首先由作業(yè)調(diào)度程序根據(jù)其采用的算法和內(nèi)存的實際情況, 挑選作業(yè)送入內(nèi)存, 并建立相應進程; 然后由進程調(diào)度程
22、序依據(jù)自己的調(diào)度算法從就緒隊列中選出合適進程, 令其投入運行。 這4個作業(yè)(進程)的活動情況如圖3-18所示。第第3 3章章 處理機調(diào)度處理機調(diào)度 圖3-18 4個作業(yè)的活動過程 作業(yè)DCBA8:00 8:208:308:509:1010:0010:20時間搶占進入內(nèi)存第第3 3章章 處理機調(diào)度處理機調(diào)度 表3-3 4個作業(yè)活動的有關數(shù)據(jù) 第第3 3章章 處理機調(diào)度處理機調(diào)度 3.6 Linux系統(tǒng)中的進程調(diào)度系統(tǒng)中的進程調(diào)度 3.6.1 進程調(diào)度 1. 調(diào)度方式 Linux內(nèi)核的調(diào)度方式基本上采用“搶占式優(yōu)先級”方式, 即當進程在用戶模式下運行時, 不管是否自愿, 在一定條件下(如時間片用完
23、或等待I/O), 核心就可以暫時剝奪其運行而調(diào)度其他進程進入運行。 第第3 3章章 處理機調(diào)度處理機調(diào)度 Linux系統(tǒng)中進程分為實時進程和非實時進程, 它們的優(yōu)先級由不同方式確定: 實時進程的優(yōu)先級采用靜態(tài)優(yōu)先級, 即由用戶預先指定, 以后不會改變; 非實時進程的優(yōu)先級采用動態(tài)優(yōu)先級, 它由調(diào)度程序計算出來。 實時進程的靜態(tài)優(yōu)先級通常比非實時進程的動態(tài)優(yōu)先級要高。 Linux系統(tǒng)中的調(diào)度策略基本上繼承了UNIX的以優(yōu)先級為基礎的調(diào)度。 第第3 3章章 處理機調(diào)度處理機調(diào)度 2. 調(diào)度策略 Linux系統(tǒng)針對不同類別的進程提供了三種不同的調(diào)度策略, 即SCHED_FIFO、 SCHED_RR以
24、及SCHED_OTHER。 第第3 3章章 處理機調(diào)度處理機調(diào)度 3. 調(diào)度時機 核心進行進程調(diào)度的時機有以下5種情況: (1) 當前進程調(diào)用nanosleep()或者pause(), 使自己進入睡眠狀態(tài), 主動讓出一段時間CPU的使用權。 (2) 進程終止, 永久地放棄對CPU的使用。 (3) 在時鐘中斷處理程序執(zhí)行過程中, 發(fā)現(xiàn)當前進程連續(xù)運行的時間過長。第第3 3章章 處理機調(diào)度處理機調(diào)度 (4) 當喚醒一個睡眠進程時, 發(fā)現(xiàn)被喚醒的進程比當前進程更有資格運行。 (5) 一個進程通過執(zhí)行系統(tǒng)調(diào)用來改變調(diào)度策略或者降低自身的優(yōu)先權(如nice命令), 從而引起立即調(diào)度。 第第3 3章章 處
25、理機調(diào)度處理機調(diào)度 4. 調(diào)度算法 進程調(diào)度的算法應該比較簡單, 以便減少頻繁調(diào)度時的系統(tǒng)開銷。 Linux執(zhí)行進程調(diào)度時, 首先查找所有在就緒隊列中的進程, 從中選出優(yōu)先級最高且在內(nèi)存的一個進程。 第第3 3章章 處理機調(diào)度處理機調(diào)度 3.6.2 shell基本工作原理 Linux系統(tǒng)提供給用戶的最重要的系統(tǒng)程序是shell命令語言解釋程序。 它不屬于內(nèi)核部分, 而是在核心之外以用戶態(tài)方式運行。 其基本功能是解釋并執(zhí)行用戶鍵入的各種命令, 實現(xiàn)用戶與Linux核心的接口。 系統(tǒng)初啟后, 核心為每個終端用戶建立一個進程去執(zhí)行shell解釋程序。 它的執(zhí)行過程基本上按照如下步驟: 第第3 3章章
26、 處理機調(diào)度處理機調(diào)度 (1) 讀取用戶由鍵盤輸入的命令行。 (2) 分析命令, 以命令名作為文件名, 并將其他參數(shù)改造為系統(tǒng)調(diào)用execve()內(nèi)部處理所要求的形式。 (3) 終端進程調(diào)用fork()建立一個子進程。 (4) 終端進程本身用系統(tǒng)調(diào)用wait4()來等待子進程完成(如果是后臺命令, 則不等待)。 (5) 如果命令末尾有&號(后臺命令符號), 則終端進程不用執(zhí)行系統(tǒng)調(diào)用wait4(), 而是立即發(fā)提示符, 讓用戶輸入下一個命令, 轉步驟(1)。 shell基本執(zhí)行過程以及父子進程之間的關系如圖3-19所示。第第3 3章章 處理機調(diào)度處理機調(diào)度 圖3-19 shell命令執(zhí)
27、行過程 讀入命令行分離命令名,按execve的要求放置參數(shù)idfrok( )創(chuàng)建子進程id0?0父進程有“&”?無wait4()等待子進程終止發(fā)提示符$終端進程有0調(diào)度到子進程execve()更換進程映像子進程運行相應的可執(zhí)行文件,完成命令的功能exit( )終止子進程,釋放所用資源,喚醒父進程子進程中止向父進程報告子進程第第3 3章章 處理機調(diào)度處理機調(diào)度 3.6.3 系統(tǒng)初啟 1. 硬件檢測 當PC啟動時, 首先CPU進入實模式, 開始執(zhí)行ROM-BIOS起始位置的代碼。 2. 加載引導程序 整個硬盤的第一個扇區(qū)是引導扇區(qū), 加電后從這個扇區(qū)“引導”, 所以它稱為“主引導記錄塊”M
28、BR。 MBR中會有磁盤分區(qū)的數(shù)據(jù)和一段簡短的程序, 共512字節(jié)。 第第3 3章章 處理機調(diào)度處理機調(diào)度 引導扇區(qū)中的程序及其輔助程序(不包括LILO)采用匯編語言編寫, 共有三個: (1) bootsect.S, 這是Linux引導扇區(qū)的源代碼, 匯編后不能超過512字節(jié)。 (2) setup.S, 這是輔助程序的一部分。 (3) video.S, 這是另一部分輔助程序, 用于引導過程中的屏幕顯示。第第3 3章章 處理機調(diào)度處理機調(diào)度 3. 系統(tǒng)初始化 輔助程序setup為內(nèi)核映像的執(zhí)行作好了準備(包括解壓縮)以后, 就跳轉到0 x100000開始執(zhí)行內(nèi)核本身, 下面就是內(nèi)核的初始化過程。 初始化過程可以分為三個階段。 第一階段主要是CPU本身的初始化, 例如頁式映射的建立; 第二階段主要是系統(tǒng)中一些基礎設施的初始化, 例如內(nèi)存管理和進程管理的建立和初始化; 最后是對上層部分初始化, 如根設備的安裝和外部設備的初始化等。 第第3 3章章 處理機調(diào)度處理機調(diào)度 在初始化的第一階段, 首先設置內(nèi)核頁表, 并啟動頁面映射機制。 在第二階段調(diào)用函數(shù)start_kernel(), 繼續(xù)進行內(nèi)核的初始化, 甚至可以說這才真正開始內(nèi)核初始化, 這是在較高層次上的初始化。 第第3 3章章 處理機調(diào)度處理機調(diào)度 在第三階段, 內(nèi)核線程init首先鎖定內(nèi)核,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車企測試面試題目及答案
- 養(yǎng)老院特殊護理制度
- 養(yǎng)老院老人生活設施維修人員考核獎懲制度
- 養(yǎng)老院老人檔案管理制度
- 辦公室值班員職責與要求制度
- 道路旅客運輸安全生產(chǎn)制度
- 焦慮癥自測題目及答案
- 汽車行業(yè)零部件檢測
- 餐飲成本控制與菜單設計技巧
- 輔導培訓機構獎學金制度
- 2026年標準版離婚協(xié)議書(有財產(chǎn))
- 養(yǎng)老院電氣火災培訓課件
- 中國工商銀行2025年度春季校園招聘筆試歷年典型考題及考點剖析附帶答案詳解
- 對外話語體系構建的敘事話語建構課題申報書
- 中國家庭財富與消費報告2025年第三季度
- 馬年猜猜樂(馬的成語)打印版
- 精神障礙防治責任承諾書(3篇)
- 2025年擔保公司考試題庫(含答案)
- 合肥新鑫人力資源服務有限公司介紹企業(yè)發(fā)展分析報告
- 2025年金融控股公司行業(yè)分析報告及未來發(fā)展趨勢預測
- 質量控制計劃模板全行業(yè)適用
評論
0/150
提交評論