第三章处理程序的说明及控制Process Description and Control
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
執行模式的區別及改變
ִ程式狀態字組(Program Status Word, PSW)有一位元表示執行模式。 ִVAX的改變模式指令(CHM):使用者呼叫系統服務,或發生中斷 控制轉移至系統常式時,常式就執行CHM指令﹔返回控制權給使 用者process前,再執行一次CHM進入較低特權模式。
Process的建立
11
置換的需要 The need for swapping
在未使用虛擬記憶體的系統,每個process必須完全地載入 記憶體中才能執行。 由於處理器比I/O動作快太多,即使在多工環境下,處理 器大部分時間仍處於閒置狀態。 解決方法:容納更多的process
ִ擴充主記憶體:如此會增加成本。 ִ置換(swapping) :將process的部分或全部由主記憶體移至磁碟上, 本身也是I/O動作。
21
Figure 3.13 Process List Structures
22
3.3 處理程序控制
大部分處理器支援至少兩種執行模式
ִ較低特權的模式:稱使用者模式(user mode)。 ִ較高特權的模式:稱系統模式(system mode )、控制模式(control mode)、或核心模式(kernel mode)。 ִ理由:作業系統本身及其表格有保護的必要。
使用置換,需增加新的狀態:暫停(suspend )
ִ當所有主記憶體中的process都處於懸置狀態時,系統可將某個 process暫停,並置換至磁碟,其所佔據的主記憶體空間就可釋放 出來給其他process使用。
12
單一暫停狀態
置換之後,選擇載入process的方法
ִ容許新process的產生。問題:將增加系統的負擔。 ִ載入一處於暫停狀態的process。問題:所有暫停process都是 被懸置的process,即使載入也仍無法執行。
5
建立處理程序的原因
新的批次工作:讀入下一個工作控制命令(Job Control Command) 。 互動式登入:使用者在終端機登入到系統。 被作業系統建立來提供服務:產生新process以進行特定功 能,避免使用者等待。 由現有的process產生:為了模組化或平行處理,使用者程 式可建立其他process。
ִ配置一process識別碼,在process表格中加入一新項目。 ִ分配空間,包含process影像(image)的所有元素。 ִProcess控制區塊(Process Control Block)的初始化。 ִ設定Process的鏈結、各種Process佇列、其他資料結構。
23
處理程序切換 (process switch)
process暫停的原因
ִ置換:作業系統必須釋出主記憶體空間,以容許載入其他process。 ִ其他作業系統理由:作業系統可能會暫停背景、工具或產生問題 的process。 ִ互動使用者要求:使用者希望暫停某一process。 ִ時間:如週期性執行的process。 ִparent process要求。
ִ使用者可見暫存器; ִ控制與狀態暫存器:Program Counter, Program Status Word, … ִ堆疊指標。
Process控制資訊(control information):
ִ優先權、排班相關資訊、 ִ事件、結構資訊(process間的資料結構鏈結)、 ִprocess間通訊(inter-process communication)、process的權限、 ִ記憶體管理、資源所有權與使用率。
7
五狀態(five-state)處理程序模型 處理程序模型 五狀態
雙狀態模型不完備之處
ִ未執行狀態的process有兩種情形:(1)可以執行;(2)等待I/O動作 的完成而被懸置(blocked) 。 ִ分派程式必須掃描整個佇列,找出未被懸置且等待最久的process。
擴充雙狀態模型成為五種狀態
ִ執行中(Running) ִ未執行狀態再區分為: 備妥(Ready);懸置(Blocked) ִ另為方便管理process,新增二種狀態: ִ新建(New):剛被系統建立,尚未允許進入執行區。(尚未載入主 記憶體,僅建立表格) ִ離開(Exit):因停止或取消,被系統由執行區離開。(釋放佔用的 主記憶體,但保留相關表格)
Process的屬性
ִProcess控制區塊(Process Control Block):所有屬性的集合。
18
Process控制區塊 控制區塊
Process識別資訊(identification information):該process的識 別碼、parent process的識別碼、使用者識別碼 Process狀態資訊(state information):
ִ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終止。
13
雙暫停狀態
有兩個獨立的概念:
ִ是否等待事件(懸置)、是否被置換 (暫停)
2 * 2組合:共四種狀態:
ִ(1)備妥;(2)懸置;(3)懸置,暫停; (4)備妥,暫停。
14
暫停的其他使用
暫停process的概念
ִProcess無法立即被執行。 ִProcess可能在等待某個事件。 ִProcess可被其他process或作業系統置於暫停狀態。 ִProcess不能離開這個狀態,直到讓它陷入暫停狀態的人解除為止。
何時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.
第三章 處理程序的說明及控制 Process Description and Control
所有多重程式(multi-programmed)作業系統都建立在 process的概念 大部分作業系統需滿足的需求
ִ交錯多個process的執行,在理想反應時間下達到最大的處理器使 用率。 ִ遵從特定的政策(例如,高優先權)來配置資源給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) ,使所有指令的執行產生中斷,以用來偵錯。
從了解process的表示與控制,開始學習作業系統!
1
3.1 處理程序的狀態
從處理器的觀點看process交錯執行
ִ處理器藉由改變程式計數器(Program Counter, PC)的數值,依序執 行指令。 ִ追蹤process的軌跡(trace):列出每個process執行指令的順序。
2
處理程序A, 處理程序 B, C的軌跡 的軌跡
3
Figure 3.1 Snapshot of Example Execution (Figure 3.3) at Instruction Cycle 13
(b)
所有處理程序結合的軌跡
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 --------時間到
16
Figure 3.10 General Structure of Operating System Control Tables
17
Process的控制結構 的控制結構
Process的位置
ִ影像(image):即Process的構成,包含:程式、資料、堆疊與屬性。 ִProcess的image的位置: ִ(a) 連續的記憶體區塊; 或 ִ(b) 一系列不一定連續的區塊。區塊可為不同長度(區段, Segment) , 或使用固定長度(頁, page) ,或二者結合。
8
五狀態處理程序模型(續 五狀態處理程序模型 續)
9
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
15
3.2 處理程序描述 Process Description
作業系統控制結構
ִ作業系統要管理process與資源,必須擁有各process與資源目前狀 態的資訊。 ִ最簡單的方法:作業系統建立並維護所管理實體的資訊表格,包 括:記憶體、輸出入(I/O)、檔案、Process。
Figure 3.9 Processes and Resources (resource allocation at one snapshot in time)
運作模式位元
ִ VM:虛擬8086模式(Virtual 8086 mode)。 ִ VIF (Virtual interrupt flag):用於虛擬8086模式,取代中斷致能旗標(IF)。
狀況代碼
ִ CF:進位旗標(Carry flag)。
20
ቤተ መጻሕፍቲ ባይዱ
Figure 3.12 User Processes in Virtual Memory
5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 (a) 8000 8001 8002 8003 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 (c)
4 Figure 3.3 Combined Trace of Processes of Figure 3.1
雙狀態(two-state)處理程序模型 處理程序模型 雙狀態
Process的兩種狀態:
ִ執行(Running) ִ未執行(Not Running) 。
中斷的process被移至 等待佇列中。 分派程式由佇列中選 擇一個process執行。