第三章处理程序的说明及控制Process Description and Control

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第三章處理程序的說明及控制ProcessDescriptionandControl所有多重程式(multi-programmed)作業系統都建立在process的概念大部分作業系統需滿足的需求交錯多個process的執行,在理想反應時間下達到最大的處理器使用率。遵從特定的政策(例如,高優先權)來配置資源給process,且避免死結的發生。支援process間的相互通訊(inter-processcommunication)、使用者process的建立。從了解process的表示與控制,開始學習作業系統!23.1處理程序的狀態從處理器的觀點看process交錯執行處理器藉由改變程式計數器(ProgramCounter,PC)的數值,依序執行指令。追蹤process的軌跡(trace):列出每個process執行指令的順序。處理程序A,B,C的軌跡5000800012000500180011200150028002120025003800312003500412004500512005500612006500712007500812008500912009501012010501112011(a)(b)(c)Figure3.1SnapshotofExampleExecution(Figure3.3)atInstructionCycle1334所有處理程序結合的軌跡500050015002500350045005--------時間到1001011021031041058000800180028003-------I/O請求100101102103104105120001200112002120031200412005--------時間到100101102103104105500650075008500950105011--------時間到100101102103104105120061200712008120091201012011--------時間到Figure3.3CombinedTraceofProcessesofFigure3.15雙狀態(two-state)處理程序模型Process的兩種狀態:執行(Running)未執行(NotRunning)。中斷的process被移至等待佇列中。分派程式由佇列中選擇一個process執行。6建立處理程序的原因新的批次工作:讀入下一個工作控制命令(JobControlCommand)。互動式登入:使用者在終端機登入到系統。被作業系統建立來提供服務:產生新process以進行特定功能,避免使用者等待。由現有的process產生:為了模組化或平行處理,使用者程式可建立其他process。Process產生另一Process時,彼此為親子關係(ParentandChild)。7處理程序終止的原因正常完成(Normalcompletion)批次工作下達停止(Halt)指令或系統呼叫。使用者登出。Process發出終止執行的請求。執行時發生錯誤:超過時間限制(Timelimitexceeded)、記憶體不足(Memoryunavailable)、違反記憶體邊界(Memoryboundsviolation)保護錯誤(Protectionerror):writetoread-onlyfile算術錯誤(Arithmeticerror):除以0,或超出最大值。時間超過(Timeoverrun):processwaitedlongerthanaspecifiedmaximumforanevent管理者或作業系統介入(如發生deadlock)、輸出入失敗(I/Ofailure)、不合法指令(Invalidinstruction)、特權指令(Privilegedinstruction)、資料誤用、parentprocess要求、parentprocess終止。8五狀態(five-state)處理程序模型雙狀態模型不完備之處未執行狀態的process有兩種情形:(1)可以執行;(2)等待I/O動作的完成而被懸置(blocked)。分派程式必須掃描整個佇列,找出未被懸置且等待最久的process。擴充雙狀態模型成為五種狀態執行中(Running)未執行狀態再區分為:備妥(Ready);懸置(Blocked)另為方便管理process,新增二種狀態:新建(New):剛被系統建立,尚未允許進入執行區。(尚未載入主記憶體,僅建立表格)離開(Exit):因停止或取消,被系統由執行區離開。(釋放佔用的主記憶體,但保留相關表格)9五狀態處理程序模型(續)10Figure3.6ProcessStatesforTraceofFigure3.3圖3.7(a)有兩個佇列:備妥佇列與懸置佇列圖3.7(b)對每一事件分別有一佇列Figure3.7QueuingModelofFigure3.51112置換的需要Theneedforswapping在未使用虛擬記憶體的系統,每個process必須完全地載入記憶體中才能執行。由於處理器比I/O動作快太多,即使在多工環境下,處理器大部分時間仍處於閒置狀態。解決方法:容納更多的process擴充主記憶體:如此會增加成本。置換(swapping):將process的部分或全部由主記憶體移至磁碟上,本身也是I/O動作。使用置換,需增加新的狀態:暫停(suspend)當所有主記憶體中的process都處於懸置狀態時,系統可將某個process暫停,並置換至磁碟,其所佔據的主記憶體空間就可釋放出來給其他process使用。13置換之後,選擇載入process的方法容許新process的產生。問題:將增加系統的負擔。載入一處於暫停狀態的process。問題:所有暫停process都是被懸置的process,即使載入也仍無法執行。單一暫停狀態14雙暫停狀態有兩個獨立的概念:是否等待事件(懸置)、是否被置換(暫停)2*2組合:共四種狀態:(1)備妥;(2)懸置;(3)懸置,暫停;(4)備妥,暫停。15暫停的其他使用暫停process的概念Process無法立即被執行。Process可能在等待某個事件。Process可被其他process或作業系統置於暫停狀態。Process不能離開這個狀態,直到讓它陷入暫停狀態的人解除為止。process暫停的原因置換:作業系統必須釋出主記憶體空間,以容許載入其他process。其他作業系統理由:作業系統可能會暫停背景、工具或產生問題的process。互動使用者要求:使用者希望暫停某一process。時間:如週期性執行的process。parentprocess要求。163.2處理程序描述ProcessDescription作業系統控制結構作業系統要管理process與資源,必須擁有各process與資源目前狀態的資訊。最簡單的方法:作業系統建立並維護所管理實體的資訊表格,包括:記憶體、輸出入(I/O)、檔案、Process。Figure3.9ProcessesandResources(resourceallocationatonesnapshotintime)17Figure3.10GeneralStructureofOperatingSystemControlTables18Process的控制結構Process的位置影像(image):即Process的構成,包含:程式、資料、堆疊與屬性。Process的image的位置:(a)連續的記憶體區塊;或(b)一系列不一定連續的區塊。區塊可為不同長度(區段,Segment),或使用固定長度(頁,page),或二者結合。Process的屬性Process控制區塊(ProcessControlBlock):所有屬性的集合。19Process控制區塊Process識別資訊(identificationinformation):該process的識別碼、parentprocess的識別碼、使用者識別碼Process狀態資訊(stateinformation):使用者可見暫存器;控制與狀態暫存器:ProgramCounter,ProgramStatusWord,…堆疊指標。Process控制資訊(controlinformation):優先權、排班相關資訊、事件、結構資訊(process間的資料結構鏈結)、process間通訊(inter-processcommunication)、process的權限、記憶體管理、資源所有權與使用率。20處理程序的屬性-PentiumEFLAGS暫存器控制位元:ID識別碼:是否支援CPUID指令,該指令提供製造商、型號資訊。RF:繼續旗標(Resumeflag)。IOPL:輸出入特權層級(I/Oprivilegelevel)IF:中斷致能旗標(Interruptenableflag)。TF:陷阱旗標(Trapflag),使所有指令的執行產生中斷,以用來偵錯。運作模式位元VM:虛擬8086模式(Virtual8086mode)。VIF(Virtualinterruptflag):用於虛擬8086模式,取代中斷致能旗標(IF)。狀況代碼CF:進位旗標(Carryflag)。21Figure3.12UserProcessesinVirtualMemory22Figure3.13ProcessListStructures233.3處理程序控制大部分處理器支援至少兩種執行模式較低特權的模式:稱使用者模式(usermode)。較高特權的模式:稱系統模式(systemmode)、控制模式(controlmode)、或核心模式(kernelmode)。理由:作業系統本身及其表格有保護的必要。執行模式的區別及改變程式狀態字組(ProgramStatusWord,PSW)有一位元表示執行模式。VAX的改變模式指令(CHM):使用者呼叫系統服務,或發生中斷控制轉移至系統常式時,常式就執行CHM指令﹔返回控制權給使用者process前,再執行一次CHM進入較低特權模式。Process的建立配置一process識別碼,在process表格中加入一新項目。分配空間,包含process影像(image)的所有元素。Process控制區塊(ProcessControlBlock)的初始化。設定Process的鏈結、各種Process佇列、其他資料結構。24處理程序切換(processswitch)何時process切換?作業系統取得控制權的事件:中斷(Interrupt):由外部發出,例如:I/O動作完成。時鐘中斷(TimerInterrupt),輸出入中斷(I/OInterrupt),記憶體錯誤。陷阱(Trap):與目前執行的指令相關,例如:非法存取檔案。Anerrorresultedfromthelastinstruction.ItmaycausetheprocesstobemovedtotheExitstate.監督者呼叫(SupervisorCall):程式明確要求,例如:開啟檔案。explicitrequestbytheprogram(ex:fileopen).Theprocesswillprobablybeblocked.中斷週期的模式切換(ModeSwitch)儲存目前執行中程式的序文(context):PSW,PC,其他暫存器、堆疊。將程式計數器(PC)設至中斷處理器的位址。由使用者模式切換至核心模式,讓中斷處理程式可執行特權指令。25處理程序切換(ProcessSwitch)(續)模式切換(modeswitching)vs.處理程序切換(processswitching)(也有稱contextswitch,但容易與thread切換混淆)模式切換

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功