作業(yè)系統(tǒng)原理_第1頁(yè)
作業(yè)系統(tǒng)原理_第2頁(yè)
作業(yè)系統(tǒng)原理_第3頁(yè)
作業(yè)系統(tǒng)原理_第4頁(yè)
作業(yè)系統(tǒng)原理_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

OperatingSystemPrinciples

作業(yè)系統(tǒng)原理

Chapter5行程排班著者ABRAHAMSILBERSCHATZYaleUniversityPETERBAERGALVINCorporateTechnologiesGREGGAGNEWestminsterCollege譯者駱詩(shī)軒駱詩(shī)富鄧俊修投影片編撰

鄧有光Chapter3行程觀念3.1概觀3.2行程排班3.3行程的操作3.4行程間通訊3.5lPC系統(tǒng)的範(fàn)例3.6客戶/伺服器的通信3.1概觀討論作業(yè)系統(tǒng)的一個(gè)問(wèn)題就是該如何稱呼CPU所有的運(yùn)作項(xiàng)目。整批式系統(tǒng)執(zhí)行工作(jobs),而分時(shí)系統(tǒng)其有使用者程式(userprograms),(或稱為任務(wù),task)。即使在單一使用者系統(tǒng)(如MicrosoftWindows)使用者仍可同時(shí)執(zhí)行數(shù)個(gè)程式:一個(gè)文書處理程式、網(wǎng)頁(yè)瀏覽器、email套件程式。就算是使用者只能一次執(zhí)行一個(gè)程式,作業(yè)系統(tǒng)仍須支援其內(nèi)部一些工作,比方說(shuō)是記憶體管理。從各方面看來(lái),這些所有的事情都類似,所以我們就稱之為行程。3.1.1行程行程指的是正在執(zhí)行的程式。行程不只是程式碼(有時(shí)也稱為本文區(qū),textsection)而已。它還包含代表目前運(yùn)作的程式計(jì)數(shù)器(Programcounter)數(shù)值和處理器的暫存器內(nèi)容。一般而言,行程還包括存放暫用資料(譬如:副程式的參數(shù)、返回位址,以及暫時(shí)性變數(shù))的行程堆疊(stack),以及包含整體變數(shù)的資料區(qū)間(datasection)。行程也包含堆積(heap),所謂堆積就是在行程執(zhí)行期間動(dòng)態(tài)配置的記憶體,行程記憶體結(jié)構(gòu)如圖3.1。3.1.2行程狀態(tài)行程在執(zhí)行時(shí)會(huì)改變其狀態(tài)。行程的狀態(tài)(state)部份是指該行程目前的動(dòng)作,每一個(gè)行程可能會(huì)處?kù)兑韵聰?shù)種狀態(tài)之一:新產(chǎn)生(new):該行程正在產(chǎn)生中。執(zhí)行(running):指令正在執(zhí)行。等待(waiting):等待某件事件的發(fā)生(譬如輸出入完成或接收到一個(gè)信號(hào))。就緒(ready):該行程正等待指定一個(gè)處理器。結(jié)束(terminated):該行程完成執(zhí)行。3.1.3行程控制表每一個(gè)行程在作業(yè)系統(tǒng)之中都對(duì)應(yīng)著一個(gè)行程控制表(Processcontrolblock,PCB)或稱任務(wù)控制表(taskcontrolblock),如圖3.3。行程控制表(PCB)記載所代表的行程之相關(guān)資訊,包括:行程狀態(tài):可以是new、ready、running、waiting或halted等。程式計(jì)數(shù)器:指明該行程接著要執(zhí)行的指令位址。CPU暫存器:其數(shù)量和類別,完全因電腦架構(gòu)而異。包括累加器(accumulator)、索引暫存器(indexregister)、堆疊指標(biāo)(stackpointer)以及一般用途暫存器(general-purposeregister)等,還有一些狀況代碼(conditioncode)。當(dāng)中斷發(fā)生時(shí),這些狀態(tài)資訊以及程式執(zhí)行計(jì)數(shù)器必須儲(chǔ)存起來(lái),以便稍後利用這些儲(chǔ)存的資訊,使程式能於中斷之後順利地繼續(xù)執(zhí)行(如圖3.4)。CPU排班法則柑關(guān)資訊:包括行程的優(yōu)先順序(Priorlty)、排班佇列(schedulingqueue)的指標(biāo)以及其它的排班參數(shù)。記憶體管理資訊:這些資訊包括如基底暫存器(baseregister)和限制暫存器(limitregister),分頁(yè)表(Pagetable)值的資訊統(tǒng)所使用的記憶系統(tǒng)區(qū)段表(segmenttable)。會(huì)計(jì)資訊:包括了CPU和實(shí)際時(shí)間的使用數(shù)量、時(shí)限、帳號(hào)工作或行程號(hào)碼。輸入/輸出狀態(tài)資訊:包括配置給行程的輸入/輸出裝置,包括開啟檔案的串列等等。3.2行程排班多元程式規(guī)劃系統(tǒng)的主要目的,是隨時(shí)保有一個(gè)行程在執(zhí)行,藉以提高CPU的使用率。分時(shí)系統(tǒng)的目的是將CPU在不同行程之間不斷地轉(zhuǎn)換,以便訣使用者可以在自己的行程執(zhí)行時(shí)與它交談。為了達(dá)到這個(gè)目的,行程排班程式(processscheduler)為CPU上執(zhí)行程式選擇一個(gè)可用的行程(可能由一組可用行程)。在單一處理器系統(tǒng)裏,不可能有一個(gè)以上的行程同時(shí)執(zhí)行。如果有多個(gè)行程,其它的都必須在旁邊等待一直到CPU有空,才可能重新排列。3.2.1排班佇列當(dāng)行程進(jìn)入系統(tǒng)時(shí),它們是放在工作佇列(jobqueue)之中,此佇列是由所有系統(tǒng)中的行程所組成。位於主記憶體中且就緒等待執(zhí)行的行程是保存在一個(gè)所謂就緒佇列(readyqueue)的串列。這個(gè)佇列一般都是用鏈接串列的方式儲(chǔ)存。在就緒佇列前端保存著指向這個(gè)串列的第一個(gè)和最後一個(gè)PCB(ProcessControlBlock),行程控制表)的指標(biāo)。一個(gè)新的行程最初是置於就緒佇列中。它就一直在就緒佇列中等待,直到選來(lái)執(zhí)行或被分派(dispatched)。一旦這個(gè)行程配置CPU並且進(jìn)行執(zhí)行,則會(huì)有若干事件之一可能發(fā)生:.行程可發(fā)出1/0要求,然後置於一個(gè)1/0佇列中。.行程可產(chǎn)生出一個(gè)新的子行程並等待後者的結(jié)束。.行程可強(qiáng)行地移離CPU(如用中斷的結(jié)果一樣),然後放回就緒佇列中。3.2.2排班程式(scheduler)一個(gè)行程在它整個(gè)生命期裏將在各個(gè)不同的排班佇列間遷移。作業(yè)系統(tǒng)必須按排班次序從這些佇列選取行程。行程的選取將由適當(dāng)?shù)呐虐喑淌?scheduler)來(lái)執(zhí)行。有些系統(tǒng),如分時(shí)系統(tǒng),可能會(huì)採(cǎi)用一種額外的、間接方式來(lái)排班。這種稱為中程排班程式(medium-termscheduler)背後的最主要觀念就是我們有時(shí)後可以將行程從記憶體中有效地移開(並且從對(duì)CPU的競(jìng)爭(zhēng)中移開)、並減低多元程式規(guī)劃的程度。3.2.3內(nèi)容轉(zhuǎn)換中斷使作業(yè)系統(tǒng)改變CPU目前的工作而執(zhí)行核心常式,這樣的作業(yè)常發(fā)生在一般用途系統(tǒng)上。當(dāng)中斷發(fā)生時(shí),系統(tǒng)需要儲(chǔ)存目前在CPU上執(zhí)行行程的內(nèi)容(context),所以當(dāng)作業(yè)完成時(shí),它可以還原內(nèi)容,本質(zhì)就是暫停行程,再取回行程。轉(zhuǎn)換CPU至另一項(xiàng)行程時(shí)必須將舊行程的狀態(tài)儲(chǔ)存起來(lái),然後再載入新行程的儲(chǔ)存狀態(tài)。這項(xiàng)任務(wù)稱為內(nèi)容博換(contextswitch)。3.3.1行程的產(chǎn)生在一個(gè)行程的執(zhí)行期間,它可以利用產(chǎn)生行程的系統(tǒng)呼叫來(lái)產(chǎn)生數(shù)個(gè)新的行程。原先的行程就叫做父行程(Parentprocess),而新的行程則叫做子行程(childrenprocess)。每一個(gè)新產(chǎn)生的行程可以再產(chǎn)生其它的行程,這可以形成一幅行程樹(treeofprocesses)。3.4行程間通訊合作行程(cooperatingprocess)資訊共享:因?yàn)閿?shù)個(gè)使用者可能對(duì)相同的一項(xiàng)資訊(例如,公用檔案)有興趣,因此我們必須提供一個(gè)環(huán)境允許使用者能同時(shí)使用這些資源。加速運(yùn)算:如果我們希望某一特定工作執(zhí)行快一點(diǎn),則可以分成一些子工作,每一個(gè)子工作都可以和其它子工作平行地執(zhí)行。模組化:我們可能希望以模組的方式來(lái)建立系統(tǒng),把系統(tǒng)功能分配到數(shù)個(gè)行程。.方便性:即使是單一使用者也可能同時(shí)執(zhí)行數(shù)項(xiàng)工作。3.4.1共用記憶體系統(tǒng)為了闡述合作行程的觀念,讓我們來(lái)看"生產(chǎn)者-消費(fèi)者。的問(wèn)題,這個(gè)問(wèn)題是合作行程常用的範(fàn)例。生產(chǎn)者(producer)行程產(chǎn)生資訊,消費(fèi)者(consumer)行程消耗掉這些資訊。3.4.2訊息傳遞系統(tǒng)直接聯(lián)繫(directcommunication)方法中,每一個(gè)要傳送或接收訊息的行程必須先確定聯(lián)繫接收者或傳送者的名稱。在這個(gè)體系之中,send()與receive()的基本運(yùn)算定義如下:send(P,message)傳送一個(gè)訊息(message)至行程P。receive(Q,message)自行程Q接收一個(gè)訊息(message)。間接式聯(lián)繫(indirectcommunication)之中,需藉著信箱(mailbox,也叫作埠,port)來(lái)傳送與接收訊息。這種Send()與receive()的基本運(yùn)算之定義如下:Send(A,message)將訊息(message)傳送至信箱A。Receive(A,message)自信箱A接收一個(gè)訊息(message)。3.4.2.2同步化訊息傳遞可以是等待(blocking)或非等待(nonblocking),也稱為同步(synchronous)和非同步(asynchronous)。等待傳送(blockingsend):傳送行程等待著,直到接收行程或信箱接收訊息。非等待傳送(nonblockingsend):傳送行程送出訊息及重新操作。等待接收(blockingreceive):接收者等待,直到有效訊息出現(xiàn)。非等待接收(nonblockingreceive):接收者收到有效訊息或無(wú)效資料。3.5.1POSIX共用記憶體3.5.2Mach在訊息式的作業(yè)系統(tǒng)例子中,我們接著考慮由CarnegieMellon大學(xué)所發(fā)展出的Mach作業(yè)系統(tǒng)。Mach核心支援多元任務(wù)的產(chǎn)生和刪除,這些任務(wù)類似於行程,但具有多重的控制執(zhí)行緒。Mach中大部份的通訊(包括大部份系統(tǒng)呼叫和所有任務(wù)之間的資訊)都是由訊息完成。訊息都是由信箱(在Mach中乃稱為埠,port)來(lái)傳送及接收。3.5.3WindowsXPWindowsXP作業(yè)系統(tǒng)是現(xiàn)代設(shè)計(jì)的一個(gè)例子,它採(cǎi)用模組化設(shè)計(jì)以便增進(jìn)功能和降低製作新特性所需的時(shí)間。WindowsXp

提供多元操作環(huán)境的支援,或是經(jīng)由一個(gè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論