![網(wǎng)絡(luò)程序設(shè)計(jì)3_第1頁](http://file4.renrendoc.com/view/f3452b4cca048cdea57e87d016427693/f3452b4cca048cdea57e87d0164276931.gif)
![網(wǎng)絡(luò)程序設(shè)計(jì)3_第2頁](http://file4.renrendoc.com/view/f3452b4cca048cdea57e87d016427693/f3452b4cca048cdea57e87d0164276932.gif)
![網(wǎng)絡(luò)程序設(shè)計(jì)3_第3頁](http://file4.renrendoc.com/view/f3452b4cca048cdea57e87d016427693/f3452b4cca048cdea57e87d0164276933.gif)
![網(wǎng)絡(luò)程序設(shè)計(jì)3_第4頁](http://file4.renrendoc.com/view/f3452b4cca048cdea57e87d016427693/f3452b4cca048cdea57e87d0164276934.gif)
![網(wǎng)絡(luò)程序設(shè)計(jì)3_第5頁](http://file4.renrendoc.com/view/f3452b4cca048cdea57e87d016427693/f3452b4cca048cdea57e87d0164276935.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基礎(chǔ)知識(shí)第三章1本章教學(xué)目標(biāo)了解線程的基本概念熟悉進(jìn)程描述、進(jìn)程通信和進(jìn)程死鎖掌握進(jìn)程控制、進(jìn)程同步與互斥、進(jìn)程調(diào)度 2本章主要內(nèi)容處理器管理概述進(jìn)程描述進(jìn)程控制線程的基本概念進(jìn)程同步與互斥進(jìn)程通信進(jìn)程調(diào)度進(jìn)程死鎖3處理器管理概述處理器管理的功能程序的執(zhí)行4處理器管理的功能處理器管理的主要任務(wù)是對(duì)處理器進(jìn)行分配,并對(duì)其運(yùn)行進(jìn)行有效地控制和管理。 處理器管理的主要功能進(jìn)程控制 原語進(jìn)程同步 互斥,同步進(jìn)程通信 進(jìn)程調(diào)度 5程序的執(zhí)行程序的順序執(zhí)行程序的并發(fā)執(zhí)行6程序的順序執(zhí)行概念:程序在執(zhí)行時(shí),必須按某種先后次序逐個(gè)執(zhí)行操作,只有當(dāng)前一個(gè)操作執(zhí)行完后,才能執(zhí)行后一個(gè)操作。 特征:順序性封閉性可再
2、現(xiàn)性7示意圖用圓結(jié)點(diǎn)表示各程序段的操作,其中I表示輸入,C表示計(jì)算,P表示打印,用箭頭指明操作間的先后次序。計(jì)算機(jī)處理完一道程序后再處理下一道程序。描述了二道程序在單CPU系統(tǒng)中先后被順序執(zhí)行。 8程序的并發(fā)執(zhí)行概念:是指在一個(gè)時(shí)間段內(nèi)執(zhí)行多個(gè)程序。 特征: 間斷性 失去封閉性不可再現(xiàn)性程序并發(fā)執(zhí)行的判斷方法:Bernstein條件利用前趨圖9程序并發(fā)執(zhí)行示例下圖描述了多道程序均包括輸入、計(jì)算、打印三部分操作時(shí)并發(fā)處理的過程。10進(jìn)程描述進(jìn)程的概念進(jìn)程的狀態(tài)進(jìn)程的掛起狀態(tài) 11進(jìn)程的概念進(jìn)程的定義有許多人從不同角度對(duì)“進(jìn)程”下過各式各樣的定義。我國對(duì)進(jìn)程概念的定義,多數(shù)人認(rèn)為“進(jìn)程是一個(gè)具有一
3、定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng)”(1978年全國操作系統(tǒng)會(huì)議)。所以一個(gè)程序在不同數(shù)據(jù)集合上運(yùn)行,乃至一個(gè)程序在同樣數(shù)據(jù)集合上的多次運(yùn)行都是不同的進(jìn)程。 進(jìn)程的特征動(dòng)態(tài)性 并發(fā)性 獨(dú)立性 異步性 結(jié)構(gòu)性 12進(jìn)程的狀態(tài)進(jìn)程的三種基本狀態(tài) 進(jìn)程的其它兩種狀態(tài) 進(jìn)程狀態(tài)間的轉(zhuǎn)換 13進(jìn)程的三種基本狀態(tài) 就緒狀態(tài) 當(dāng)進(jìn)程以分配到除處理器(CPU)以外的所有必要資源后,只要再獲得處理器就可以立即執(zhí)行,這時(shí)進(jìn)程的狀態(tài)稱為就緒狀態(tài)。 執(zhí)行狀態(tài) 處于就緒狀態(tài)的進(jìn)程一旦獲得了處理器,就可以運(yùn)行,進(jìn)程狀態(tài)也就處于執(zhí)行狀態(tài)。 阻塞狀態(tài) 正在執(zhí)行的進(jìn)程因?yàn)榘l(fā)生某些事件(如請(qǐng)求輸入/輸出、申請(qǐng)額外空間
4、等)而暫停運(yùn)行,這種受阻暫停的狀態(tài)稱為阻塞狀態(tài),也可以稱為等待狀態(tài)。 14進(jìn)程的其它兩種狀態(tài) 新狀態(tài) 當(dāng)一個(gè)新進(jìn)程剛剛建立,還未將其放入就緒隊(duì)列時(shí)的狀態(tài),稱為新狀態(tài)。 終止?fàn)顟B(tài)當(dāng)一個(gè)進(jìn)程已經(jīng)正常結(jié)束或異常結(jié)束,操作系統(tǒng)已將其從系統(tǒng)隊(duì)列中移出,但尚未撤消,這時(shí)稱為終止?fàn)顟B(tài)。 15進(jìn)程狀態(tài)間的轉(zhuǎn)換等待的事件已發(fā)生等待某事件發(fā)生時(shí)間片用完進(jìn)程被調(diào)度程序選中就緒狀態(tài)等待狀態(tài)運(yùn)行狀態(tài)16進(jìn)程控制進(jìn)程控制塊PCB 進(jìn)程的創(chuàng)建與撤消 進(jìn)程的阻塞與喚醒 17進(jìn)程控制塊PCB 進(jìn)程控制塊的作用進(jìn)程控制塊的內(nèi)容進(jìn)程控制塊的組織方式進(jìn)程控制原語18進(jìn)程控制塊的作用概念進(jìn)程控制塊是進(jìn)程實(shí)體的重要組成部分,是操作系統(tǒng)中
5、最重要的記錄型數(shù)據(jù),在進(jìn)程控制塊PCB(Program Control Block)中記錄了操作系統(tǒng)所需要的、用于描述進(jìn)程情況及控制進(jìn)程運(yùn)行所需要的全部信息 作用通過PCB,使得原來不能獨(dú)立運(yùn)行的程序(數(shù)據(jù)),成為一個(gè)可以獨(dú)立運(yùn)行的基本單位,一個(gè)能夠并發(fā)執(zhí)行的進(jìn)程。進(jìn)程控制塊是進(jìn)程存在的唯一標(biāo)志。 19進(jìn)程控制塊的內(nèi)容進(jìn)程標(biāo)識(shí)信息 進(jìn)程標(biāo)識(shí)符用于標(biāo)識(shí)一個(gè)進(jìn)程,一個(gè)進(jìn)程通有外部標(biāo)識(shí)符和內(nèi)部標(biāo)識(shí)符兩種 說明信息 說明信息是有關(guān)進(jìn)程狀態(tài)等一些與進(jìn)程調(diào)度有關(guān)的信息。 現(xiàn)場信息 現(xiàn)場信息是用于保留進(jìn)程存放在處理器中的各種信息,主要由處理器內(nèi)的各個(gè)寄存器的內(nèi)容組成。 管理信息 管理信息包括進(jìn)程資源、控制機(jī)
6、制等一些進(jìn)程執(zhí)行所需要的信息。 20進(jìn)程控制塊的組織方式鏈接方式把具有相同狀態(tài)的PCB,用其中的鏈接指針鏈接成隊(duì)列。如圖所示。 21索引方式 系統(tǒng)根據(jù)所有進(jìn)程的狀態(tài),建立幾張索引表。在每個(gè)索引表的表目中,記錄著具有相同狀態(tài)的各個(gè)PCB在表中的地址。如圖2-8所示。22進(jìn)程控制原語原語的概念原語是指具有特定功能的不可被中斷的過程。它主要用于實(shí)現(xiàn)操作系統(tǒng)的一些專門控制操作。原語的分類創(chuàng)建原語:用于為一個(gè)進(jìn)程分配工作區(qū)和建立PCB,置該進(jìn)程為就緒狀態(tài)。 撤消原語:用于一個(gè)進(jìn)程工作完后,收回它的工作區(qū)和PCB。 阻塞原語:用于進(jìn)程在運(yùn)行過程中發(fā)生等待事件時(shí),把進(jìn)程的狀態(tài)改為等待態(tài)。 喚醒原語 :用于當(dāng)
7、進(jìn)程等待的事件結(jié)束時(shí),把進(jìn)程的狀態(tài)改為就緒態(tài)。 23進(jìn)程的創(chuàng)建 引起進(jìn)程創(chuàng)建的事件 用戶登錄 作業(yè)調(diào)度 提供服務(wù) 應(yīng)用請(qǐng)求 進(jìn)程創(chuàng)建的過程 為新進(jìn)程分配唯一的進(jìn)程標(biāo)識(shí)符,并從PCB隊(duì)列中申請(qǐng)一個(gè)空閑PCB。為新進(jìn)程的程序和數(shù)據(jù),以及用戶棧分配相應(yīng)的主存空間及其它必要分配資源。初始化PCB中的相應(yīng)信息,如標(biāo)識(shí)信息、處理器信息、進(jìn)程控制信息等。如果就緒隊(duì)列可以接納新進(jìn)程,便將新進(jìn)程加入到就緒隊(duì)列中。 24進(jìn)程的撤消引起進(jìn)程撤消的事件 進(jìn)程正常結(jié)束 在進(jìn)程運(yùn)行期間,由于出現(xiàn)某些錯(cuò)誤和故障而使得進(jìn)程被迫中止 進(jìn)程應(yīng)外界的請(qǐng)求而中止運(yùn)行 進(jìn)程撤消的過程 根據(jù)被終止進(jìn)程的標(biāo)識(shí)符,從PCB集合中檢索該進(jìn)程的
8、PCB,讀出進(jìn)程狀態(tài)。若該進(jìn)程處于執(zhí)行狀態(tài),則立即終止該進(jìn)程的執(zhí)行。若該進(jìn)程有子孫進(jìn)程,還要將其子孫進(jìn)程終止。將該進(jìn)程所占用的資源回收,歸還給其父進(jìn)程或操作系統(tǒng)。將被終止進(jìn)程的PCB從所在隊(duì)列中移出,并撤消該進(jìn)程的PCB。 25進(jìn)程的阻塞引起進(jìn)程阻塞的事件 請(qǐng)求系統(tǒng)服務(wù) 啟動(dòng)某種操作 新數(shù)據(jù)尚未到達(dá) 無新工作可做 進(jìn)程阻塞的過程 立即停止執(zhí)行該進(jìn)程。修改進(jìn)程控制塊中的相關(guān)信息。把進(jìn)程控制塊中的運(yùn)行狀態(tài)由“執(zhí)行”狀態(tài)改為“阻塞”狀態(tài),并填入等待的原因,以及進(jìn)程的各種狀態(tài)信息。把進(jìn)程控制塊插入到阻塞隊(duì)列。根據(jù)阻塞隊(duì)列的組織方式,把阻塞進(jìn)程的進(jìn)程控制塊插入到阻塞隊(duì)列中。轉(zhuǎn)調(diào)度程序重新調(diào)度,運(yùn)行就緒隊(duì)
9、列中的其他進(jìn)程。 26進(jìn)程的喚醒引起進(jìn)程喚醒的事件 請(qǐng)求系統(tǒng)服務(wù)得到滿足 啟動(dòng)某種操作完成 新數(shù)據(jù)已經(jīng)到達(dá) 有新工作可做 進(jìn)程喚醒的過程 從阻塞隊(duì)列中找到該進(jìn)程。修改該進(jìn)程控制塊的相關(guān)內(nèi)容。把阻塞狀態(tài)改為就緒狀態(tài),刪除等待原因等等。把進(jìn)程控制塊插入到就緒隊(duì)列。按照就緒隊(duì)列的組織方式,把被喚醒的進(jìn)程的進(jìn)程控制塊插入到就緒隊(duì)列中。 27線程的基本概念1線程的概念線程是進(jìn)程中的一個(gè)實(shí)體,是被系統(tǒng)獨(dú)立調(diào)度和執(zhí)行的基本單位。 線程與進(jìn)程的比較 調(diào)度單位不同 并發(fā)形式不同擁有資源 不同28使用線程的例子使用線程的例子是WWW瀏覽器,許多Web頁面都包含有多幅很小的圖像。對(duì)于Web頁面上的每一幅小圖像,瀏覽
10、器都必須與頁面的連接點(diǎn)建立一條單獨(dú)的連接以索取圖像。這樣就有大量的時(shí)間花費(fèi)在建立和釋放這些連接上。通過在瀏覽器內(nèi)設(shè)立多個(gè)線程,便可以同時(shí)請(qǐng)求傳輸多幅圖像。29線程的基本概念2線程的類型 系統(tǒng)級(jí)線程:是依賴于系統(tǒng)控制的,即無論是用戶進(jìn)程中的線程,還是系統(tǒng)進(jìn)程中的線程,它們的創(chuàng)建、撤消、切換都是由系統(tǒng)控制實(shí)現(xiàn)的。 用戶級(jí)線程 :是由用戶控制,對(duì)于用戶級(jí)線程的創(chuàng)建、撤消、切換,都與系統(tǒng)控制無關(guān),完全由用戶自己管理。30超線程 超線程的概念 超線程技術(shù)就是利用特殊的硬件指令,在一顆實(shí)體處理器中放入兩個(gè)邏輯處理單元,從而模擬成兩個(gè)工作環(huán)境,讓單個(gè)處理器都能使用線程級(jí)并行計(jì)算,同時(shí)處理多項(xiàng)任務(wù),提升處理器
11、資源的使用率。 超線程的工作 超線程處理器被視為兩個(gè)分離的邏輯處理器,應(yīng)用程序不須修正就可使用這兩個(gè)邏輯處理器。每個(gè)邏輯處理器都可獨(dú)立響應(yīng)中斷。第一個(gè)邏輯處理器可追蹤一個(gè)軟件線程,而第二個(gè)邏輯處理器則可同時(shí)追蹤另一個(gè)軟件線程。由于兩個(gè)線程共同使用同樣的執(zhí)行資源,因此不會(huì)產(chǎn)生一個(gè)線程執(zhí)行的同時(shí),另一個(gè)線程閑置的狀況。 31進(jìn)程同步與互斥進(jìn)程的并發(fā)性 進(jìn)程的同步與互斥 利用PV操作實(shí)現(xiàn)互斥與同步 管程的基本概念 32進(jìn)程的并發(fā)性概念在并發(fā)執(zhí)行的系統(tǒng)中,若干個(gè)作業(yè)可以同時(shí)執(zhí)行,而每個(gè)作業(yè)又需要有多個(gè)進(jìn)程協(xié)作完成。在這些同時(shí)存在的進(jìn)程間具有并發(fā)性 并發(fā)進(jìn)程之間的關(guān)系無關(guān)關(guān)系 :這些進(jìn)程間彼此毫無關(guān)系,
12、互不影響 相關(guān)關(guān)系 :這些進(jìn)程間彼此往往相關(guān),互相影響,要進(jìn)行合理的控制和協(xié)調(diào)才能正確執(zhí)行 資源共享關(guān)系 相互合作關(guān)系 33進(jìn)程的同步與互斥 進(jìn)程同步與互斥的概念進(jìn)程同步機(jī)制應(yīng)遵循的原則 利用鎖機(jī)制實(shí)現(xiàn)同步 34進(jìn)程同步與互斥的概念臨界資源 在系統(tǒng)中有許多硬件或軟件資源,在一段時(shí)間內(nèi)只允許一個(gè)進(jìn)程訪問或使用,這種資源稱為臨界資源。 臨界區(qū) 每個(gè)進(jìn)程中訪問臨界資源的那段代碼稱為臨界區(qū) 進(jìn)程同步進(jìn)程同步是指多個(gè)相關(guān)進(jìn)程在執(zhí)行次序上的協(xié)調(diào),這些進(jìn)程相互合作,在一些關(guān)鍵點(diǎn)上需要相互等待或相互通信。 進(jìn)程互斥進(jìn)程互斥是指當(dāng)一個(gè)進(jìn)程進(jìn)入臨界區(qū)使用臨界資源時(shí),另一個(gè)進(jìn)程必須等待,當(dāng)占用臨界資源的進(jìn)程退出臨界
13、區(qū)后,另一個(gè)進(jìn)程才被允許使用臨界資源。 35進(jìn)程同步與進(jìn)程互斥間的關(guān)系(1)相同點(diǎn)進(jìn)程的同步與進(jìn)程的互斥都涉及到并發(fā)進(jìn)程共享資源的問題,進(jìn)程的互斥實(shí)際上是進(jìn)程同步的一種特殊情況。(2)不同點(diǎn)進(jìn)程互斥是進(jìn)程間競爭共享資源的使用權(quán),這種競爭沒有固定的必然關(guān)系,哪個(gè)進(jìn)程競爭到使用權(quán)就歸哪個(gè)進(jìn)程使用,直到不需要使用時(shí)再歸還使用權(quán)。進(jìn)程同步涉及共享資源的并發(fā)進(jìn)程間有一種必然的依賴關(guān)系,當(dāng)進(jìn)程必須同步時(shí),即使無進(jìn)程在使用共享資源,那么尚未得到同步消息的進(jìn)程也不能去使用這個(gè)資源。 36進(jìn)程同步機(jī)制應(yīng)遵循的原則 空閑讓進(jìn) 忙則等待 有限等待 讓權(quán)等待 37利用鎖機(jī)制實(shí)現(xiàn)同步鎖的概念 在同步機(jī)構(gòu)中,常用一個(gè)變量
14、來代表臨界資源的狀態(tài),并稱它為鎖。通常用“0”表示資源可用,用“1”表示資源已被占用。 鎖的操作 關(guān)鎖操作 解鎖操作 38利用PV操作實(shí)現(xiàn)互斥與同步 整型信號(hào)量的概念 信號(hào)量的操作 利用PV操作實(shí)現(xiàn)互斥利用PV操作實(shí)現(xiàn)同步利用PV操作實(shí)現(xiàn)進(jìn)程的同步加互斥 39整型信號(hào)量的概念概念信號(hào)量就是一種特殊變量,它用來表示系統(tǒng)中資源的使用情況。而整型信號(hào)量就是一個(gè)整型變量。說明:當(dāng)其值大于“0”時(shí),表示系統(tǒng)中對(duì)應(yīng)可用資源的數(shù)目;當(dāng)其值小于“0”時(shí),其絕對(duì)值表示因該類資源而被阻塞的進(jìn)程的數(shù)目;當(dāng)其值等于“0”時(shí),表示系統(tǒng)中對(duì)應(yīng)資源已經(jīng)都被占用,并且沒有因該類資源而被阻塞的進(jìn)程。 40信號(hào)量的操作(1)P操
15、作:記為P(S),描述為: P(S) S=S-1; if (S0) W(S); (2)V操作:記為V(S),描述為: V(S) S=S+1; if (S=0) R(S); 41.記錄型信號(hào)量機(jī)制 信號(hào)量類型定義記錄型信號(hào)量是一個(gè)記錄型的數(shù)據(jù)結(jié)構(gòu),包含兩個(gè)數(shù)據(jù)項(xiàng),一個(gè)是計(jì)數(shù)值域,另一個(gè)是等待該信號(hào)量的進(jìn)程隊(duì)列首指針域。記錄型信號(hào)量結(jié)構(gòu)可以描述如下:typedef struct semaphore int value; PCB *P; ;42()、()操作原語定義除了給信號(hào)量S初始化外,僅能通過P(S)和V(S)原語操作訪問。信號(hào)量相應(yīng)的P(S)和V(S)操作原語描述如下:void p(S)str
16、uct semaphore S;S.value=S.value -1;信號(hào)量計(jì)數(shù)值減,表示申請(qǐng)資源一個(gè)單位if (S.value0 ) block(S.P);若信號(hào)量計(jì)數(shù)值,表示無資源, 則阻塞等待。否則調(diào)用進(jìn)程繼續(xù)void v(S)struct semaphore S;S.value=S.value+1; ;信號(hào)量計(jì)數(shù)值加,表示釋放資源一個(gè)單位if (S.value=0) wakeup(S.P);若信號(hào)量計(jì)數(shù)值,表示進(jìn)程在等待該資源,喚醒一個(gè)等待者43進(jìn)程通信概念進(jìn)程通信是指進(jìn)程間的信息交換。 類型共享存儲(chǔ)器系統(tǒng)消息傳遞系統(tǒng)管道通信系統(tǒng) 44共享存儲(chǔ)器系統(tǒng)概念在共享存儲(chǔ)器系統(tǒng)中,相互通信的進(jìn)
17、程共享某些數(shù)據(jù)結(jié)構(gòu)或共享存儲(chǔ)區(qū),進(jìn)程之間能夠通過它們進(jìn)行通信。 方式共享數(shù)據(jù)結(jié)構(gòu)方式 相互通信的諸進(jìn)程公用某些數(shù)據(jù)結(jié)構(gòu),并通過這些數(shù)據(jù)交換信息。 共享存儲(chǔ)區(qū)方式 是在存儲(chǔ)器中劃出一塊共享存儲(chǔ)區(qū),相互通信的諸進(jìn)程可以通過對(duì)共享存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行讀或?qū)憗韺?shí)現(xiàn)通信。 45消息傳遞系統(tǒng)概念進(jìn)程間的數(shù)據(jù)交換以消息為單位,用戶直接利用系統(tǒng)中提供的一組通信命令(原語)進(jìn)行通信。 方式直接通信方式發(fā)送進(jìn)程使用發(fā)送原語直接將消息發(fā)送給接收進(jìn)程,并將它掛在接收進(jìn)程的消息緩沖隊(duì)列上,接收進(jìn)程使用接收原語從消息緩沖隊(duì)列中取出消息。 間接通信方式 發(fā)送進(jìn)程使用發(fā)送原語直接將消息發(fā)送到某種中間實(shí)體中,接收進(jìn)程使用接收原語
18、從該中間實(shí)體中取出消息。 46管道通信系統(tǒng)管道管道是指連接讀進(jìn)程和寫進(jìn)程,以實(shí)現(xiàn)它們之間通信的共享文件。 管道通信系統(tǒng)向管道提供輸入的發(fā)送進(jìn)程(寫進(jìn)程),以字符流形式將大量的數(shù)據(jù)送入管道,而接受管道輸出的接收進(jìn)程(讀進(jìn)程),可以從管道中接收數(shù)據(jù)。 47進(jìn)程調(diào)度進(jìn)程調(diào)度的類型選擇進(jìn)程調(diào)度算法的原則 常用的進(jìn)程調(diào)度算法 48進(jìn)程調(diào)度的類型高級(jí)調(diào)度 低級(jí)調(diào)度 中級(jí)調(diào)度 49高級(jí)調(diào)度基本原理高級(jí)調(diào)度又稱為作業(yè)調(diào)度或長程調(diào)度,用于決定把外存上處于后備隊(duì)列中的哪些作業(yè)調(diào)入主存,并為它們創(chuàng)建進(jìn)程、分配必要的資源,然后將新創(chuàng)建的進(jìn)程排入就緒隊(duì)列,準(zhǔn)備執(zhí)行。 需要解決的問題 一是接納多少個(gè)作業(yè)。 二是接納哪些作
19、業(yè)。 50低級(jí)調(diào)度基本原理低級(jí)調(diào)度通常又稱為進(jìn)程調(diào)度或短程調(diào)度。它決定主存中的就緒隊(duì)列上的哪個(gè)進(jìn)程(單處理器系統(tǒng))將獲得處理器,然后把處理器分配給該進(jìn)程,使其執(zhí)行。 方式非搶占方式 在某個(gè)進(jìn)程正在占用處理器執(zhí)行時(shí),不允許其它任何進(jìn)程搶占處理器。 搶占方式 把處理器分配給某個(gè)進(jìn)程后,在該進(jìn)程尚未終止或阻塞時(shí),允許系統(tǒng)調(diào)度程序根據(jù)某種原則,暫停正在執(zhí)行的進(jìn)程,回收已經(jīng)分配的處理器,并將處理器重新分配給其它更為緊急的進(jìn)程。 51中級(jí)調(diào)度基本原理系統(tǒng)將那些暫時(shí)不能運(yùn)行的進(jìn)程從主存調(diào)到外存(仍然保持進(jìn)程狀態(tài))上的特定區(qū)域,這些在外存存放的進(jìn)程所處的狀態(tài)稱為就緒駐外狀態(tài)或掛起狀態(tài)。當(dāng)這些進(jìn)程的運(yùn)行條件具備
20、,且主存又有空閑時(shí),在中級(jí)調(diào)度的控制下,再將處于外存上的那些重新具備運(yùn)行條件的就緒駐外進(jìn)程調(diào)入主存,并將其狀態(tài)修改為就緒狀態(tài),放入就緒隊(duì)列,等待進(jìn)程調(diào)度。 目的是為了進(jìn)一步提高主存的利用率和系統(tǒng)的吞吐量。52選擇進(jìn)程調(diào)度算法的原則 面向用戶的原則 周轉(zhuǎn)時(shí)間短 響應(yīng)時(shí)間快 截止時(shí)間有保證 優(yōu)先權(quán)原則 面向系統(tǒng)的原則 系統(tǒng)吞吐量高 處理器利用率好 各類資源的平衡利用 53常用的進(jìn)程調(diào)度算法先來先服務(wù)調(diào)度算法 短進(jìn)程優(yōu)先調(diào)度算法 時(shí)間片輪轉(zhuǎn)調(diào)度算法 優(yōu)先數(shù)調(diào)度算法 響應(yīng)比高者優(yōu)先調(diào)度算法 多級(jí)隊(duì)列調(diào)度算法 54先來先服務(wù)調(diào)度算法 原理每次調(diào)度是從就緒隊(duì)列中,選擇一個(gè)最先進(jìn)入就緒隊(duì)列的進(jìn)程,把處理器分
21、配給該進(jìn)程,使之得到執(zhí)行。該進(jìn)程一旦占有了處理器,它就一直運(yùn)行下去,直到該進(jìn)程完成或因發(fā)生事件而阻塞,才退出處理器。 特點(diǎn)利于長進(jìn)程,而不利于短進(jìn)程。 55短進(jìn)程優(yōu)先調(diào)度算法 原理它是從就緒隊(duì)列中選擇一個(gè)估計(jì)運(yùn)行時(shí)間最短的進(jìn)程,將處理器分配給該進(jìn)程,使之占有處理器并執(zhí)行,直到該進(jìn)程完成或因發(fā)生事件而阻塞,然后退出處理器,再重新調(diào)度。 特點(diǎn)照顧到了系統(tǒng)中占大部分的短進(jìn)程,有效地降低了進(jìn)程的平均等待時(shí)間,提高了系統(tǒng)的吞吐量,但對(duì)長進(jìn)程不利。 56時(shí)間片輪轉(zhuǎn)調(diào)度算法 原理系統(tǒng)將所有的就緒進(jìn)程按進(jìn)入就緒隊(duì)列的先后次序排列。每次調(diào)度時(shí)把CPU分配給隊(duì)首進(jìn)程,讓其執(zhí)行一個(gè)時(shí)間片,當(dāng)時(shí)間片用完,由計(jì)時(shí)器發(fā)出
22、時(shí)鐘中斷,調(diào)度程序則暫停該進(jìn)程的執(zhí)行,使其退出處理器,并將它送到就緒隊(duì)列的末尾,等待下一輪調(diào)度執(zhí)行。 特點(diǎn)為了保證人機(jī)交互的及時(shí)性,系統(tǒng)使每個(gè)進(jìn)程依次按時(shí)間片方式輪流地執(zhí)行 。57優(yōu)先數(shù)調(diào)度算法 原理它是從就緒隊(duì)列中選擇一個(gè)優(yōu)先權(quán)最高的進(jìn)程,讓其獲得處理器并執(zhí)行。 方式非搶占式優(yōu)先數(shù)調(diào)度算法 系統(tǒng)一旦把處理器分配給就緒隊(duì)列中優(yōu)先權(quán)最高的進(jìn)程后,該進(jìn)程就占有處理器一直運(yùn)行下去,直到該進(jìn)程完成或因發(fā)生事件而阻塞,才退出處理器。 搶占式優(yōu)先數(shù)調(diào)度算法 系統(tǒng)同樣把處理器分配給當(dāng)前就緒隊(duì)列中優(yōu)先權(quán)最高的進(jìn)程,使之執(zhí)行。但在其執(zhí)行期間,仍然會(huì)不斷的有新的就緒進(jìn)程進(jìn)入就緒隊(duì)列,如果出現(xiàn)某個(gè)進(jìn)程,其優(yōu)先權(quán)比當(dāng)
23、前正在執(zhí)行的進(jìn)程的優(yōu)先權(quán)還高時(shí),進(jìn)程調(diào)度程序就會(huì)立即暫停當(dāng)前進(jìn)程的執(zhí)行,而將處理器收回,并將處理器分配給新出現(xiàn)的優(yōu)先權(quán)更高的進(jìn)程,讓其執(zhí)行。 58響應(yīng)比高者優(yōu)先調(diào)度算法 原理它是從就緒隊(duì)列中選擇一個(gè)響應(yīng)比最高的進(jìn)程,讓其獲得處理器執(zhí)行,直到該進(jìn)程完成或因等待事件而退出處理器為止。 特點(diǎn)既照顧了短進(jìn)程,又考慮了進(jìn)程到達(dá)的先后次序,也不會(huì)使長進(jìn)程長期得不到服務(wù),因此是一個(gè)比較全面考慮的算法,但每次進(jìn)行調(diào)度時(shí),都需要對(duì)各個(gè)進(jìn)程計(jì)算響應(yīng)比。所以系統(tǒng)開銷很大,比較復(fù)雜。 59多級(jí)隊(duì)列調(diào)度算法 原理是根據(jù)進(jìn)程的類型或性質(zhì)的不同,將就緒進(jìn)程分為若干個(gè)獨(dú)立隊(duì)列,不同類型或性質(zhì)的進(jìn)程固定地分屬于一個(gè)隊(duì)列,每個(gè)隊(duì)列可以采用適合的調(diào)度算法,不同的隊(duì)列可使用不同的調(diào)度算法。 特點(diǎn)同時(shí)具有多種操作方式 的進(jìn)程調(diào)度60進(jìn)程死鎖死鎖的基本概念 死鎖的預(yù)防
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 助產(chǎn)師復(fù)習(xí)試題含答案
- 2025年度智能電網(wǎng)規(guī)劃設(shè)計(jì)合同
- 醫(yī)保協(xié)議合同范本
- 農(nóng)村硅藻泥采購合同范本
- 儀器 借用合同范本
- cng纏繞氣瓶合同范本
- 2024年半導(dǎo)體分立器件項(xiàng)目評(píng)估報(bào)告
- 北京辦公裝修合同范本
- 樓地面找平工程合同范本
- 會(huì)議室使用合同范本
- 杭州市淳安縣國有企業(yè)招聘筆試真題2024
- 2024政府采購評(píng)審專家考試真題庫及答案
- 2025年道路貨運(yùn)駕駛員從業(yè)資格證模擬考試題
- 數(shù)學(xué)-安徽省皖南八校2025屆高三上學(xué)期12月第二次大聯(lián)考試題和答案
- 退市新規(guī)解讀-上海證券交易所、大同證券
- 融資報(bào)告范文模板
- 桃李面包盈利能力探析案例11000字
- GB/Z 30966.71-2024風(fēng)能發(fā)電系統(tǒng)風(fēng)力發(fā)電場監(jiān)控系統(tǒng)通信第71部分:配置描述語言
- 腦梗死的護(hù)理查房
- 2025高考數(shù)學(xué)專項(xiàng)復(fù)習(xí):概率與統(tǒng)計(jì)的綜合應(yīng)用(十八大題型)含答案
- 2024-2030年中國紫蘇市場深度局勢分析及未來5發(fā)展趨勢報(bào)告
評(píng)論
0/150
提交評(píng)論