




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第二章 作業(yè)、進程和線程 目的與要求:理解作業(yè)、進程和線程的概念,掌握進程在系統(tǒng)中的表示方法,理解進程的創(chuàng)建及其狀態(tài)變化理解進程切換過程,理解進程調(diào)度原因及調(diào)度切換時機,掌握進程調(diào)度方式與實現(xiàn)及各種調(diào)度算法,弄清作業(yè)和進程的關(guān)系,了解線程的引入原因。,第2章 作業(yè)、進程和線程 重點與難點:進程表示與進程創(chuàng)建,狀態(tài)轉(zhuǎn)換。進程切換的實現(xiàn)與進程調(diào)度算法。,主要內(nèi)容 (1)作業(yè)的基本概念與狀態(tài) (2)進程與狀態(tài) 進程的創(chuàng)建與結(jié)束; 進程狀態(tài)變化模型; 進程掛起。 進程描述 進程定義; 進程控制結(jié)構(gòu)。,主要內(nèi)容 (3)處理機調(diào)度: 進程執(zhí)行; 進程調(diào)度; 調(diào)度算法。 進程與程序的關(guān)系 作業(yè)與進程關(guān)系 線
2、程的引入 線程與進程的關(guān)系,2.1 作業(yè)管理 一、作業(yè)的基本概念,(1)作業(yè):用戶的一次上機行為。 (2)作業(yè)步:作業(yè)的執(zhí)行步驟。 (3)作業(yè)控制語言:用于說明作業(yè)如何執(zhí)行的語言。 (4)作業(yè)控制說明書:用作業(yè)控制語言編寫的作業(yè)執(zhí)行程序。 (5)作業(yè)流:一次有一批作業(yè)進入系統(tǒng),并在操作系統(tǒng)控制下,一個接一個地進行處理,稱之為作業(yè)流。,2.1 作業(yè)管理 二、作業(yè)的基本類型,(1)批處理作業(yè):在批處理系統(tǒng)上運行的作業(yè),叫批處理作業(yè); (2)交互式作業(yè):在交互式系統(tǒng)上運行的作業(yè),稱為交互式作業(yè)。,典型的卡片作業(yè)舉例,2.1 作業(yè)管理 三、作業(yè)管理的基本功能 作業(yè)管理的基本功能是:作業(yè)調(diào)度和作業(yè)控制。
3、,(1)作業(yè)調(diào)度 在多道程序設(shè)計系統(tǒng)中,系統(tǒng)可以同時處理多個作業(yè),系統(tǒng)要在許多作業(yè)中按一定策略選取若干個作業(yè),為它們分配必要的資源,讓它們能夠同時執(zhí)行,這就是作業(yè)調(diào)度。被作業(yè)調(diào)度選中的作業(yè)在執(zhí)行時可共享系統(tǒng)資源。,2.1 作業(yè)管理 三、作業(yè)管理的基本功能,(2)作業(yè)控制 作業(yè)控制負責控制作業(yè)的輸入、執(zhí)行、輸出、故障處理等。 作業(yè)控制是用戶與操作系統(tǒng)之間的一種接口。 根據(jù)作業(yè)類型的不同,有兩種作業(yè)控制方式:脫機作業(yè)控制方式和聯(lián)機作業(yè)控制方式。,脫機作業(yè)控制方式舉例,四、作業(yè)控制過程 回顧第1章程序(作業(yè))從提交到裝入內(nèi)存的過程:,四、作業(yè)控制過程 如圖2-1所示,用戶用c語言編制了一個計算程序(
4、作業(yè)),要完成計算并且得到計算結(jié)果,一般要經(jīng)過若干步驟。,2.2 作業(yè)狀態(tài)與作業(yè)描述 2.2.1 作業(yè)狀態(tài) 通常,作業(yè)狀態(tài)分為提交、后備、執(zhí)行和完成4種。 提交狀態(tài)。用戶向系統(tǒng)提交一個作業(yè)時,該作業(yè)所處的狀況。 如將一套作業(yè)卡片交給機房管理員,由管理員將它們放到讀卡機上讀入;或者用戶通過鍵盤向機器輸入其作業(yè)。,后備狀態(tài)。 用戶作業(yè)經(jīng)輸入設(shè)備(如讀卡機)送入輸入井(磁盤)中存放,等待進入內(nèi)存時所處的狀況。此時,該作業(yè)的數(shù)據(jù)已經(jīng)轉(zhuǎn)換成內(nèi)部的機器可讀的形式,并且作業(yè)請求資源等信息也交給了操作系統(tǒng)。,執(zhí)行狀態(tài)。 作業(yè)分配到所需的資源,被調(diào)入內(nèi)存,且在處理機(CPU)上執(zhí)行相應(yīng)的程序時所處的狀況。此時,
5、該作業(yè)真正處于活動狀況。 注:當作業(yè)處于執(zhí)行狀態(tài)時是以進程的方式參與運行。(回顧第1章的處理機管理圖示),完成狀態(tài)。 作業(yè)完成計算任務(wù),結(jié)果由打印機輸出,最后由系統(tǒng)回收分配給它的全部資源,準備退出系統(tǒng)時的作業(yè)狀況。,2.2.2 作業(yè)描述 1作業(yè)控制塊JCB 為了管理和調(diào)度作業(yè),系統(tǒng)為每個作業(yè)設(shè)置了一個作業(yè)控制塊JCB,它記錄該作業(yè)的有關(guān)信息。不同系統(tǒng)的JCB的組成內(nèi)容有所區(qū)別,下圖給出了作業(yè)控制塊JCB的主要內(nèi)容。,2.3 進程的引入 進程是為多道程序并發(fā)執(zhí)行而引入的。,一、程序的順序執(zhí)行與并發(fā)執(zhí)行 1、程序順序執(zhí)行的例子 把一個程序按照cycle input, process, output
6、 end來編制。如用I表示輸入,用C表示處理或計算,用P表示輸出。則程序順序執(zhí)行可用如下前趨圖表示:,2、程序并發(fā)執(zhí)行的例子 如:把上述問題的程序分成三部分: 輸入模塊I: cycle input,send end 計算(處理)模塊C: cycle receive,process,send end 輸出模塊P: cycle receive,output end 然后使這三個程序模塊并發(fā)執(zhí)行。下圖示:程序并發(fā)執(zhí)行時的前趨圖:,在該例中,存在以下前趨關(guān)系: IiCi, IiIi+1, CiPi, CiCi+1 ,PiPi+1 而Ii+1,Ci及Pi-1是重疊的。亦即Ii+1,Ci以及Pi-1可以并
7、發(fā)執(zhí)行。,二、程序順序執(zhí)行與并發(fā)執(zhí)行的特征比較 1、順序程序活動的四個特征 (1)順序性 程序所規(guī)定的每個動作都在上一個動作結(jié)束后才開始。 (2)封閉性 程序在運行時,獨占全機資源,因而機內(nèi)各資源的狀態(tài)(除初始狀態(tài)外)只有本程序才能改變它。,(3)可再現(xiàn)性 當機器在同一數(shù)據(jù)集上重復執(zhí)行同一程序時,每次執(zhí)行結(jié)果相同。即程序的執(zhí)行結(jié)果與執(zhí)行速度無關(guān)。 (4)確定性。 程序無論從頭至尾不停地運行還是“停停走走”地執(zhí)行,都不會影響最終結(jié)果。,2、程序并發(fā)執(zhí)行時的特征 (1)程序執(zhí)行的間斷性 并發(fā)程序之間存在的相互合作形成了相互制約關(guān)系。這導致并發(fā)程序具有“執(zhí)行暫停執(zhí)行執(zhí)行”這種間斷性的活動規(guī)律。如:C
8、PU處理完C1等待I2。,進程概念的引入 程序暫停時,操作系統(tǒng)必須記住暫停執(zhí)行程序的狀態(tài)(即斷點),以便得到運行時從斷點開始繼續(xù)往下執(zhí)行。這種程序暫停執(zhí)行的狀態(tài)就叫進程。,2、程序并發(fā)執(zhí)行時的特征 (2)程序執(zhí)行失去封閉性 并發(fā)執(zhí)行的多個程序共享系統(tǒng)中的資源,因而這些資源的狀態(tài)不再僅由某一個程序所決定,而是受到并發(fā)程序的共同影響。如下圖,設(shè)備資源的狀態(tài)由三個程序決定。,2、程序并發(fā)執(zhí)行時的特征 (3)程序執(zhí)行結(jié)果的不可再現(xiàn)性 計算結(jié)果與執(zhí)行的速度有關(guān),從而失去了可再現(xiàn)性。如對共享變量的使用。例,有2個循環(huán)程序A和B,它們共享一個變量n。 程序A: n+; /* n=n+1 程序B: coutn
9、; /* 輸出n的值 n=0; /* 變量n清0 程序A和B以不同的速度運行。執(zhí)行順序可能出現(xiàn)下述3種情況(假定某時刻變量n的值為100).,OS選擇執(zhí)行程序A完成后再執(zhí)行程序B A:n+; B:coutn; B:n=0; 此時得到的n值分別為101,101,0。 OS選擇執(zhí)行程序B完成后再執(zhí)行程序A B:coutn; B:n=0; A:n+; 此時得到的n值分別為100, 0, 1,OS選擇先執(zhí)行程序B的一個語句后,再執(zhí)行程序A的一個語句,最后執(zhí)行程序B的第二個語句。 B:coutn; A:n+; B:n=0; 此時得到的n值分別為100, 101,0。 由此可見:程序A和程序B同時提交系統(tǒng)
10、并發(fā)執(zhí)行后,第二次執(zhí)行的結(jié)果可能與第一次的結(jié)果會不一致。即程序執(zhí)行失失了可再現(xiàn)性。,2、程序并發(fā)執(zhí)行時的特征 (4)資源共享 系統(tǒng)中的硬件資源(CPU,內(nèi)存和I/O設(shè)備等)和軟件資源(系統(tǒng)程序和數(shù)據(jù)集等)不再被單個用戶或程序獨占,而為多個用戶或程序共同使用。,2、程序并發(fā)執(zhí)行時的特征 (5)程序與計算不再一一對應(yīng)。 一個共享程序可被多個用戶作業(yè)調(diào)用,從個形成了多個“計算”。程序是靜態(tài)的,“計算”是動態(tài)的。,例:在多道程序設(shè)計的系統(tǒng)里,“可再入”程序可以對應(yīng)多個計算。 “可再入”程序:是指能被多個程序同時調(diào)用的程序。如編輯程序,編譯程序,匯編程序等。,上例中,一個編譯程序?qū)?yīng)了兩個“計算”,兩個
11、斷點。,如:一個編譯程序副本往往為幾個用戶同時服務(wù),該編譯程序便對應(yīng)了幾個“計算”。,2.4 進程概念 在多道程序設(shè)計中,程序的執(zhí)行出現(xiàn)“走走停停”的新狀態(tài),我們把程序執(zhí)行的每一個新狀態(tài)稱作一個進程。,進程甲,進程乙,叫什么?,叫什么?,進程理解例:“程序執(zhí)行的每一個新狀態(tài)稱作一個進程”。,日常生活中進程的例子:按菜譜炒菜,銀耳香菇棗湯 原料:銀耳15克,冬菇仔25克,大?;ㄉ⒚蹢椄?個,花生油、鹽、水各適量。制作步驟: 花生用滾水濾過,去衣,放在鍋內(nèi),注入大半鍋水,再加入蜜棗先行煎煮。 銀耳浸開,切去硬蒂,洗凈,冬菇仔浸軟,去蒂,洗凈。 花生、蜜棗燉90分鐘后,待花生酥時,加入銀耳、冬菇仔
12、,并加入小半茶匙花生油同煮。 40分鐘后,用適量鹽調(diào)味即成。 特點:色美,味甜,富有營養(yǎng)。,計算機中多個進程執(zhí)行軌跡示例。 下圖2.1顯示在內(nèi)存中有3個進程。為簡化討論,我們假設(shè)沒有用到虛擬存儲器,所有3個進程全部都存儲在內(nèi)存中。另外,還有一個分派程序(Dispatcher Program)負責把處理器分配給進程。圖2.2列舉了3個獨立進程開始的一部分指令,其中,為進程A的起始地址;為進程B的起始地址;進程C的起始地址。分別有進程A和C開始的12條指令,以及進程B的4條指令,并假設(shè)進程B的第4條指令包括I/O操作,一個CPU時間片能執(zhí)行用戶進程的6條指令。,問題1:下圖是3個進程混合執(zhí)行后的運
13、行軌跡,您能解釋這個實驗結(jié)果嗎?,問題2:從以上3個進程混合執(zhí)行軌跡,你發(fā)現(xiàn)了什么?,進程的基本特征 (1)動態(tài)性 進程是程序的執(zhí)行過程,它有生有亡,有活動有停頓,可以處于不同的狀態(tài)。 (2)并發(fā)性 多個進程的實體能存在于同一內(nèi)存中,在一段時間內(nèi)都得到運行。這樣就使得一個進程的程序與其它進程的程序并發(fā)執(zhí)行了。,(3)獨立性 進程實體是一個能獨立運行的基本單位,同時也是系統(tǒng)中獨立獲得資源和獨立調(diào)度的基本單位。凡末建立進程的程序都不能作為一個獨立的單位參加運行。 (4)異步性 這是指進程按各自獨立的、不可預知的速度向前推進,或者說,進程按異步方式運行。這一特征將導致程序執(zhí)行的不可再現(xiàn)性。,(5)結(jié)
14、構(gòu)性 從結(jié)構(gòu)上看,進程實體是由程序段、數(shù)據(jù)段及進程控制塊3部分組成,有人把這3部分統(tǒng)稱為“進程映像”,問題3:進程和程序的區(qū)別是什么?,(1)程序是靜態(tài)概念,本身可以作為一種軟件資源保存;而進程是程序的一次執(zhí)行過程,是動態(tài)概念,它有一定的生命期,是動態(tài)地產(chǎn)生和消亡的。 (2)進程是一個能獨立運行的單位,能與其他進程并發(fā)執(zhí)行,進程是作為資源申請和調(diào)度單位存在的;而通常的程序段不能作為一個獨立運行的單位。,(3)程序和進程無一一對應(yīng)關(guān)系。一方面一個程序可由多個進程共用;另一方面,一個進程在活動中又可順序地執(zhí)行若干個程序。,問題3:進程和程序的區(qū)別是什么?,2.5 進程的狀態(tài)和組成,最簡單的進程運行
15、模型 最簡單的模型是基于這樣一個事實:進程要么正在執(zhí)行,要么沒有執(zhí)行。這樣,一個進程就有兩種狀態(tài):運行(Running)和非運行(Not-running),如下圖所示。,問題1:一個進程只有這兩種狀態(tài)嗎?,一個進程的等待狀態(tài)可以分為兩種,一種是等待CPU,叫就緒態(tài),另一種是等待I/O,叫阻塞態(tài)。,進程基本狀態(tài)模型(三態(tài)模型) (1)運行態(tài)(Running) 運行狀態(tài)是指當前進程已分配到CPU,它的程序正在處理機上執(zhí)行時的狀態(tài)。處于這種狀態(tài)的進程個數(shù)不能大于CPU的數(shù)目。,(2)就緒態(tài)(Ready) 就緒狀態(tài)是指進程已具備運行條件,但因為其它進程正占用CPU,所以暫時不能運行而等待分配CPU的狀
16、態(tài)。,(3)阻塞態(tài)(Blocked) 阻塞狀態(tài)是指進程因等待某種事件發(fā)生而暫時不能運行的狀態(tài)。,進程基本狀態(tài)模型的轉(zhuǎn)換,問題2:一個進程除了這三種狀態(tài)外,還可以有其他狀態(tài)嗎?,進程狀態(tài)五態(tài)模型,進程狀態(tài)五態(tài)模型,運行狀態(tài)(Running):當一個進程正在處理機上運行時。 就緒狀態(tài)(Ready):一個進程獲得了除處理機之外的一切所需資源,一旦得到處理機即可運行. 等待狀態(tài)又稱阻塞狀態(tài)(Blocked):一個進程正在等待某一事件而暫停運行時。如等待某資源,等待輸入 /輸出完成。,創(chuàng)建狀態(tài)(NEW):一個進程正在被創(chuàng)建,還沒被轉(zhuǎn)到就緒狀態(tài)之前的狀態(tài)。 結(jié)束狀態(tài)(Exit):一個進程正在從系統(tǒng)中消失時
17、的狀態(tài),這是因為進程結(jié)束或由于其他原因所導致。,五狀態(tài)變化圖,可能的狀態(tài)變化如下。 NULLNew:一個新進程被產(chǎn)生出來執(zhí)行一個程序。 NewReady:當進程被創(chuàng)建完成并初始化后,一切就緒準備運行時,變?yōu)榫途w狀態(tài)(為了限制系統(tǒng)資源不過分分散,也可以限制從New進入Ready狀態(tài)的進程數(shù),這樣做可以使系統(tǒng)內(nèi)存、內(nèi)核用戶頁、表空間等系統(tǒng)資源集中給有限的進程使用。因此可能使進程進入創(chuàng)建狀態(tài),但很長時間不能掛入就緒隊列,直等到操作系統(tǒng)把它調(diào)入時,才可以分配好所有資源,變?yōu)榫途w狀態(tài)。),ReadyRunning:處于就緒狀態(tài)的進程被進程調(diào)度程序選中后,就分配到處理機上來運行. RunningExit:
18、當進程表示它已經(jīng)完成或者因錯流產(chǎn),當前運行進程會由操作系統(tǒng)作結(jié)束處理。,RunningReady:處于運行狀態(tài)的進程在其運行過程中,由于分配給它的處理機時間片用完而讓出處理機;在可剝奪的操作系統(tǒng)中,當有更高優(yōu)先級的進程就緒時,操作系統(tǒng)調(diào)度程序可以將正運行進程從運行狀態(tài)改變?yōu)榫途w狀態(tài),讓更高優(yōu)先級進程運行。,RuningBlocked:當進程請求某樣東西且必須等待時。例如,當進程請求操作系統(tǒng)服務(wù),而操作系統(tǒng)得不到所需的資源;或進程請求一個輸入/輸出操作,操作系統(tǒng)已啟動外設(shè),但外設(shè)的輸入/輸出尚未完成;或進程要與其他進程通信,要接收對方還未發(fā)出的信件時,進程都會被阻塞。 BlockedReady:
19、當進程要等待某事件到來時,它從阻塞狀態(tài)變到就緒狀態(tài)。,問題3: 在狀態(tài)模型中的隊列各只能有一個嗎?,多隊列模型的進一步表示:,問題4: 進程除這五種狀態(tài)外還會有其他狀態(tài)嗎?,問題5: 進程什么時候需要掛起和解掛?,當運行進程需要更大的內(nèi)存,而內(nèi)存又不足時,一些進程被掛起。 進程在掛起狀態(tài)時, 意味著進程沒有占用內(nèi)存空間。處在掛起狀態(tài)的進程映像在磁盤上。,問題6: 舉例說明日常生活中的掛起和解掛?,(1)農(nóng)宅里,白天為了方便使用把農(nóng)具、工具放在住宅外(掛起),晚上為了安全把它放在住宅內(nèi)(解掛)。 (2)家中請客吃飯,為了多擺一桌,把一些暫時用不上的物品放到雜物房里(掛起),等客人散去又把這些物品
20、取回擺放原處(解掛)。,問題:計算機中進程掛起的原因?,2.5.2 進程描述 一、進程需要描述。 不同的進程有不同的狀態(tài)、占用不同的資源。 例:在一個多道程序運行環(huán)境內(nèi),有多個進程(P1,Pn)生成并存放在虛存中。在執(zhí)行過程中,每個進程必須擁有一定的資源,包括處理器、I/O設(shè)備、內(nèi)存等。其中,Pl正在運行,P1至少有一部分在內(nèi)存中,并控制了兩個I/O設(shè)備;P2也在內(nèi)存中,但由于等待一個I/O設(shè)備而阻塞;Pn被交換出內(nèi)存處于掛起狀態(tài)。如下圖:,二、如何描述進程?進程表 幾乎所有操作系統(tǒng)都會有4類表來保存信息,每一個表都有一定的數(shù)據(jù)結(jié)構(gòu)。,內(nèi)存表。用來跟蹤主(實)存和輔(虛擬)存。 I/O表。用來
21、管理I/O設(shè)備和通道。 文件表。提供當前存在文件中的信息。 進程表。用來管理進程。,1.進程映像即進程的具體物理組成。由進程映像來描述。,2.進程控制塊的組成 (1)進程控制塊內(nèi)容。操作系統(tǒng)管理進程所需的信息類型及信息都收集在進程控制塊(PCB)中。 第1類 進程標識,第2類 進程狀態(tài)信息,第3類 進程控制信息,(2)一種進程映象結(jié)構(gòu)。(用戶數(shù)據(jù)、用戶程序、系統(tǒng)棧、進程控制塊),2.5.3 進程控制塊的組織 為了對進程進行有效管理,要將系統(tǒng)中的進程PCB按照一定的方式組織起來。主要的方式有: (1)線性方式 系統(tǒng)中規(guī)定進程的最大數(shù)目。 (2)鏈接方式 按照各進程的不同狀態(tài)分別將它們的PCB放在
22、不同的隊列中。 (3)索引方式 利用索引表記載不同狀態(tài)進程的PCB地址。,2.6 進程控制與管理 2.6.1 操作系統(tǒng)內(nèi)核 進程的管理與控制由操作系統(tǒng)內(nèi)核負責的。 內(nèi)核-操作系統(tǒng)將一些與硬件緊密相關(guān)的軟件模塊放在緊靠硬件的層次上,并使這部分程序常駐內(nèi)存,以提高操作系統(tǒng)的運行效率。這部分程序稱為操作系統(tǒng)內(nèi)核。,2.6 進程控制與管理 操作系統(tǒng)內(nèi)核負責控制和管理進程的產(chǎn)生、執(zhí)行和消亡的整個過程,這主要通過對它們的控制操作來實現(xiàn)。,2.6 進程控制與管理 2.6.2 核心態(tài)和用戶態(tài) 因為操作系統(tǒng)程序要管理硬件需要執(zhí)行很多與硬件相關(guān)的指令(特權(quán)指令)。為了讓系統(tǒng)程序能執(zhí)行特權(quán)指令,用戶程序只能執(zhí)行非特
23、權(quán)指令。通常將處理機的執(zhí)行狀態(tài)分為核心態(tài)和用戶態(tài)。,2.6 進程控制與管理 核心態(tài)-又稱系統(tǒng)態(tài)。具有較高特權(quán),能執(zhí)行一切指令,能訪問所有的寄存器及內(nèi)存所有的區(qū)域。操作系統(tǒng)內(nèi)核通常運行在系統(tǒng)態(tài)。 用戶態(tài)-具有較低特權(quán)的執(zhí)行狀態(tài)。在這種狀態(tài)下,只能執(zhí)行規(guī)定的指令,訪問指定的寄存器和內(nèi)存指定的區(qū)域。通常用戶程序在用戶態(tài)下運行。,2.6 進程控制與管理 2.6.3 操作系統(tǒng)內(nèi)核的功能 (1)時鐘管理。 (2)中斷處理。 (3)實現(xiàn)(保護)原語操作。 原語-由若干條指令構(gòu)成,是用于完成一定功能的過程?;蛘撸涸诓僮飨到y(tǒng)中提供的某種特定操作,是通過一段不可分割的或者不能中斷的程序?qū)崿F(xiàn)其功能,這種特定的操作我
24、們稱之為原語。,2.6 進程控制與管理 操作系統(tǒng)內(nèi)核都是由原語實現(xiàn)的。 內(nèi)核中的原語操作完成操作系統(tǒng)中的一些基本功能,如:進程控制、進程同步及常用的進程通信手段等。 進程控制操作有:創(chuàng)建進程、撤消進程、掛起進程、恢復進程、改變進程優(yōu)先級、封鎖進程、喚醒進程、調(diào)度進程等。這些都是原語。下一節(jié)介紹幾個常用的進程原語。,2.6.4 進程創(chuàng)建的原因 4種事件會導致新進程產(chǎn)生,進程創(chuàng)建(產(chǎn)生)處理過程大致為: 1)接收進程運行現(xiàn)場初始值,初始優(yōu)先級,初始執(zhí)行程序描述,以及其他資源等傳來的參數(shù)。 2)請求分配進程描述塊的PCB空間,得到一個內(nèi)部數(shù)字進程標識。 3)用從父進程傳來的參數(shù)初始化PCB表。 4)
25、產(chǎn)生描述進程空間的數(shù)據(jù)結(jié)構(gòu),用初始執(zhí)行文件初始化進程空間,建立程序段,數(shù)據(jù)段、棧段等。,5)用進程運行現(xiàn)場初始值,設(shè)置處 理機現(xiàn)場保護區(qū)。造一個進程運行棧幀。 6)將進程置成就緒狀態(tài)。 7)置好父進程等關(guān)系域。 8)將PCB表掛入就緒隊列,等待時 機被調(diào)度運行。,2.6.5.進程終止 1、進程終止原因,2.進程終止大致處理過程如下: 1)將進程狀態(tài)改成結(jié)束狀態(tài); 2)關(guān)閉所有打開文件和設(shè)備; 3)釋放用戶進程程序文件映射和其他資源; 4)進行相關(guān)信息統(tǒng)計;,5)清理其相關(guān)進程的鏈接關(guān)系,如在UNIX 中,將該結(jié)束進程的所有子進程鏈接到1號進程,作為1號進程的子進程,并通知父進程自己已結(jié)束 6)
26、釋放進程映像空間(對于虛存來說,如交換區(qū)、所占物理頁,將頁表所占空間返還系統(tǒng)); 7)釋放進程控制塊(PCB); 8)調(diào)用進程調(diào)度與切換程序。, 2.6.6 進程阻塞 正在運行的進程通過調(diào)用阻塞原語(如UNIX/Linux系統(tǒng)的sleep),主動地把自己阻塞。由阻塞原語根據(jù)該進程等待的事件將該進程放置不同的等待隊列。, 2.6.7 進程喚醒 當阻塞的進程所等待的事件出現(xiàn)時,則由另外的、與阻塞進程相關(guān)的進程調(diào)用喚醒原語(如UNIX/Linux系統(tǒng)的wakeup),將等待該事件的進程喚醒。將其放入就緒隊列。,2.7 線程 進程的兩個基本屬性: (1)進程是一個擁有資源的獨立單元 (2)進程是一個被
27、處理機獨立調(diào)度的單元,引入線程完成進程的第二個屬性,進程只完成第一個屬性。 線程稱輕型進程LWP(Light-weight Process) 傳統(tǒng)進程叫重型進程HWP(Heavy-weight Process),進程與線程在日常生活中的類比: (1)如果把一本書當作一個進程(傳統(tǒng)進程),現(xiàn)在把此書一分為二,把這本書的目錄就稱作線程。目錄只有這本書的大致內(nèi)容(即線程),而每一章的詳述則稱進程。,進程與線程在日常生活中的類比: (2)如果把一篇論文稱作一個進程(傳統(tǒng)進程),現(xiàn)在把論文一分為二,把內(nèi)容摘要(只含有此論文的簡介)稱作線程,而把論文詳述稱作進程。,進程與線程在日常生活中的類比: (3)到
28、銀行排隊辦儲蓄業(yè)務(wù)。如果把一個人排隊稱作進程(傳統(tǒng)進程),現(xiàn)在是用號排隊(線程),等待叫到本人的號碼后再到柜臺辦理業(yè)務(wù)。,2.7.1 線程概念 線程(Thread):線程是進程內(nèi)的一個相對獨立的、可獨立調(diào)度和指派的執(zhí)行單元。,1、線程的組成 每個線程有一個thread結(jié)構(gòu),即線程控制塊,用于保存自己私有的信息,主要由以下4個基本部分組成: (1)一個唯一的線程標識。 (2)描述處理器工作的一組寄存器 (3)每個thread結(jié)構(gòu)有兩個棧指針。 (4)一個私有存儲區(qū)。,2、線程的狀態(tài) 與進程相似,線程也有若干種狀態(tài),如運行狀態(tài)、阻塞狀態(tài),就緒狀態(tài)和終止狀態(tài)。,3、線程的管理 與進程管理類似,有: 線程創(chuàng)建(thread_create) 線程終止(thread_exit) 線程等待(thread_wait) 線程讓權(quán)(thread_y
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 診斷測評與BOPPPS教學模式的融合在高中英語閱讀教學中的行動研究
- 茶具設(shè)計手繪技法解析
- 腎病綜合征常規(guī)護理要點
- 孕期飲食健康管理
- 大班心理健康:笑是良藥
- 領(lǐng)航職業(yè)英語2課件下載
- 惡性腫瘤病人的護理教學查房
- 2025年上海市中考招生考試數(shù)學真題試卷(真題+答案)
- 采樣消毒培訓
- 舞蹈教育考研講解
- 在線處方管理制度
- 中學食堂內(nèi)控制度
- 宿舍管理考試試題及答案
- T∕CITS 146-2024 尿液有形成分名稱與結(jié)果報告規(guī)范化指南
- 農(nóng)藥經(jīng)營考試題及答案
- 標前合作合同范本
- 2025年初級鋼筋工(五級)技能認定理論考試指導題庫(含答案)
- 2025 年小學勞動技術(shù)新課程標準(2022 版)標準試題
- 國家開放大學漢語言文學本科《古代詩歌散文專題》期末紙質(zhì)考試第四大題論述題庫2025春期版
- 2024秋新科粵版化學九年級上冊教學課件 2.2 構(gòu)成物質(zhì)的微觀粒子 第4課時 相對原子質(zhì)量 離子的形成
- 魅力溝通技巧課件
評論
0/150
提交評論