第三章处理程序的说明及控制ProcessDescriptionandControl.ppt

上传人:sccc 文档编号:5051569 上传时间:2023-05-31 格式:PPT 页数:34 大小:830.05KB
返回 下载 相关 举报
第三章处理程序的说明及控制ProcessDescriptionandControl.ppt_第1页
第1页 / 共34页
第三章处理程序的说明及控制ProcessDescriptionandControl.ppt_第2页
第2页 / 共34页
第三章处理程序的说明及控制ProcessDescriptionandControl.ppt_第3页
第3页 / 共34页
第三章处理程序的说明及控制ProcessDescriptionandControl.ppt_第4页
第4页 / 共34页
第三章处理程序的说明及控制ProcessDescriptionandControl.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《第三章处理程序的说明及控制ProcessDescriptionandControl.ppt》由会员分享,可在线阅读,更多相关《第三章处理程序的说明及控制ProcessDescriptionandControl.ppt(34页珍藏版)》请在三一办公上搜索。

1、1,第三章 處理程序的說明及控制Process Description and Control,所有多重程式(multi-programmed)作業系統都建立在process的概念大部分作業系統需滿足的需求交錯多個process的執行,在理想反應時間下達到最大的處理器使用率。遵從特定的政策(例如,高優先權)來配置資源給process,且避免死結的發生。支援process間的相互通訊(inter-process communication)、使用者process的建立。從了解process的表示與控制,開始學習作業系統!,2,3.1 處理程序的狀態,從處理器的觀點看process交錯執行處理器藉

2、由改變程式計數器(Program Counter,PC)的數值,依序執行指令。追蹤process的軌跡(trace):列出每個process執行指令的順序。,處理程序A,B,C的軌跡,50008000120005001 800112001500280021200250038003120035004120045005 120055006 12006500712007500812008500912009501012010501112011(a)(b)(c),Figure 3.1 Snapshot of Example Execution(Figure 3.3)at Instruction Cycl

3、e 13,3,4,所有處理程序結合的軌跡,500050015002500350045005-時間到1001011021031041058000 8001,80028003-I/O請求100101102103104105120001200112002120031200412005,-時間到100101102103104105500650075008500950105011-時間到100101,102103104105120061200712008120091201012011-時間到,Figure 3.3 Combined Trace of Processes of Figure 3.1,5,雙

4、狀態(two-state)處理程序模型,Process的兩種狀態:執行(Running)未執行(Not Running)。中斷的process被移至等待佇列中。分派程式由佇列中選擇一個process執行。,6,建立處理程序的原因,新的批次工作:讀入下一個工作控制命令(Job Control Command)。互動式登入:使用者在終端機登入到系統。被作業系統建立來提供服務:產生新process以進行特定功能,避免使用者等待。由現有的process產生:為了模組化或平行處理,使用者程式可建立其他process。Process產生另一Process時,彼此為親子關係(Parent and Child

5、)。,7,處理程序終止的原因,正常完成(Normal completion)批次工作下達停止(Halt)指令或系統呼叫。使用者登出。Process發出終止執行的請求。執行時發生錯誤:超過時間限制(Time limit exceeded)、記憶體不足(Memory unavailable)、違反記憶體邊界(Memory bounds violation)保護錯誤(Protection error):write to read-only file算術錯誤(Arithmetic error):除以0,或超出最大值。時間超過(Time overrun):process waited longer th

6、an a specified maximum for an event管理者或作業系統介入(如發生deadlock)、輸出入失敗(I/O failure)、不合法指令(Invalid instruction)、特權指令(Privileged instruction)、資料誤用、parent process要求、parent process終止。,8,五狀態(five-state)處理程序模型,雙狀態模型不完備之處未執行狀態的process有兩種情形:(1)可以執行;(2)等待I/O動作的完成而被懸置(blocked)。分派程式必須掃描整個佇列,找出未被懸置且等待最久的process。擴充雙狀態

7、模型成為五種狀態執行中(Running)未執行狀態再區分為:備妥(Ready);懸置(Blocked)另為方便管理process,新增二種狀態:新建(New):剛被系統建立,尚未允許進入執行區。(尚未載入主記憶體,僅建立表格)離開(Exit):因停止或取消,被系統由執行區離開。(釋放佔用的主記憶體,但保留相關表格),9,五狀態處理程序模型(續),10,Figure 3.6 Process States for Trace of Figure 3.3,圖3.7(a)有兩個佇列:備妥佇列與懸置佇列圖3.7(b)對每一事件分別有一佇列,Figure 3.7 Queuing Model of Figu

8、re 3.5,11,12,置換的需要 The need for swapping,在未使用虛擬記憶體的系統,每個process必須完全地載入記憶體中才能執行。由於處理器比I/O動作快太多,即使在多工環境下,處理器大部分時間仍處於閒置狀態。解決方法:容納更多的process擴充主記憶體:如此會增加成本。置換(swapping):將process的部分或全部由主記憶體移至磁碟上,本身也是I/O動作。使用置換,需增加新的狀態:暫停(suspend)當所有主記憶體中的process都處於懸置狀態時,系統可將某個process暫停,並置換至磁碟,其所佔據的主記憶體空間就可釋放出來給其他process使用

9、。,13,置換之後,選擇載入process的方法容許新process的產生。問題:將增加系統的負擔。載入一處於暫停狀態的process。問題:所有暫停process都是被懸置的process,即使載入也仍無法執行。,單一暫停狀態,14,雙暫停狀態,有兩個獨立的概念:是否等待事件(懸置)、是否被置換(暫停)2*2組合:共四種狀態:(1)備妥;(2)懸置;(3)懸置,暫停;(4)備妥,暫停。,15,暫停的其他使用,暫停process的概念Process無法立即被執行。Process可能在等待某個事件。Process可被其他process或作業系統置於暫停狀態。Process不能離開這個狀態,直到讓

10、它陷入暫停狀態的人解除為止。process暫停的原因置換:作業系統必須釋出主記憶體空間,以容許載入其他process。其他作業系統理由:作業系統可能會暫停背景、工具或產生問題的process。互動使用者要求:使用者希望暫停某一process。時間:如週期性執行的process。parent process要求。,16,3.2 處理程序描述 Process Description,作業系統控制結構作業系統要管理process與資源,必須擁有各process與資源目前狀態的資訊。最簡單的方法:作業系統建立並維護所管理實體的資訊表格,包括:記憶體、輸出入(I/O)、檔案、Process。,Figur

11、e 3.9 Processes and Resources(resource allocation at one snapshot in time),17,Figure 3.10 General Structure of Operating System Control Tables,18,Process的控制結構,Process的位置影像(image):即Process的構成,包含:程式、資料、堆疊與屬性。Process的image的位置:(a)連續的記憶體區塊;或(b)一系列不一定連續的區塊。區塊可為不同長度(區段,Segment),或使用固定長度(頁,page),或二者結合。Proces

12、s的屬性Process控制區塊(Process Control Block):所有屬性的集合。,19,Process控制區塊,Process識別資訊(identification information):該process的識別碼、parent process的識別碼、使用者識別碼Process狀態資訊(state information):使用者可見暫存器;控制與狀態暫存器:Program Counter,Program Status Word,堆疊指標。Process控制資訊(control information):優先權、排班相關資訊、事件、結構資訊(process間的資料結構鏈結)、

13、process間通訊(inter-process communication)、process的權限、記憶體管理、資源所有權與使用率。,20,處理程序的屬性-Pentium EFLAGS暫存器,控制位元:ID識別碼:是否支援CPUID指令,該指令提供製造商、型號資訊。RF:繼續旗標(Resume flag)。IOPL:輸出入特權層級(I/O privilege level)IF:中斷致能旗標(Interrupt enable flag)。TF:陷阱旗標(Trap flag),使所有指令的執行產生中斷,以用來偵錯。運作模式位元VM:虛擬8086模式(Virtual 8086 mode)。VIF(

14、Virtual interrupt flag):用於虛擬8086模式,取代中斷致能旗標(IF)。狀況代碼CF:進位旗標(Carry flag)。,21,Figure 3.12 User Processes in Virtual Memory,22,Figure 3.13 Process List Structures,23,3.3 處理程序控制,大部分處理器支援至少兩種執行模式較低特權的模式:稱使用者模式(user mode)。較高特權的模式:稱系統模式(system mode)、控制模式(control mode)、或核心模式(kernel mode)。理由:作業系統本身及其表格有保護的必要

15、。執行模式的區別及改變程式狀態字組(Program Status Word,PSW)有一位元表示執行模式。VAX的改變模式指令(CHM):使用者呼叫系統服務,或發生中斷控制轉移至系統常式時,常式就執行CHM指令返回控制權給使用者process前,再執行一次CHM進入較低特權模式。Process的建立配置一process識別碼,在process表格中加入一新項目。分配空間,包含process影像(image)的所有元素。Process控制區塊(Process Control Block)的初始化。設定Process的鏈結、各種Process佇列、其他資料結構。,24,處理程序切換(process

16、 switch),何時process切換?作業系統取得控制權的事件:中斷(Interrupt):由外部發出,例如:I/O動作完成。時鐘中斷(Timer Interrupt),輸出入中斷(I/O Interrupt),記憶體錯誤。陷阱(Trap):與目前執行的指令相關,例如:非法存取檔案。An error resulted from the last instruction.It may cause the process to be moved to the Exit state.監督者呼叫(Supervisor Call):程式明確要求,例如:開啟檔案。explicit request by

17、 the program(ex:file open).The process will probably be blocked.中斷週期的模式切換(Mode Switch)儲存目前執行中程式的序文(context):PSW,PC,其他暫存器、堆疊。將程式計數器(PC)設至中斷處理器的位址。由使用者模式切換至核心模式,讓中斷處理程式可執行特權指令。,25,處理程序切換(Process Switch)(續),模式切換(mode switching)vs.處理程序切換(process switching)(也有稱context switch,但容易與thread切換混淆)模式切換不會改變proces

18、s從執行狀態至另一狀態。在此情況下,序文(context)的儲存及之後的回存,額外的負擔較少。但執行中的Process被移至其他狀態,則必須做完整的process切換。Process切換的步驟:儲存處理器的序文,包括:程式計數器與其他暫存器。更新Process控制區塊:改變Process執行狀態至另一狀態。將Process移至適當的佇列。選擇另一Process來執行(課本第4部分討論)。更新選擇的Process的控制區塊。更新記憶體管理資料結構。回存處理器的序文到該Process被切換之前。,26,作業系統的執行方式,作業系統的特殊角色作業系統是電腦軟體,也就是處理器執行的程式。作業系統時常放

19、棄控制,且依賴處理器允許它取回控制權。作業系統是個Process嗎?它如何控制?非Process核心(Non-process Kernel):常在舊作業系統見到的方法。作業系統在所有Process外執行,是分開執行的實體,擁有特權模式。所謂Process即為User Process。,Figure 3.14(a)Separate kernel,27,將整個作業系統視為User Process的內容作業系統是常式的集合,讓使用者呼叫來執行各種功能在User Process的環境中執行。當中斷、陷阱或管理者呼叫發生,處理器就進入核心模式,並將控制權交給作業系統。並未做處理程序切換,只進行了模式切換

20、。作業系統碼以共享的方式,被User Process所執行。,與User Process一起執行,Figure 3.14(b)OS functions execute within user processes,與User Process一起執行(續),在核心模式時,使用分開的核心堆疊(kernel stack)管理呼叫/返回。作業系統在共享的位址區域,可被所有User Process共享,28,Figure 3.15 Process Image:Operating System Executes Within User Space,29,處理程序為基礎的作業系統Process-based O

21、perating System,將作業系統視為許多Process的集合主要的核心函數組織成分離的Process優點:模組化的設計。採Process設計,各函數可以設定不同的優先權執行,並與其他Process交錯執行。對多處理器或分散式系統而言,可將作業系統服務移至其他處理器上執行,來提昇效率。,Figure 3.14(c)OS functions execute as separate processes,30,3.4 Unix SVR4 Process管理,大部分Unix作業系統的功能,都在User Process的環境下執行。(圖3.14(b)的模式)使用兩種類型的ProcessSyste

22、m Process:核心模式下執行,例如:配置記憶體、置換Process。User Process:(1)run in user mode for user programs;(2)run in kernel modes for system calls,traps,and interrupts.Process狀態:共9種狀態,類似之前的7狀態轉移圖。Created=New;Zombie(僵屍)=Exit;。執行中(Running)分為:User Running,Kernel Running,表示在使用者模式或核心模式內執行。區分備妥Ready to Run in Memory及被先佔Pree

23、mpted:二者本質上相同,只是區別進入此狀態的途徑,二者也放在同一佇列上。先佔動作(Preemption)只發生在Process由 kernel轉移至user mode時。使得Unix不適於即時處理(Real-time processing)。,31,Figure 3.16 UNIX Process State Transition Diagram,32,Unix System Processes,Process 0 是在系統啟動時(boot time)建立的特殊process,預先定義成一個啟動時載入的資料結構。稱為置換者處理程序(“swapper process”)。Process 0

24、fork process 1(the init process)所有系統中的process都是Process 1的child process。當使用者登錄系統,Process 1 建立一User Process 給該使用者。,33,Unix處理程序影像(Process Image),使用者階層序文(User-level context)Process本文(Text):程式的可執行機器指令(code:read-only)Process資料(Data)使用者堆疊(User Stack):calls/returns in user mode共享記憶體(Shared memory):用於行程間通訊(I

25、PC)。只有一份實體,但藉由虛擬記憶體,出現在每個Process的位址空間中。暫存器序文(Register context):處理器狀態資訊。系統階層序文(System-level context)Process表格項:Process的狀態,UID,PID,優先權(priority),等待的事件(event awaiting),已送出但尚未處理的訊號(signals),指向text、data的記憶體指標。使用者區域:額外的Process控制資訊,包括:生效的UID(effective UID),計時器,使用中的檔案(files in use).每個Process的區域表(Per Process

26、 Region Table):記憶體管理用。核心堆疊(Kernel stack):calls/returns in kernel mode,34,處理程序控制 Process Control,建立Process:fork()在Process表格中,配置一個槽(slot)給新的Process。指派唯一的識別碼(unique PID)給child process。child process得到parent process的image的複本。child process擁有parent process所有檔案。分配child process至備妥執行狀態。fork()返回child的 PID給parent process;返回0給child process。上述工作都在parent process的核心模式下執行,核心的分派常式選擇進行下列其中一項工作:停留在parent process,控制權回到使用者模式呼叫fork後的位置。轉移控制權至child process,child process在由fork呼叫返回後同時開始執行。轉移控制權至其他process,但child及parent仍停留在備妥執行狀態。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号