收藏 分销(赏)

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

上传人:xrp****65 文档编号:13371364 上传时间:2026-03-09 格式:PPT 页数:34 大小:830KB 下载积分:10 金币
下载 相关 举报
第三章处理程序的说明及控制Process Description and Control.ppt_第1页
第1页 / 共34页
第三章处理程序的说明及控制Process Description and Control.ppt_第2页
第2页 / 共34页


点击查看更多>>
资源描述
按一下以編輯母片標題樣式,按一下以編輯母片本文樣式,第二階層,*,*,*,第三章 處理程序的說明及控制,Process Description and Control,所有多重程式(,multi-programmed),作業系統都建立在,process,的概念,大部分作業系統需滿足的需求,交錯多個,process,的執行,在理想反應時間下達到最大的處理器使用率。,遵從特定的政策(例如,,,高優先權)來配置資源給,process,,且避免死結的發生,。,支援,process,間的相互通訊(,inter-process communication)、,使用者,process,的建立。,從了解,process,的表示與控制,開始學習作業系統!,1,3.1 處理程序的狀態,從處理器的觀點看,process,交錯執行,處理器藉由改變程式計數器(,Program Counter,PC),的數值,依序執行指令。,追蹤,process,的軌跡(,trace):,列出每個,process,執行指令的順序。,2,處理程序,A,B,C,的軌跡,5000800012000,5001 800112001,5002800212002,5003800312003,500412004,5005 12005,5006 12006,500712007,500812008,500912009,501012010,501112011,(,a)(b)(c),Figure 3.1 Snapshot of Example Execution(Figure 3.3)at Instruction Cycle 13,3,3,所有處理程序結合的軌跡,5000,5001,5002,5003,5004,5005,-時間到,100,101,102,103,104,105,8000,8001,8002,8003,-,I/O,請求,100,101,102,103,104,105,12000,12001,12002,12003,12004,12005,-時間到,100,101,102,103,104,105,5006,5007,5008,5009,5010,5011,-時間到,100,101,102,103,104,105,12006,12007,12008,12009,12010,12011,-時間到,Figure 3.3 Combined Trace of Processes of Figure 3.1,4,雙狀態(,two-state),處理程序模型,Process,的兩種狀態:,執行(,Running),未執行(,Not Running)。,中斷的,process,被,移至等待佇列中。,分派程式由佇列中選擇一個,process,執行。,5,建立處理程序的原因,新的批次工作:讀入下一個工作控制命令(,Job Control Command)。,互動式登入:使用者在終端機登入到系統。,被作業系統建立來提供服務:產生新,process,以進行特定功能,避免使用者等待。,由現有的,process,產生:為了模組化或平行處理,使用者程式可建立其他,process。,Process,產生另一,Process,時,彼此為親子關係,(,Parent and Child)。,6,處理程序終止的原因,正常完成(,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 than a specified maximum for an event,管理者或作業系統介入(如發生,deadlock)、,輸出入失敗(,I/O failure,)、,不合法指令(,Invalid instruction,)、,特權指令(,Privileged instruction,)、,資料誤用、,parent process,要求、,parent process,終止。,7,五狀態(,five-state),處理程序模型,雙狀態模型不完備之處,未執行狀態的,process,有兩種情形,:(1),可以執行;(2)等待,I/O,動作的完成而被懸置(,blocked)。,分派程式必須掃描整個佇列,找出未被懸置且等待最久的,process。,擴充雙狀態模型成為五種狀態,執行中(,Running),未執行狀態再區分為:,備妥(,Ready);,懸置(,Blocked),另為方便管理,process,,新增二種狀態,:,新建(,New):,剛被系統建立,尚未允許進入執行區。(尚未載入主記憶體,僅建立表格),離開(,Exit):,因停止或取消,被系統由執行區離開。(釋放佔用的主記憶體,但保留相關表格),8,五狀態處理程序模型(續),9,10,Figure 3.6 Process States for Trace of Figure 3.3,10,圖3.7(,a),有兩個佇列:備妥佇列與懸置佇列,圖3.7(,b),對每一事件分別有一佇列,Figure 3.7 Queuing Model of Figure 3.5,11,11,置換的需要,The need for swapping,在未使用虛擬記憶體的系統,每個,process,必須完全地載入記憶體中才能執行。,由於處理器比,I/O,動作快太多,即使在多工環境下,處理器大部分時間仍處於閒置狀態。,解決方法:容納更多的,process,擴充主記憶體:如此會增加成本。,置換(,swapping):,將,process,的部分或全部由主記憶體移至磁碟上,本身也是,I/O,動作。,使用置換,需增加新的狀態:暫停(,suspend),當所有主記憶體中的,process,都處於懸置狀態時,系統可將某個,process,暫停,並置換至磁碟,其所佔據的主記憶體空間就可釋放出來給其他,process,使用。,12,置換之後,選擇載入,process,的方法,容許新,process,的產生。問題,:將增加系統的負擔。,載入一處於暫停狀態的,process。,問題,:所有暫停,process,都是被懸置的,process,,即使載入也仍無法執行。,單一暫停狀態,13,雙暫停狀態,有,兩個獨立的概念:,是否等待事件(懸置)、是否被置換(暫停),2*2組合:共四種狀態:,(1)備妥;(2)懸置;(3)懸置,暫停;(4)備妥,暫停。,14,暫停的其他使用,暫停,process,的概念,Process,無法立即被執行。,Process,可能在等待某個事件。,Process,可被,其他,process,或作業系統置於暫停狀態。,Process,不能離開這個狀態,直到讓它陷入暫停狀態的人解除為止。,process,暫停的原因,置換:作業系統必須釋出主記憶體空間,以容許載入其他,process。,其他作業系統理由:作業系統可能會暫停背景、工具或產生問題的,process。,互動使用者要求:使用者希望暫停某一,process。,時間:如週期性執行的,process。,parent process,要求。,15,3.2 處理程序描述,Process Description,作業系統控制結構,作業系統要管理,process,與資源,必須擁有各,process,與資源目前狀態的資訊。,最簡單的方法:作業系統建立並維護所管理實體的資訊表格,,,包括:記憶體、輸出入(,I/O)、,檔案、,Process。,Figure 3.9 Processes and Resources(resource allocation at one snapshot in time),16,17,Figure 3.10 General Structure of Operating System Control Tables,17,Process,的控制結構,Process,的位置,影像(,image):,即,Process,的構成,包含:程式、資料、堆疊與屬性。,Process,的,image,的位置:,(,a),連續的記憶體區塊;或,(,b),一系列不一定連續的區塊。區塊可為不同長度(區段,Segment),,或使用固定長度(頁,page),,或二者結合。,Process,的屬性,Process,控制區塊(,Process Control Block):,所有屬性的集合。,18,Process,控制區塊,Process,識別資訊(,identification information):,該,process,的識別碼、,parent process,的識別碼、使用者識別碼,Process,狀態資訊(,state information):,使用者可見暫存器;,控制與狀態暫存器:,Program Counter,Program Status Word,堆疊指標。,Process,控制資訊(,control information):,優先權、排班相關資訊、,事件、結構資訊(,process,間的資料結構鏈結)、,process,間通訊(,inter-process communication)、process,的權限、,記憶體管理、資源所有權與使用率。,19,處理程序的屬性-,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(Virtual interrupt flag):,用於虛擬8086模式,取代中斷致能旗標(,IF)。,狀況代碼,CF:,進位旗標,(,Carry flag)。,20,21,Figure 3.12 User Processes in Virtual Memory,21,22,Figure 3.13 Process List Structures,22,3.3 處理程序控制,大部分處理器支援至少兩種執行模式,較低特權的模式:稱使用者模式(,user mode)。,較高特權的模式:稱系統模式(,system mode)、,控制模式(,control mode)、,或核心模式(,kernel mode)。,理由:作業系統本身及其表格有保護的必要。,執行模式的區別及改變,程式狀態字組(,Program Status Word,PSW),有一位元表示執行模式。,VAX,的改變模式指令(,CHM):,使用者呼叫系統服務,或發生中斷控制轉移至系統常式時,常式就執行,CHM,指令返回控制權給使用者,process,前,再執行一次,CHM,進入較低特權模式。,Process,的建立,配置一,process,識別碼,在,process,表格中加入一新項目。,分配空間,包含,process,影像(,image),的所有元素。,Process,控制區塊(,Process Control Block),的初始化。,設定,Process,的鏈結、各種,Process,佇列、其他資料結構。,23,處理程序切換(,p,rocess 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 the program(ex:file open).The process will probably be blocked.,中斷週期的模式切換(,Mode Switch),儲存目前執行中程式的序文(,context):PSW,PC,其他暫存器、堆疊。,將程式計數器(,PC),設至中斷處理器的位址。,由使用者模式切換至核心模式,讓中斷處理程式可執行特權指令。,24,處理程序切換(,Process Switch),(,續),模式切換(,mode switching)vs.,處理程序切換(,process,switching),(也有稱,context switch,但容易與,thread,切換混淆),模式切換不會改變,process,從執行狀態至另一狀態。,在此情況下,序文(,context),的儲存及之後的回存,額外的負擔較少。,但執行中的,Process,被移至其他狀態,則必須做完整的,process,切換。,Process,切換的步驟:,儲存處理器的序文,包括:程式計數器與其他暫存器,。,更新,Process,控制區塊:改變,Process,執行狀態至另一狀態。將,Process,移至適當的佇列。,選擇另一,Process,來執行(課本第4部分討論)。更新選擇的,Process,的,控制區塊。,更新記憶體管理資料結構。,回存處理器的序文到該,Process,被切換之前。,25,作業系統的執行方式,作業系統的特殊角色,作業系統是電腦軟體,,,也就是處理器執行的程式。,作業系統時常放棄控制,且依賴處理器允許它取回控制權。,作業系統是個,Process,嗎?它如何控制?,非,Process,核心(,Non-process Kernel):,常在舊作業系統見到的方法。,作業系統在所有,Process,外執行,是分開執行的實體,擁有特權模式。,所謂,Process,即為,User Process。,Figure 3.14(a)Separate kernel,26,將,整個作業系統視為,User Process,的內容,作業系統是常式的集合,讓使用者呼叫來執行各種功能,在,User Process,的,環境中執行。,當中斷、陷阱或管理者呼叫發生,處理器就進入核心模式,並將控制權交給作業系統。,並未做處理程序切換,只進行了模式切換。作業系統碼以共享的方式,被,User Process,所執行。,與,User Process,一起執行,Figure 3.14(b),OS functions execute within user processes,27,與,User Process,一起執行(續),在核心模式時,,,使用分開的核心堆疊(,kernel stack),管理呼叫/返回。,作業系統在共享的位址區域,可被所有,User Process,共享,28,Figure 3.15 Process Image:Operating System Executes Within User Space,28,處理程序為基礎的作業系統,Process-based Operating System,將作業系統視為許多,Process,的集合,主要的核心函數組織成分離的,Process,優點:,模組化的設計。,採,Process,設計,各函數可以設定不同的優先權執行,並與其他,Process,交錯執行。,對多處理器或分散式系統而言,可將作業系統服務移至其他處理器上執行,來提昇效率。,Figure 3.14(c)OS functions execute as separate processes,29,3.4,Unix SVR4 Process,管理,大部分,Unix,作業系統的功能,都在,User Process,的環境下執行。(圖3.14(,b),的模式),使用兩種類型的,Process,System 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,及被先佔,Preempted:,二者本質上相同,,,只是區別進入此狀態的途徑,二者也放在同一佇列上,。,先佔動作(,Preemption),只發生在,Process,由,kernel,轉移至,user mode,時。使得,Unix,不適於即時處理(,Real-time processing)。,30,31,Figure 3.16 UNIX Process State Transition Diagram,31,Unix System Processes,Process 0,是在系統啟動時(,boot time),建立的特殊,process,,預先定義成一個啟動時載入的資料結構。,稱為置換者處理程序(“,swapper process”)。,Process 0 fork process 1(the init process),所有系統中的,process,都是,Process 1,的,child process。,當使用者登錄系統,,,Process 1,建立一,User Process,給,該使用者,。,32,Unix,處理程序影像(,Process Image),使用者階層序文(,User-level context),Process,本文(,Text):,程式的可執行機器指令,(,code:read-only),Process,資料(,Data),使用者堆疊(,User Stack):calls/returns in user mode,共享記憶體,(,Shared memory):,用於行程間通訊(,IPC)。,只有一份實體,,,但藉由虛擬記憶體,,,出現在每個,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 Region Table):,記憶體管理用,。,核心堆疊(,Kernel stack):calls/returns in kernel mode,33,處理程序控制,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,仍停留在備妥執行狀態。,34,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服