亚洲一级免费看,特黄特色大片免费观看播放器,777毛片,久久久久国产一区二区三区四区,欧美三级一区二区,国产精品一区二区久久久久,人人澡人人草

操作系統(tǒng)

操作系統(tǒng)讀書工程報(bào)告

時(shí)間:2025-04-20 06:19:44 操作系統(tǒng) 我要投稿
  • 相關(guān)推薦

操作系統(tǒng)讀書工程報(bào)告范文

  篇一:操作系統(tǒng)讀書工程報(bào)告

操作系統(tǒng)讀書工程報(bào)告范文

  一、基本理論闡述

  1.進(jìn)程

  定義:進(jìn)程是一個(gè)具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng)。它是操作系統(tǒng)動(dòng)態(tài)執(zhí)行的基本單元,在傳統(tǒng)的操作系統(tǒng)中,進(jìn)程既是基本的分配單元,也是基本的執(zhí)行單元。

  基本介紹:多道程序在執(zhí)行時(shí),需要共享系統(tǒng)資源,從而導(dǎo)致各程序在執(zhí)行過(guò)程中出現(xiàn)相互制約的關(guān)系,程序的執(zhí)行表現(xiàn)出間斷性的特征。這些特征都是在程序的執(zhí)行過(guò)程中發(fā)生的,是動(dòng)態(tài)的過(guò)程,而傳統(tǒng)的程序本身是一組指令的集合,是一個(gè)靜態(tài)的概念,無(wú)法描述程序在內(nèi)存中的執(zhí)行情況,即我們無(wú)法從程序的字面上看出它何時(shí)執(zhí)行,何時(shí)停頓,也無(wú)法看出它與其它執(zhí)行程序的關(guān)系,因此,程序這個(gè)靜態(tài)概念已不能如實(shí)反映程序并發(fā)執(zhí)行過(guò)程的特征。為了深刻描述程序動(dòng)態(tài)執(zhí)行過(guò)程的性質(zhì),人們引入“進(jìn)程(Process)”概念。

  進(jìn)程的概念:第一,進(jìn)程是一個(gè)實(shí)體。每一個(gè)進(jìn)程都有它自己的地址空間,一般情況下,包括文本區(qū)域(text region)、數(shù)據(jù)區(qū)域(data region)和堆棧(stack region)。文本區(qū)域存儲(chǔ)處理器執(zhí)行的代碼;數(shù)據(jù)區(qū)域存儲(chǔ)變量和進(jìn)程執(zhí)行期間使用的動(dòng)態(tài)分配的內(nèi)存;堆棧區(qū)域存儲(chǔ)著活動(dòng)過(guò)程調(diào)用的指令和本地變量。第二,進(jìn)程是一個(gè)“執(zhí)行中的程序”。程序是一個(gè)沒(méi)有生命的實(shí)體,只有處理器賦予程序生命時(shí),它才能成為一個(gè)活動(dòng)的實(shí)體,我們稱其為進(jìn)程。

  主要特征:

  動(dòng)態(tài)性:進(jìn)程的實(shí)質(zhì)是程序在多道程序系統(tǒng)中的一次執(zhí)行過(guò)程,進(jìn)程是動(dòng)態(tài)產(chǎn)生,動(dòng)態(tài)消亡的。

  并發(fā)性:任何進(jìn)程都可以同其他進(jìn)程一起并發(fā)執(zhí)行

  獨(dú)立性:進(jìn)程是一個(gè)能獨(dú)立運(yùn)行的基本單位,同時(shí)也是系統(tǒng)分配資源和調(diào)度的獨(dú)立單位;

  異步性:由于進(jìn)程間的相互制約,使進(jìn)程具有執(zhí)行的間斷性,即進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn)

  結(jié)構(gòu)特征:進(jìn)程由程序、數(shù)據(jù)和進(jìn)程控制塊三部分組成。

  狀態(tài)分類:

  1)就緒狀態(tài)(Ready):進(jìn)程已獲得除處理器外的所需資源,等待分配處理器資源;只要分配了處理器進(jìn)程就可執(zhí)行。就緒進(jìn)程可以按多個(gè)優(yōu)先級(jí)來(lái)劃分隊(duì)列。例如,當(dāng)一個(gè)進(jìn)程由于時(shí)間片用完而進(jìn)入就緒狀態(tài)時(shí),排入低優(yōu)先級(jí)隊(duì)列;當(dāng)進(jìn)程由I/O操作完成而進(jìn)入就緒狀態(tài)時(shí),排入高優(yōu)先級(jí)隊(duì)列。

  2)運(yùn)行狀態(tài)(Running):進(jìn)程占用處理器資源;處于此狀態(tài)的進(jìn)程的數(shù)目小于等于處理器的數(shù)目。在沒(méi)有其他進(jìn)程可以執(zhí)行時(shí)(如所有進(jìn)程都在阻塞狀態(tài)),通常會(huì)自動(dòng)執(zhí)行系統(tǒng)的空閑進(jìn)程。

  3)阻塞狀態(tài)(Blocked):由于進(jìn)程等待某種條件(如I/O操作或進(jìn)程同步),在條件滿足之前無(wú)法繼續(xù)執(zhí)行。該事件發(fā)生前即使把處理機(jī)分配給該進(jìn)程,也無(wú)法運(yùn)行。

  進(jìn)程控制的基本事件:

  進(jìn)程的創(chuàng)建

  1.引起創(chuàng)建進(jìn)程的事件

  2在多道程序環(huán)境中,只有(作為)進(jìn)程(時(shí))才能在系統(tǒng)中運(yùn)行。因此,為使程序能運(yùn)行,就必須為它創(chuàng)建進(jìn)程。導(dǎo)致一個(gè)進(jìn)程去創(chuàng)建另一個(gè)進(jìn)程的典型事件,可以有以下四類:

  1) 用戶登錄。

  在分時(shí)系統(tǒng)中,用戶在終端鍵入登錄命令后,如果是合法用戶,系統(tǒng)將為該終端建立一個(gè)進(jìn)程,并把它插入到就緒隊(duì)列中。

  2) 作業(yè)調(diào)度。

  在批處理系統(tǒng)中,當(dāng)作業(yè)調(diào)度程序按照一定的算法調(diào)度到某作業(yè)時(shí),便將該作業(yè)裝入到內(nèi)存,為它分配必要的資源,并立即為它創(chuàng)建進(jìn)程,再插入到就緒隊(duì)列中。

  3) 提供服務(wù)。

  當(dāng)運(yùn)行中的用戶程序提出某種請(qǐng)求后,系統(tǒng)將專門創(chuàng)建一個(gè)進(jìn)程來(lái)提供用戶所需要的服務(wù),例如,用戶程序要求進(jìn)行文件打印,操作系統(tǒng)將為它創(chuàng)建一個(gè)打印進(jìn)程,這樣,不僅可以使打印進(jìn)程與該用戶進(jìn)程并發(fā)執(zhí)行,而且還便于計(jì)算出為完成打印任務(wù)所花費(fèi)的時(shí)間。

  4) 應(yīng)用請(qǐng)求。

  在上述三種情況中,都是由系統(tǒng)內(nèi)核為它創(chuàng)建一個(gè)新進(jìn)程,而這一類事件則是基于應(yīng)用進(jìn)程的需求,由它創(chuàng)建一個(gè)新的進(jìn)程,以便使新進(jìn)程以并發(fā)的運(yùn)行方式完成特定任務(wù)。

  2.進(jìn)程的創(chuàng)建過(guò)程

  一旦操作系統(tǒng)發(fā)現(xiàn)了要求創(chuàng)建新進(jìn)程的事件后,便調(diào)用進(jìn)程創(chuàng)建原語(yǔ)Creat()按下述步驟創(chuàng)建一個(gè)新進(jìn)程。

  1) 申請(qǐng)空白PCB。為新進(jìn)程申請(qǐng)獲得唯一的數(shù)字標(biāo)識(shí)符,并從PCB集合中索取一個(gè)空白PCB。

  2) 為新進(jìn)程分配資源。為新進(jìn)程的程序和數(shù)據(jù)以及用戶棧分配必要的內(nèi)存空間。顯然,此時(shí)操作系統(tǒng)必須知道新進(jìn)程所需要的內(nèi)存大小。

  3) 初始化進(jìn)程控制塊。PCB的初始化包括:①初始化標(biāo)識(shí)信息。將系統(tǒng)分配的標(biāo)識(shí)符和父進(jìn)程標(biāo)識(shí)符,填入新的PCB中;②初始化處理機(jī)狀態(tài)信息。使程序計(jì)數(shù)器指向程序的入口地址,使棧指針指向棧頂;③初始化處理機(jī)控制信息。將進(jìn)程的狀態(tài)設(shè)置為就緒狀態(tài)或靜止就緒狀態(tài),對(duì)于優(yōu)先級(jí),通常是將它設(shè)置為最低優(yōu)先級(jí),除非用戶以顯式的方式提出高優(yōu)先級(jí)要求。

  4) 將新進(jìn)程插入就緒隊(duì)列。如果進(jìn)程就緒隊(duì)列能夠接納新進(jìn)程,便將新進(jìn)程插入到就緒隊(duì)列中。

  進(jìn)程終止

  1.引起進(jìn)程終止的事件

  1)正常結(jié)束。

  在任何計(jì)算機(jī)系統(tǒng)中,都應(yīng)該有一個(gè)表示進(jìn)程已經(jīng)運(yùn)行完成的指示。例如,在批處理系統(tǒng)中,通常在程序的最后安排一條Hold指令或終止的系統(tǒng)調(diào)用。當(dāng)程序運(yùn)行到Hold指令時(shí),將產(chǎn)生一個(gè)中斷,去通知OS本進(jìn)程已經(jīng)完成。

  2)異常結(jié)束。

  在進(jìn)程運(yùn)行期間,由于出現(xiàn)某些錯(cuò)誤和故障而迫使進(jìn)程終止。這類異常事件很多,常見(jiàn)的有:越界錯(cuò)誤,保護(hù)錯(cuò),非法指令,特權(quán)指令錯(cuò),運(yùn)行超時(shí),等待超時(shí),算術(shù)運(yùn)算錯(cuò),I/O故障。

  3)外界干預(yù)。

  外界干預(yù)并非指在本進(jìn)程運(yùn)行中出現(xiàn)了異常事件,而是指進(jìn)程應(yīng)外界的請(qǐng)求而終止運(yùn)行。這些干預(yù)有:操作員或操作系統(tǒng)干預(yù),父進(jìn)程請(qǐng)求,父進(jìn)程終止。

  2. 進(jìn)程的終止過(guò)程

  如果系統(tǒng)發(fā)生了上述要求終止進(jìn)程的某事件后,OS便調(diào)用進(jìn)程終止原語(yǔ),按下述過(guò)程去終止指定的進(jìn)程。

  1)根據(jù)被終止進(jìn)程的標(biāo)識(shí)符,從PCB集合中檢索出該進(jìn)程的PCB,從中讀出該進(jìn)程狀態(tài)。

  2)若被終止進(jìn)程正處于執(zhí)行狀態(tài),應(yīng)立即終止該進(jìn)程的執(zhí)行,并置調(diào)度標(biāo)志為真。用于指示該進(jìn)程被終止后應(yīng)重新進(jìn)行調(diào)度。

  3)若該進(jìn)程還有子孫進(jìn)程,還應(yīng)將其所有子孫進(jìn)程予以終止,以防他們成為不可控的進(jìn)程。

  4)將被終止的進(jìn)程所擁有的全部資源,或者歸還給其父進(jìn)程,或者歸還給系統(tǒng)。

  5)將被終止進(jìn)程(它的PCB)從所在隊(duì)列(或鏈表)中移出,等待其它程序來(lái)搜集信息。

  進(jìn)程的阻塞和喚醒

  1.引起進(jìn)程阻塞和喚醒的事件

  1)請(qǐng)求系統(tǒng)服務(wù)。

  當(dāng)正在執(zhí)行的進(jìn)程請(qǐng)求操作系統(tǒng)提供服務(wù)時(shí),由于某種原因,操作系統(tǒng)并不立即滿足該進(jìn)程的要求時(shí),該進(jìn)程只能轉(zhuǎn)變?yōu)樽枞麪顟B(tài)來(lái)等待,一旦要求得到滿足后,進(jìn)程被喚醒。

  2)啟動(dòng)某種操作。

  當(dāng)進(jìn)程啟動(dòng)某種操作后,如果該進(jìn)程必須在該操作完成之后才能繼續(xù)執(zhí)行,則必須先使該進(jìn)程阻塞,以等待該操作完成,該操作完成后,將該進(jìn)程喚醒。

  3)新數(shù)據(jù)尚未到達(dá)。

  對(duì)于相互合作的進(jìn)程,如果其中一個(gè)進(jìn)程需要先獲得另一(合作)進(jìn)程提供的數(shù)據(jù)才能運(yùn)行以對(duì)數(shù)據(jù)進(jìn)行處理,則是要其所需數(shù)據(jù)尚未到達(dá),該進(jìn)程只有(等待)阻塞,等到數(shù)據(jù)到達(dá)后,該進(jìn)程被喚醒。

  4)無(wú)新工作可做。

  系統(tǒng)往往設(shè)置一些具有某特定功能的系統(tǒng)進(jìn)程,每當(dāng)這種進(jìn)程完成任務(wù)后,便把自己阻塞起來(lái)以等待新任務(wù)到來(lái),新任務(wù)到達(dá)后,該進(jìn)程被喚醒。

  2.進(jìn)程阻塞過(guò)程

  正在執(zhí)行的進(jìn)程,當(dāng)發(fā)現(xiàn)上述某事件后,由于無(wú)法繼續(xù)執(zhí)行,于是進(jìn)程便通過(guò)調(diào)用阻塞原語(yǔ)block把自己阻塞?梢(jiàn),進(jìn)程的阻塞是進(jìn)程自身的一種主動(dòng)行為。進(jìn)入block過(guò)程后,由于此時(shí)該進(jìn)程還處于執(zhí)行狀態(tài),所以應(yīng)先立即停止執(zhí)行,把進(jìn)程控制塊中的現(xiàn)行狀態(tài)由執(zhí)行改為阻塞,并將PCB插入阻塞隊(duì)列。如果系統(tǒng)中設(shè)置了因不同事件而阻塞的多個(gè)阻塞隊(duì)列,則應(yīng)將本進(jìn)程插入到具有相同事件的阻塞(等待)隊(duì)列。最后,轉(zhuǎn)調(diào)度程序進(jìn)行重新調(diào)度,將處理機(jī)分配給另一就緒進(jìn)程,并進(jìn)行切換,亦即,保留被阻塞進(jìn)程的處理機(jī)狀態(tài)(在PCB中),再按新進(jìn)程的PCB中的處理機(jī)狀態(tài)設(shè)置CPU環(huán)境。

  3. 進(jìn)程喚醒過(guò)程

  當(dāng)被阻塞的進(jìn)程所期待的事件出現(xiàn)時(shí),如I/O完成或者其所期待的數(shù)據(jù)已經(jīng)到達(dá),則由有關(guān)進(jìn)程(比如,用完并釋放了該I/O設(shè)備的進(jìn)程)調(diào)用喚醒原語(yǔ)wakeup(),將等待該事件的進(jìn)程喚醒。喚醒原語(yǔ)執(zhí)行的過(guò)程是:首先把被阻塞的進(jìn)程從等待該事件的阻塞隊(duì)列中移出,將其PCB中的現(xiàn)行狀態(tài)由阻塞改為就緒,然后再將該P(yáng)CB插入到就緒隊(duì)列中。

  二、當(dāng)前理論或?qū)嵺`應(yīng)用現(xiàn)狀

  1.線程、SMP 和微內(nèi)核

  在許多操作系統(tǒng)中,傳統(tǒng)的進(jìn)程概念被分為兩部分:一部分負(fù)責(zé)管理資源所有權(quán);另一部分負(fù)責(zé)指令流的執(zhí)行。一個(gè)單獨(dú)的進(jìn)程可包含多個(gè)線程。使用多線程的組織方法對(duì)程序的結(jié)構(gòu)化和性能方面都有很大的幫助。SMP是一個(gè)擁有多處理器的計(jì)算機(jī)系統(tǒng),其中的每一個(gè)處理器都可以執(zhí)行所有應(yīng)用程序和系統(tǒng)代碼。SMP的組織方法增強(qiáng)了系統(tǒng)的性能和可靠性。SMP通常和多線程機(jī)制一起使用,即使沒(méi)有多線程機(jī)制也能很大幅度的提高系統(tǒng)性能。微內(nèi)核是操作系統(tǒng)為了減少運(yùn)行在內(nèi)核模式的代碼量的一種設(shè)計(jì)方式,并且分析了這種方法的優(yōu)點(diǎn)。

  2.并發(fā):互斥和同步

  相交進(jìn)程之間的關(guān)系主要有兩種:同步與互斥。所謂互斥是指散步在不同進(jìn)程之間的若干程序片斷,當(dāng)某個(gè)進(jìn)程運(yùn)行其中一個(gè)程序片段時(shí),其它進(jìn)程就不能運(yùn)行它們之中的任一程序片段,只能等到該進(jìn)程運(yùn)行完這個(gè)程序片段后才可以運(yùn)行。 

  篇二:操作系統(tǒng)讀書工程報(bào)告

  一、 基本理論闡述

  在操作系統(tǒng)中調(diào)度實(shí)質(zhì)上是一種資源的分配,因而調(diào)度算法是指:根據(jù)系統(tǒng)的資源分配策略所規(guī)定的資源分配算法。對(duì)于不同的操作系統(tǒng)和系統(tǒng)目標(biāo),通常采用不同的調(diào)度算法,例如,在批處理系統(tǒng)中,為了照顧為數(shù)眾多的短作業(yè),應(yīng)采用短作業(yè)優(yōu)先的調(diào)度算法;又如在分時(shí)系統(tǒng)中,為了保證系統(tǒng)具有合理的相應(yīng)時(shí)間,應(yīng)采用輪轉(zhuǎn)法進(jìn)行調(diào)度。目前存在的多種調(diào)度算法中,有的使用于作業(yè)調(diào)度,也有的適用于進(jìn)程調(diào)度;但也有些算法既可適用于作業(yè)調(diào)度又適用于進(jìn)程調(diào)度。

  1.先來(lái)先服務(wù)(FCFS)

  先來(lái)先服務(wù)(FCFS, First Come First Serve)是最簡(jiǎn)單的調(diào)度算法,按先后順序進(jìn)行調(diào)度。

  1.1 FCFS算法

  按照作業(yè)提交或進(jìn)程變?yōu)榫途w狀態(tài)的先后次序,分派CPU; 當(dāng)前作業(yè)或進(jìn)程占用CPU,直到執(zhí)行完或阻塞,才出讓CPU(非搶占方式)。 在作業(yè)或進(jìn)程喚醒后(如I/O完成),并不立即恢復(fù)執(zhí)行,通常等到當(dāng)前作業(yè)或進(jìn)程出讓CPU。最簡(jiǎn)單的算法。

  1.2 FCFS的特點(diǎn)

  比較有利于長(zhǎng)作業(yè),而不利于短作業(yè)。 有利于CPU繁忙的作業(yè),而不利于I/O繁忙的作業(yè)。

  2.短作業(yè)優(yōu)先

  短作業(yè)優(yōu)先(SJF, Shortest Job First)又稱為“短進(jìn)程優(yōu)先”SPN(Shortest Process Next);這是對(duì)FCFS算法的改進(jìn),其目標(biāo)是減少平均周轉(zhuǎn)時(shí)間。

  對(duì)預(yù)計(jì)執(zhí)行時(shí)間短的作業(yè)(進(jìn)程)優(yōu)先分派處理機(jī)。通常后來(lái)的短作業(yè)不搶先正在執(zhí)行的作業(yè)。

  2.1 SJF的特點(diǎn)

  (1) 優(yōu)點(diǎn):

  比FCFS改善平均周轉(zhuǎn)時(shí)間和平均帶權(quán)周轉(zhuǎn)時(shí)間,縮短作業(yè)的等待時(shí)間;

  提高系統(tǒng)的吞吐量;

  (2) 缺點(diǎn):

  對(duì)長(zhǎng)作業(yè)非常不利,可能長(zhǎng)時(shí)間得不到執(zhí)行; 未能依據(jù)作業(yè)的緊迫程度來(lái)劃分執(zhí)行的優(yōu)先級(jí);

  難以準(zhǔn)確估計(jì)作業(yè)(進(jìn)程)的執(zhí)行時(shí)間,從而影響調(diào)度性能。

  2.2 SJF的變型

  “最短剩余時(shí)間優(yōu)先”SRT(Shortest Remaining Time)(允許比當(dāng)前進(jìn)程剩余時(shí)間更短的進(jìn)程來(lái)?yè)屨迹?/p>

  “最高響應(yīng)比優(yōu)先”HRRN(Highest Response Ratio Next)(響應(yīng)比R = (等待時(shí)間 + 要求執(zhí)行時(shí)間) / 要求執(zhí)行時(shí)間,是FCFS和SJF的折衷)

  3優(yōu)先級(jí)法

  優(yōu)先級(jí)算法(Priority Sched uling)是多級(jí)隊(duì)列算法的改進(jìn),平衡各進(jìn)程對(duì)響應(yīng)時(shí)間的要求。適用于作業(yè)調(diào)度和進(jìn)程調(diào)度,可分成搶先式和非搶先式。 3.1靜態(tài)優(yōu)先級(jí)

  作業(yè)調(diào)度中的靜態(tài)優(yōu)先級(jí)大多按以下原則確定:

  由用戶自己根據(jù)作業(yè)的緊急程度輸入一個(gè)適當(dāng)?shù)膬?yōu)先級(jí)。 由系統(tǒng)或操作員根據(jù)作業(yè)類型指定優(yōu)先級(jí)。 系統(tǒng)根據(jù)作業(yè)要求資源情況確定優(yōu)先級(jí)。 進(jìn)程的靜態(tài)優(yōu)先級(jí)的確定原則: 按進(jìn)程的類型給予不同的優(yōu)先級(jí)。

  將作業(yè)的情態(tài)優(yōu)先級(jí)作為它所屬進(jìn)程的優(yōu)先級(jí)。

  3.2動(dòng)態(tài)優(yōu)先級(jí)

  進(jìn)程的動(dòng)態(tài)優(yōu)先級(jí)一般根據(jù)以下原則確定: 根據(jù)進(jìn)程占用有CPU時(shí)間的長(zhǎng)短來(lái)決定。 根據(jù)就緒進(jìn)程等待CPU的時(shí)間長(zhǎng)短來(lái)決定。

  4高響應(yīng)比優(yōu)先

  最高響應(yīng)比優(yōu)先法(HRN,Highest Response_ratio Next)是對(duì)FCFS方式和SJF方式的一種綜合平衡。FCFS方式只考慮每個(gè)作業(yè)的等待時(shí)間而未考慮執(zhí)行時(shí)間的長(zhǎng)短,而SJF方式只考慮執(zhí)行時(shí)間而未考慮等待時(shí)間的長(zhǎng)短。因此,這兩種調(diào)度算法在某些極端情況下會(huì)帶來(lái)某些不便。HRN調(diào)度策略同時(shí)考慮每個(gè)作業(yè)的等待時(shí)間長(zhǎng)短和估計(jì)需要的執(zhí)行時(shí)間長(zhǎng)短,從中選出響應(yīng)比最高的作業(yè)投入執(zhí)行。

  響應(yīng)比R定義如下: R =(W+T)/T = 1+W/T

  其中T為該作業(yè)估計(jì)需要的執(zhí)行時(shí)間,W為作業(yè)在后備狀態(tài)隊(duì)列中的等待時(shí)間。每當(dāng)要進(jìn)行作業(yè)調(diào)度時(shí),系統(tǒng)計(jì)算每個(gè)作業(yè)的響應(yīng)比,選擇其中R最大者投入執(zhí)行。這樣,即使是長(zhǎng)作業(yè),隨著它等待時(shí)間的增加,W / T也就隨著增加,也就有機(jī)會(huì)獲得調(diào)度執(zhí)行。這種算法是介于FCFS和SJF之間的一種折中算法。由于長(zhǎng)作業(yè)也有機(jī)會(huì)投入運(yùn)行,在同一時(shí)間內(nèi)處理的作業(yè)數(shù)顯然要少于SJF法,從而采用HRN方式時(shí)其吞吐量將小于采用SJF 法時(shí)的吞吐量。另外,由于每次調(diào)度前要計(jì)算響應(yīng)比,系統(tǒng)開(kāi)銷也要相應(yīng)增加。

  5時(shí)間片輪轉(zhuǎn)

  輪轉(zhuǎn)法(Round Robin)是讓每個(gè)進(jìn)程在就緒隊(duì)列中的等待時(shí)間與享受服務(wù)的時(shí)間成正比例。

  將系統(tǒng)中所有的就緒進(jìn)程按照FCFS原則,排成一個(gè)隊(duì)列。每次調(diào)度時(shí)將CPU分派給隊(duì)首進(jìn)程,讓其執(zhí)行一個(gè)時(shí)間片。時(shí)間片的長(zhǎng)度從幾個(gè)ms到幾百ms。在一個(gè)時(shí)間片結(jié)束時(shí),發(fā)生時(shí)鐘中斷。調(diào)度程序據(jù)此暫停當(dāng)前進(jìn)程的執(zhí)行,將其送到就緒隊(duì)列的末尾,并通過(guò)上下文切換執(zhí)行當(dāng)前的隊(duì)首進(jìn)程。進(jìn)程可以未使用完一個(gè)時(shí)間片,就出讓CPU(如阻塞)。

  長(zhǎng)度的確定

  時(shí)間片長(zhǎng)度變化的影響:過(guò)長(zhǎng)->退化為FCFS算法,進(jìn)程在一個(gè)時(shí)間片內(nèi)都執(zhí)行完,響應(yīng)時(shí)間長(zhǎng)。過(guò)短->用戶的一次請(qǐng)求需要多個(gè)時(shí)間片才能處理完,上下文切換次數(shù)增加,響應(yīng)時(shí)間長(zhǎng)。對(duì)響應(yīng)時(shí)間的要求:T(響應(yīng)時(shí)間)=N(進(jìn)程數(shù)目)*q(時(shí)間片)。

  就緒進(jìn)程的數(shù)目:數(shù)目越多,時(shí)間片越小

  系統(tǒng)的處理能力:應(yīng)當(dāng)使用戶輸入通常在一個(gè)時(shí)間片內(nèi)能處理完,否則使響應(yīng)時(shí)間,平均周轉(zhuǎn)時(shí)間和平均帶權(quán)周轉(zhuǎn)時(shí)間延長(zhǎng)。

  6多級(jí)反饋隊(duì)列

  6.1 多級(jí)反饋隊(duì)列的原理:

  1、設(shè)有N個(gè)隊(duì)列(Q1,Q2....QN),其中各個(gè)隊(duì)列對(duì)于處理機(jī)的優(yōu)先級(jí)是不一樣的,也就是說(shuō)位于各個(gè)隊(duì)列中的作業(yè)(進(jìn)程)的優(yōu)先級(jí)也是不一樣的。一般來(lái)說(shuō),優(yōu)先級(jí)Priority(Q1) > Priority(Q2) > ... > Priority(QN)。怎么講,位于Q1中的任何一個(gè)作業(yè)(進(jìn)程)都要比Q2中的任何一個(gè)作業(yè)(進(jìn)程)相對(duì)于CPU的優(yōu)先級(jí)要高(也就是說(shuō),Q1中的作業(yè)一定要比Q2中的作業(yè)先被處理機(jī)調(diào)度),依次類推其它的隊(duì)列。

  2、對(duì)于某個(gè)特定的隊(duì)列來(lái)說(shuō),里面是遵循時(shí)間片輪轉(zhuǎn)法。也就是說(shuō),位于隊(duì)列Q2中有N個(gè)作業(yè),它們的運(yùn)行時(shí)間是通過(guò)Q2這個(gè)隊(duì)列所設(shè)定的時(shí)間片來(lái)確定的(為了便于理解,我們也可以認(rèn)為特定隊(duì)列中的作業(yè)的優(yōu)先級(jí)是按照FCFS來(lái)調(diào)度的)。

  3、各個(gè)隊(duì)列的時(shí)間片是一樣的嗎?不一樣,這就是該算法設(shè)計(jì)的精妙之處。各個(gè)隊(duì)列的時(shí)間片是隨著優(yōu)先級(jí)的增加而減少的,也就是說(shuō),優(yōu)先級(jí)越高的隊(duì)列中它的時(shí)間片就越短。同時(shí),為了便于那些超大作業(yè)的完成,最后一個(gè)隊(duì)列QN(優(yōu)先級(jí)最低的隊(duì)列)的時(shí)間片一般很大(不需要考慮這個(gè)問(wèn)題)。 6.2多級(jí)反饋隊(duì)列調(diào)度算法描述:

  1、進(jìn)程在進(jìn)入待調(diào)度的隊(duì)列等待時(shí),首先進(jìn)入優(yōu)先級(jí)最高的Q1等待。

  2、首先調(diào)度優(yōu)先級(jí)高的隊(duì)列中的進(jìn)程。若高優(yōu)先級(jí)中隊(duì)列中已沒(méi)有調(diào)度的進(jìn)程,則調(diào)度次優(yōu)先級(jí)隊(duì)列中的進(jìn)程。例如:Q1,Q2,Q3三個(gè)隊(duì)列,只有在Q1中沒(méi)有進(jìn)程等待時(shí)才去調(diào)度Q2,同理,只有Q1,Q2都為空時(shí)才會(huì)去調(diào)度Q3。

  3、對(duì)于同一個(gè)隊(duì)列中的各個(gè)進(jìn)程,按照時(shí)間片輪轉(zhuǎn)法調(diào)度。比如Q1隊(duì)列的時(shí)間片為N,那么Q1中的作業(yè)在經(jīng)歷了N個(gè)時(shí)間片后若還沒(méi)有完成,則進(jìn)入Q2隊(duì)列等待,若Q2的時(shí)間片用完后作業(yè)還不能完成,一直進(jìn)入下一級(jí)隊(duì)列,直至完成。

  4、在低優(yōu)先級(jí)的隊(duì)列中的進(jìn)程在運(yùn)行時(shí),又有新到達(dá)的作業(yè),那么在運(yùn)行完這個(gè)時(shí)間片后,CPU馬上分配給新到達(dá)的作業(yè)(搶占式)。

  二、 當(dāng)前應(yīng)用現(xiàn)狀

  linux內(nèi)核的三種調(diào)度方法:

  1,SCHED_OTHER 分時(shí)調(diào)度策略,

  2,SCHED_FIFO實(shí)時(shí)調(diào)度策略,先到先服務(wù)3,SCHED_RR實(shí)時(shí)調(diào)度策略,時(shí)間片輪轉(zhuǎn)

  實(shí)時(shí)進(jìn)程將得到優(yōu)先調(diào)用,實(shí)時(shí)進(jìn)程根據(jù)實(shí)時(shí)優(yōu)先級(jí)決定調(diào)度權(quán)值,分時(shí)進(jìn)程則通過(guò)nice和counter值決定權(quán)值,nice越小,counter越大,被調(diào)度的概率越大,也就是曾經(jīng)使用了cpu最少的進(jìn)程將會(huì)得到優(yōu)先調(diào)度。

  SHCED_RR和SCHED_FIFO的不同:

  當(dāng)采用SHCED_RR策略的進(jìn)程的時(shí)間片用完,系統(tǒng)將重新分配時(shí)間片,并置于就緒隊(duì)列尾。放在隊(duì)列尾保證了所有具有相同優(yōu)先級(jí)的RR任務(wù)的調(diào)度公平。

  SCHED_FIFO一旦占用cpu則一直運(yùn)行。一直運(yùn)行直到有更高優(yōu)先級(jí)任務(wù)到達(dá)或自己放棄。

  如果有相同優(yōu)先級(jí)的實(shí)時(shí)進(jìn)程(根據(jù)優(yōu)先級(jí)計(jì)算的調(diào)度權(quán)值是一樣的)已經(jīng)準(zhǔn)備好,F(xiàn)IFO時(shí)必須等待該進(jìn)程主動(dòng)放棄后才可以運(yùn)行這個(gè)優(yōu)先級(jí)相同的任務(wù)。而RR可以讓每個(gè)任務(wù)都執(zhí)行一段時(shí)間。

  相同點(diǎn):

  RR和FIFO都只用于實(shí)時(shí)任務(wù)。

【操作系統(tǒng)讀書工程報(bào)告】相關(guān)文章:

國(guó)產(chǎn)操作系統(tǒng)典范:deepin操作系統(tǒng)03-12

操作系統(tǒng)大全04-01

操作系統(tǒng)原理12-06

國(guó)產(chǎn)的操作系統(tǒng)04-24

LINUX操作系統(tǒng)05-27

LINUX操作系統(tǒng)01-22

操作系統(tǒng)安裝12-20

操作系統(tǒng)的種類07-07

計(jì)算機(jī)操作系統(tǒng)安裝培訓(xùn)報(bào)告03-24