操作系統(tǒng)教程-Linux實例分析孟慶昌第3章處理機(jī)調(diào)度_第1頁
操作系統(tǒng)教程-Linux實例分析孟慶昌第3章處理機(jī)調(diào)度_第2頁
操作系統(tǒng)教程-Linux實例分析孟慶昌第3章處理機(jī)調(diào)度_第3頁
操作系統(tǒng)教程-Linux實例分析孟慶昌第3章處理機(jī)調(diào)度_第4頁
操作系統(tǒng)教程-Linux實例分析孟慶昌第3章處理機(jī)調(diào)度_第5頁
已閱讀5頁,還剩70頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第3章處理機(jī)調(diào)度第3章處理機(jī)調(diào)度調(diào)度級別作業(yè)調(diào)度進(jìn)程調(diào)度性能評價標(biāo)準(zhǔn)常用調(diào)度算法Linux系統(tǒng)中的進(jìn)程調(diào)度習(xí)題第3章處理機(jī)調(diào)度3.1調(diào)度級別一般來說,作業(yè)從進(jìn)入系統(tǒng)到最后完成,可能要經(jīng)歷三級調(diào)度:高級調(diào)度、中級調(diào)度和低級調(diào)度。高級調(diào)度:又稱作業(yè)調(diào)度。中級調(diào)度:為了使內(nèi)存中同時存放的進(jìn)程數(shù)目不至于太多,有時就需要把某些進(jìn)程從內(nèi)存中移到外

存上,以減少多道程序的數(shù)目,為此設(shè)立了中級調(diào)度。第3章處理機(jī)調(diào)度(3)低級調(diào)度:又稱進(jìn)程調(diào)度。其主要功能是根據(jù)一定的算法將CPU分派給就緒隊列中的一個進(jìn)程。第3章處理機(jī)調(diào)度3.2作業(yè)調(diào)度3.2.1作業(yè)狀態(tài)如前所述,作業(yè)從提交給系統(tǒng),直到完成任務(wù)后退出系統(tǒng)前,在整個活動過程中它會處于不同的狀態(tài)。通常,作業(yè)狀態(tài)分為四種:提交、后備、執(zhí)行和完

成,如圖3-1所示。第3章處理機(jī)調(diào)度圖3-1作業(yè)的基本狀態(tài)第3章處理機(jī)調(diào)度提交狀態(tài)——即用戶向系統(tǒng)提交一個作業(yè)時,該作業(yè)所處的狀態(tài)。后備狀態(tài)——即用戶作業(yè)經(jīng)輸入設(shè)備(如讀卡機(jī))送入輸入井(磁盤)中存放,等待進(jìn)入內(nèi)存時所處的狀況。執(zhí)行狀態(tài)——即作業(yè)分配到所需的資源,被調(diào)入內(nèi)存,并且在處理機(jī)(CPU)上執(zhí)行相應(yīng)的程序時所處的狀況。完成狀態(tài)——即作業(yè)完成了計算任務(wù),結(jié)果

由打印機(jī)輸出,最后由系統(tǒng)回收分配給它的全部資源,準(zhǔn)備退出系統(tǒng)時的作業(yè)狀況。第3章處理機(jī)調(diào)度3.2.2作業(yè)調(diào)度1.作業(yè)控制塊(JCB)在多道批處理系統(tǒng)中通常有上百個作業(yè)被收容在輸入井(磁盤)中。為了管理和調(diào)度作業(yè),系統(tǒng)為每個作業(yè)設(shè)置了一個作業(yè)控制塊(JCB),它記錄該作業(yè)的有關(guān)信息。不同系統(tǒng)的JCB的組成內(nèi)容有所區(qū)別。JCB的主要內(nèi)容如圖3-2所示。第3章處理機(jī)調(diào)度圖3-2作業(yè)控制塊第3章處理機(jī)調(diào)度2.作業(yè)調(diào)度的功能如上所述,作業(yè)調(diào)度的主要任務(wù)是完成作業(yè)從后備狀態(tài)到執(zhí)行狀態(tài)和從執(zhí)行狀態(tài)到完成狀態(tài)的轉(zhuǎn)換。具體來說,通常作業(yè)調(diào)度程序要完成以下工作(這就是作業(yè)調(diào)度的功能)。記錄系統(tǒng)中各個作業(yè)的情況。按照某種調(diào)度算法從后備作業(yè)隊列中挑選作業(yè)。為選中的作業(yè)分配內(nèi)存和外設(shè)等資源。為選中的作業(yè)建立相應(yīng)的進(jìn)程。第3章處理機(jī)調(diào)度(5)作業(yè)結(jié)束后進(jìn)行善后處理工作,如輸出必要的信息,收回該作業(yè)所占用的全部資源,撤消與該作業(yè)相關(guān)的全部進(jìn)程和該作業(yè)的JCB。第3章處理機(jī)調(diào)度3.3

進(jìn)程調(diào)度3.3.1進(jìn)程調(diào)度的功能和時機(jī)進(jìn)程只有在得到CPU之后才能真正活動起來。一

個就緒進(jìn)程怎樣獲得CPU的控制權(quán)呢?這是由進(jìn)程調(diào)度實現(xiàn)的,進(jìn)程調(diào)度也被稱為低級調(diào)度。進(jìn)程調(diào)度程序也往往被稱為低級調(diào)度程序,它完成進(jìn)程狀態(tài)從就緒態(tài)到運(yùn)行態(tài)的轉(zhuǎn)化。實際上,進(jìn)程調(diào)度程序主要是完成一臺物理的CPU轉(zhuǎn)變成多臺虛擬(或邏輯)的CPU

的工作。第3章處理機(jī)調(diào)度1.功能進(jìn)程調(diào)度的主要功能是:(1)保存現(xiàn)場。挑選進(jìn)程?;謴?fù)現(xiàn)場。第3章處理機(jī)調(diào)度2.時機(jī)在什么情況下執(zhí)行進(jìn)程調(diào)度呢?一般是在以下事件發(fā)生后作進(jìn)程調(diào)度:完成任務(wù)。等待資源。運(yùn)行到時。發(fā)現(xiàn)標(biāo)志。創(chuàng)建新進(jìn)程。第3章處理機(jī)調(diào)度圖3-3進(jìn)程調(diào)度流程第3章處理機(jī)調(diào)度3.3.2兩級調(diào)度模型作業(yè)調(diào)度和進(jìn)程調(diào)度是CPU主要的兩級調(diào)度,二者的關(guān)系可用圖3-4表示。第3章處理機(jī)調(diào)度圖3-4兩級調(diào)度簡化隊列圖第3章處理機(jī)調(diào)度3.3.3三級調(diào)度模型當(dāng)一個系統(tǒng)中三級調(diào)度同時存在時,其相互間的

關(guān)系如圖3-5所示。簡單來說,作業(yè)調(diào)度從后備作業(yè)

中選擇一批合適的作業(yè)放入內(nèi)存,并創(chuàng)建相應(yīng)的進(jìn)程;進(jìn)程調(diào)度從就緒隊列中選擇一個合適進(jìn)程,令其投入運(yùn)行;中級調(diào)度將在內(nèi)存中駐留時間較長的進(jìn)程換到磁盤上:從就緒隊列轉(zhuǎn)到就緒/掛起隊列,從阻塞隊列轉(zhuǎn)到阻塞/掛起隊列。當(dāng)內(nèi)存中有足夠的可用空間時,中級調(diào)度就從就緒/掛起隊列中選擇一些合適的進(jìn)程放入內(nèi)存,使之進(jìn)入就緒隊列。第3章處理機(jī)調(diào)度圖3-5三級調(diào)度簡化隊列第3章處理機(jī)調(diào)度3.4

性能評價標(biāo)準(zhǔn)所用算法應(yīng)保證實現(xiàn)系統(tǒng)的設(shè)計目標(biāo)。對所有作業(yè)或進(jìn)程應(yīng)公平對待。均衡使用資源,盡量使系統(tǒng)中各種資源都同時得到利用。兼顧響應(yīng)時間和資源利用率?;谙鄬?yōu)先級,但避免無限延期。系統(tǒng)開銷不應(yīng)太大。第3章處理機(jī)調(diào)度3.4.2性能評價標(biāo)準(zhǔn)CPU利用率CPU的利用率可從0~100%。吞吐量吞吐量表示單位時間內(nèi)CPU完成作業(yè)(或進(jìn)程)的數(shù)量。周轉(zhuǎn)時間從一個特定作業(yè)的觀點出發(fā),最重要的標(biāo)準(zhǔn)就是完成這個作業(yè)要花費多長時間。第3章處理機(jī)調(diào)度作業(yè)i的周轉(zhuǎn)時間Ti為其中,tsi表示作業(yè)i的提交時刻,tci表示作業(yè)i的完成時刻。系統(tǒng)中n個作業(yè)的平均周轉(zhuǎn)時間T為第3章處理機(jī)調(diào)度作業(yè)周轉(zhuǎn)時間沒有區(qū)分作業(yè)實際運(yùn)行時間長短的特性,因為長作業(yè)不可能具有比運(yùn)行時間還短的周轉(zhuǎn)時間。為了合理反映長短作業(yè)的差別,定義了另一個衡量標(biāo)準(zhǔn)——帶權(quán)周轉(zhuǎn)時間W,即W=T/R,其中T為周轉(zhuǎn)時間,R為實際運(yùn)行時間。平均帶權(quán)周轉(zhuǎn)時間W為第3章處理機(jī)調(diào)度4.就緒等待時間CPU調(diào)度算法并不真正影響作業(yè)執(zhí)行或I/O操作的時間數(shù)量。各種CPU調(diào)度算法僅影響作業(yè)(進(jìn)程)在就緒隊列中所花費的時間數(shù)量。第3章處理機(jī)調(diào)度5.響應(yīng)時間在交互式系統(tǒng)中,周轉(zhuǎn)時間不可能是最好的評價標(biāo)準(zhǔn)。一個進(jìn)程往往可以很早地就產(chǎn)生某些輸出,當(dāng)前面的結(jié)果在終端上輸出時它可以繼續(xù)計算新的結(jié)果。于是,有另一個評價標(biāo)準(zhǔn),就是從提交第一個請求到產(chǎn)生第一個響應(yīng)所用的時間,這就叫做響應(yīng)時間。第3章處理機(jī)調(diào)度3.5常用調(diào)度算法3.5.1先來先服務(wù)(FCFS)最簡單的CPU調(diào)度算法就是先來先服務(wù)(FirstCome

First

Served)方法,即按作業(yè)(進(jìn)程)到來的先后次序進(jìn)行調(diào)度。這樣,在系統(tǒng)中等待時間最長的作業(yè)就優(yōu)先被調(diào)度,而不管其所需運(yùn)行時間的長短。FCFS的性能很差??紤]下面三個作業(yè)(如圖3-6

所示),對每個作業(yè),設(shè)已知其運(yùn)行時間,我們計算這三個作業(yè)的平均周轉(zhuǎn)時間。第3章處理機(jī)調(diào)度圖3-6三個作業(yè)第3章處理機(jī)調(diào)度如果作業(yè)按1,2,3的順序幾乎同時到達(dá),那么采用FCFS方式的服務(wù)順序也是1→2→3,如圖3-7所示。圖3-7

FCFS方式第3章處理機(jī)調(diào)度作業(yè)1的周轉(zhuǎn)時間是24;作業(yè)2的周轉(zhuǎn)時間是27;作業(yè)3的周轉(zhuǎn)時間是30,平均周轉(zhuǎn)時間是(24+27+30)/3=27。然而,若作業(yè)的到達(dá)順序是2,3,1,則服務(wù)順序如圖3-8所示。第3章處理機(jī)調(diào)度圖3-8另一種作業(yè)運(yùn)行順序第3章處理機(jī)調(diào)度3.5.2短作業(yè)優(yōu)先(SJF)CPU調(diào)度的另一種方式是短作業(yè)優(yōu)先(Shortest

Job

First)算法。所謂作業(yè)的長短是指作業(yè)要求運(yùn)行時間的多少。當(dāng)CPU可供使用時,SJF算法就把CPU分給最短的作業(yè)。例如,考慮如圖3-9所示的一組作業(yè)(它們同時提交到系統(tǒng))。第3章處理機(jī)調(diào)度圖3-9同時到達(dá)的一組作業(yè)第3章處理機(jī)調(diào)度利用短作業(yè)優(yōu)先法調(diào)度,作業(yè)執(zhí)行的順序如圖3-10所示。其平均周轉(zhuǎn)時間是13。圖3-10

SJF調(diào)度法第3章處理機(jī)調(diào)度對于一組給定的作業(yè)來說,短作業(yè)優(yōu)先法給出最小的平均等待時間??梢宰C明,在這方面它是最佳的。證明的辦法是,把一個短作業(yè)移到長作業(yè)之前所減少

的短作業(yè)的等待時間大于增加的長作業(yè)等待時間。相

應(yīng)地,平均等待時間也減少了,如圖3-11所示。第3章處理機(jī)調(diào)度圖3-11

SJF有最小平均等待時間第3章處理機(jī)調(diào)度3.5.3優(yōu)先級(Priority)短作業(yè)優(yōu)先法是一般優(yōu)先級調(diào)度算法的特例。每個進(jìn)程有一個優(yōu)先級,CPU分給優(yōu)先級最高的進(jìn)程。優(yōu)先級相同的進(jìn)程按FCFS調(diào)度。短作業(yè)優(yōu)先法是簡化的優(yōu)先級算法,這里優(yōu)先級(p)反比于估計的下一次CPU工作時間(τ),p=1/τ。CPU工作時間越長,其優(yōu)先級越低。第3章處理機(jī)調(diào)度3.5.4搶占式和非搶占式算法SJF既可以為搶占式,又可以為非搶占式。當(dāng)一

個作業(yè)正在執(zhí)行時,一個新作業(yè)到來,并進(jìn)入就緒隊列,而新作業(yè)比當(dāng)前正在執(zhí)行的作業(yè)還短,在此情況下,就有兩種不同的處理方式:搶占式短作業(yè)優(yōu)先算法強(qiáng)行中止當(dāng)前正在執(zhí)行的作業(yè),調(diào)度新作業(yè)執(zhí)行;而非搶占式SJF將允許當(dāng)前作業(yè)繼續(xù)運(yùn)行,直到完成它的CPU運(yùn)行工作。搶占式短作業(yè)優(yōu)先法也叫做最短剩余時間優(yōu)先法(SRTF,Shortes

Remaining

Time

First)。作為例子,考慮下面4個作業(yè)(如圖3-12所示)。第3章處理機(jī)調(diào)度圖3-12

4個作業(yè)示例第3章處理機(jī)調(diào)度如果這些作業(yè)按上面所示的時間進(jìn)入就緒隊列并需要指定的運(yùn)行時間,那么下面的示意圖(如圖3-13所示)就說明了最短剩余時間優(yōu)先法調(diào)度的結(jié)果。第3章處理機(jī)調(diào)度圖3-13

SRTF法調(diào)度示例第3章處理機(jī)調(diào)度表3-1

SRTF調(diào)度算法的性能第3章處理機(jī)調(diào)度3.5.5輪轉(zhuǎn)法(RR)輪轉(zhuǎn)法(RR,Round

Robin)主要是為分時系統(tǒng)設(shè)計的。一個極為重要的參數(shù)就是時間片,它是一個小的時間單位,不能取得過大或者過小,通常為10~

100

ms數(shù)量級。就緒隊列可看成是一個環(huán)形隊列,

CPU調(diào)度程序輪流地把CPU分給就緒隊列中的每個進(jìn)程,時間長度都是一個時間片。第3章處理機(jī)調(diào)度圖3-14

RR法q=1和q=4時進(jìn)程運(yùn)行的情況第3章處理機(jī)調(diào)度由圖3-14可以看出,在輪轉(zhuǎn)法中,一次輪回時間內(nèi)分給任何進(jìn)程的CPU時間都不會大于一個時間片。如果一個進(jìn)程在一個時間片內(nèi)沒有做完自己的事情,那么在時間片用完時,該進(jìn)程就被剝奪對CPU的控制權(quán),放回到就緒隊列的末尾。所以,一個需運(yùn)行較長時間的進(jìn)程要經(jīng)過多次輪轉(zhuǎn)才能完成工作。表3-2給出各進(jìn)程的周轉(zhuǎn)時間和帶權(quán)周轉(zhuǎn)時間項等指標(biāo)。第3章處理機(jī)調(diào)度表3-2

RR調(diào)度算法的性能第3章處理機(jī)調(diào)度時間片的長短通常由以下幾個因素確定:系統(tǒng)的響應(yīng)時間:在進(jìn)程數(shù)目一定時,時間片的長短直接正比于系統(tǒng)對響應(yīng)時間的要求;就緒隊列進(jìn)程的數(shù)目:當(dāng)系統(tǒng)要求的響應(yīng)時

間一定時,時間片的大小反比于就緒隊列中的進(jìn)程數(shù);進(jìn)程的轉(zhuǎn)換時間:若進(jìn)程的轉(zhuǎn)換時間為t,時間片為q,為保證系統(tǒng)開銷不大于某個標(biāo)準(zhǔn),應(yīng)使比值t/q不大于某一數(shù)值,如1/10;CPU運(yùn)行指令速度:CPU運(yùn)行速度快,則時間片可以短些;反之,則應(yīng)取得長些。第3章處理機(jī)調(diào)度3.5.6多級隊列法(MQ)另一類調(diào)度算法是把多個進(jìn)程分成不同級別的組。例如,通常的劃分方式是分為前臺進(jìn)程(交互)和后臺進(jìn)程(批處理)。這兩類進(jìn)程的響應(yīng)時間要求是完全不同的,所以有不同的調(diào)度算法。多級隊列(MQ,Multilevel

Queue)調(diào)度算法把就緒隊列劃分成幾個單獨的隊列(如圖3-15所示)。第3章處理機(jī)調(diào)度圖3-15多級隊列調(diào)度第3章處理機(jī)調(diào)度下面是多級隊列調(diào)度法的一個例子,有如下5個隊列:系統(tǒng)進(jìn)程;交互進(jìn)程;交互編輯進(jìn)程;批處理進(jìn)程;學(xué)生批處理進(jìn)程。第3章處理機(jī)調(diào)度3.5.7多級反饋隊列法(MFQ)通常在多級隊列法中,進(jìn)程是永久性地放到一個隊列中的,它們不能從一個隊列移到另一個隊列。而多級反饋隊列法(MFQ,Multilevel

Feedback

Queue)允許進(jìn)程在各隊列間移動,其基本思想是把具有不同CPU工作時間這一特性的進(jìn)程區(qū)分開來。第3章處理機(jī)調(diào)度圖3-16多級反饋隊列第3章處理機(jī)調(diào)度3.5.8多級調(diào)度綜合示例在一個系統(tǒng)中會采用多級調(diào)度,如作業(yè)調(diào)度和進(jìn)程調(diào)度,并且各采用不同的調(diào)度算法,如作業(yè)調(diào)度可采用FCFS、SJF、SRTF等算法,而進(jìn)程調(diào)度可采用最高優(yōu)先權(quán)優(yōu)先法(HPF)、RR、MQ等算法。例如,在一個有兩道作業(yè)的批處理系統(tǒng)中,作業(yè)調(diào)度采用短作業(yè)優(yōu)先的調(diào)度算法,進(jìn)程調(diào)度采用搶占式優(yōu)先級調(diào)度算法。設(shè)有以下作業(yè)序列(如圖3-17所示)。第3章處理機(jī)調(diào)度圖3-17作業(yè)序列示例第3章處理機(jī)調(diào)度其中,給出的作業(yè)優(yōu)先數(shù)即為相應(yīng)進(jìn)程的優(yōu)先數(shù)。其數(shù)值越小,優(yōu)先級越高。在這種情況下,每個作業(yè)從到達(dá)系統(tǒng)到完成要經(jīng)歷兩級調(diào)度:首先由作業(yè)調(diào)度程序根據(jù)其采用的算法和內(nèi)存的實際情況,挑選作業(yè)送入內(nèi)存,并建立相應(yīng)進(jìn)程;然后由進(jìn)程調(diào)度程序依據(jù)自己的調(diào)度算法從就緒隊列中選出合適進(jìn)程,令其投入運(yùn)行。這4個作業(yè)(進(jìn)程)的活動情況如圖3-18所示。第3章處理機(jī)調(diào)度圖3-18

4個作業(yè)的活動過程第3章處理機(jī)調(diào)度表3-3

4個作業(yè)活動的有關(guān)數(shù)據(jù)第3章處理機(jī)調(diào)度3.6

Linux系統(tǒng)中的進(jìn)程調(diào)度3.6.1進(jìn)程調(diào)度1.調(diào)度方式Linux內(nèi)核的調(diào)度方式基本上采用“搶占式優(yōu)先級”方式,即當(dāng)進(jìn)程在用戶模式下運(yùn)行時,不管是否自愿,在一定條件下(如時間片用完或等待I/O),核心就可以暫時剝奪其運(yùn)行而調(diào)度其他進(jìn)程進(jìn)入運(yùn)行。第3章處理機(jī)調(diào)度Linux系統(tǒng)中進(jìn)程分為實時進(jìn)程和非實時進(jìn)程,它們的優(yōu)先級由不同方式確定:實時進(jìn)程的優(yōu)先級采用靜態(tài)優(yōu)先級,即由用戶預(yù)先指定,以后不會改變;非實時進(jìn)程的優(yōu)先級采用動態(tài)優(yōu)先級,它由調(diào)度程序計算出來。實時進(jìn)程的靜態(tài)優(yōu)先級通常比非實時進(jìn)程的動態(tài)優(yōu)先級要高。Linux系統(tǒng)中的調(diào)度策略基本上繼承了UNIX的以優(yōu)先級為基礎(chǔ)的調(diào)度。第3章處理機(jī)調(diào)度2.調(diào)度策略Linux系統(tǒng)針對不同類別的進(jìn)程提供了三種不同的調(diào)度策略,即SCHED_FIFO、SCHED_RR以及

SCHED_OTHER。第3章處理機(jī)調(diào)度3.調(diào)度時機(jī)核心進(jìn)行進(jìn)程調(diào)度的時機(jī)有以下5種情況:當(dāng)前進(jìn)程調(diào)用nanosleep()或者pause(),使自己進(jìn)入睡眠狀態(tài),主動讓出一段時間CPU的使用權(quán)。進(jìn)程終止,永久地放棄對CPU的使用。在時鐘中斷處理程序執(zhí)行過程中,發(fā)現(xiàn)當(dāng)前進(jìn)程連續(xù)運(yùn)行的時間過長。第3章處理機(jī)調(diào)度當(dāng)喚醒一個睡眠進(jìn)程時,發(fā)現(xiàn)被喚醒的進(jìn)程比當(dāng)前進(jìn)程更有資格運(yùn)行。一個進(jìn)程通過執(zhí)行系統(tǒng)調(diào)用來改變調(diào)度策略或者降低自身的優(yōu)先權(quán)(如nice命令),從而引起立即調(diào)度。第3章處理機(jī)調(diào)度4.調(diào)度算法進(jìn)程調(diào)度的算法應(yīng)該比較簡單,以便減少頻繁調(diào)度時的系統(tǒng)開銷。Linux執(zhí)行進(jìn)程調(diào)度時,首先查找所有在就緒隊列中的進(jìn)程,從中選出優(yōu)先級最高且在內(nèi)存的一個進(jìn)程。第3章處理機(jī)調(diào)度3.6.2

shell基本工作原理Linux系統(tǒng)提供給用戶的最重要的系統(tǒng)程序是shell命令語言解釋程序。它不屬于內(nèi)核部分,而是在核心之外以用戶態(tài)方式運(yùn)行。其基本功能是解釋并執(zhí)行用戶鍵入的各種命令,實現(xiàn)用戶與Linux核心的接口。系統(tǒng)初啟后,核心為每個終端用戶建立一個進(jìn)程去執(zhí)行shell解釋程序。它的執(zhí)行過程基本上按照如下步驟:第3章處理機(jī)調(diào)度讀取用戶由鍵盤輸入的命令行。分析命令,以命令名作為文件名,并將其他參數(shù)改造為系統(tǒng)調(diào)用execve()內(nèi)部處理所要求的形式。終端進(jìn)程調(diào)用fork()建立一個子進(jìn)程。終端進(jìn)程本身用系統(tǒng)調(diào)用wait4()來等待子進(jìn)程完成(如果是后臺命令,則不等待)。(5)如果命令末尾有&號(后臺命令符號),則終端進(jìn)程不用執(zhí)行系統(tǒng)調(diào)用wait4(),而是立即發(fā)提示符,讓用戶輸入下一個命令,轉(zhuǎn)步驟(1)。shell基本執(zhí)行過程以及父子進(jìn)程之間的關(guān)系如圖3-19所示。第3章處理機(jī)調(diào)度圖3-19

shell命令執(zhí)行過程第3章處理機(jī)調(diào)度3.6.3系統(tǒng)初啟硬件檢測當(dāng)PC啟動時,首先CPU進(jìn)入實模式,開始執(zhí)行ROM-BIOS起始位置的代碼。加載引導(dǎo)程序整個硬盤的第一個扇區(qū)是引導(dǎo)扇區(qū),加電后從這個扇區(qū)“引導(dǎo)”,所以它稱為“主引導(dǎo)記錄塊”MBR。MBR中會有磁盤分區(qū)的數(shù)據(jù)和一段簡短的程序,共

512字節(jié)。第3章處理機(jī)調(diào)度引導(dǎo)扇區(qū)中的程序及其輔助程序(不包括LILO)采用匯編語言編寫,共有三個:bootsect.S,這是Linux引導(dǎo)扇區(qū)的源代碼,匯編后不能超過512字節(jié)。setup.S,這是輔助程序的一部分。video.S,這是另一部分輔助程序,用于引導(dǎo)過程中的屏幕顯示。第3章處理機(jī)調(diào)度3.系統(tǒng)初始化輔助程序setup為內(nèi)核映像的執(zhí)行作好了準(zhǔn)備(包括解壓縮)以后,就跳轉(zhuǎn)到0x100000開始執(zhí)行內(nèi)核本身,下面就是內(nèi)核的初始化過程。初始化過程可以分為三個階段。第一階段主要是CPU本身的初始化,例如頁

式映射的建立;第二階段主要是系統(tǒng)中一些基礎(chǔ)設(shè)施的初始化,例如內(nèi)存管理和進(jìn)程管理的建立和初始化;最后是對上層部分初始化,如根設(shè)備的安裝和外部設(shè)備的初始化等。第3章處理機(jī)調(diào)度在初始化的第一階段,首先設(shè)置內(nèi)核頁表,并啟動頁面映射機(jī)制。在第二階段調(diào)用函數(shù)start_kernel(),繼續(xù)進(jìn)行內(nèi)核的初始化,甚至可以說這才真正開始內(nèi)核初始化,這是在較高層次上的初始化。第3章處理機(jī)調(diào)度在第三階段,內(nèi)核線程init首先鎖定內(nèi)核,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論