作業系統學習筆記 程序控制

2021-06-06 03:34:11 字數 1719 閱讀 9098

三  程序控制

1.    兩種執行模式

l 系統模式(系統態,控制模式,核心模式):

n 具有較高的特權。

n 執行系統特定的指令,包括讀/寫控制暫存器的指令,基本i/o指令以及與儲存器管理有關的指令,及一些特定的記憶體區。

n 核心模式下的處理機及其指令、暫存器和記憶體收受到完全控制和保護

l 使用者模式(或使用者態):

n 具有較低的特權。

n 使用者程式一般執行在使用者模式。

2.    模式切換

l 使用者模式 → 系統模式:使用者程式執行到一條系統呼叫,程序作業系統核心執行。

l 系統模式 → 使用者模式:執行完系統呼叫的功能,返回到使用者程式。

l 特殊情況:程式執行到結束語句時,切換到系統模式,不再返回到使用者程式。

3.    程序建立

3.1程序建立原因:(p84 表3.1)

l  提交新的批處理作業

l  互動登入:終端使用者登入到系統

l  作業系統提供服務

l  父程序建立子程序

3.2  程序建立:步驟

1)       為程序分配乙個唯一的程序標識號:主程序表中增加乙個新專案。

3)       初始化pcb:程序標識、處理機狀態資訊、程序狀態。

5)       建立或擴充套件其他資料結構

4     程序終止。

4.1   終止原因(p85)

4.2   步驟

1)       根據被終止程序的識別符號id,找到其pcb,讀出該程序狀態

2)       若該程序為執行狀態,則終止其執行,排程新程序執行;

3)       若該程序有子孫程序,則立即終止其所有子孫程序;

4)       將該程序的全部資源,或歸還給其父程序,或歸還給系統

5)       將被終止程序(的pcb)從所在的佇列中移出,等待其他程序來蒐集資訊。

5     程序阻塞與喚醒

l  阻塞原因:請求系統服務;啟動某種操作,如i/o;新資料尚未到達,暫時無新工作可做等;

l  當出現阻塞事件,程序呼叫阻塞原語將自己阻塞。並將其狀態變為「阻塞狀態」,並進入相應事件的阻塞佇列;

l  當阻塞程序期待的事情發生,有關程序呼叫喚醒原語,將等待該事件的程序喚醒。並將其狀態變為「就緒狀態」,插入就緒佇列

l  一般,程序可以自己阻塞自己當喚醒則由作業系統或其他相關程序來完成,程序無法自己喚醒自己。

6   程序掛起與啟用

l  當出現掛起事件,系統裡利用掛起原語將指定程序或乙個阻塞程序掛起。

l  當啟用事件發生,系統利用啟用原語將指定程序啟用。

7.      

程序切換(

從正在執行的程序中收回處理器,然後再使待執行程序來占用處理器)

7.1  切換原因

l  時鐘中斷

n  程序執行完乙個時間片

l  i/o中斷

l  記憶體訪問出錯

l  陷阱

n  執行遇到錯誤

7.2  程序切換vs模式切換

l  程序切換:作用於程序之間的一種操作。當分派程式收回當前程序的cpu並準備把它分派給某個就緒程序時,該操作將被引用。

l  模式切換,程序內部所引用的一種操作。當使用者程式轉入系統呼叫,或相反時,該操作將被引用。

l  程序切換一定引發模式切換(比如從使用者程序切換到下乙個程序或系統程序,要切換一定要執行排程程式,排程程式需要核心處理)。反之則不然。

作業系統學習筆記8 程序控制

程序的建立 1.引起程序建立的事件 使用者登入 作業排程 提供服務 應用請求 2.程序建立的過程 1 申請空白pcb 2 為新程序分配執行所需要的資源 3 初始化程序控制塊 4 如果程序就緒佇列可以接納新程序,把新程序插入就緒佇列。程序的終止 1.引起程序中止的事件 正常結束 異常結束 外界干擾 2...

作業系統 程序控制

附錄 1.程序的建立 include includemain 2.程序的互斥 1 同步 include includemain else else 2 互斥 include includemain else else 3.程序的軟中斷通訊 include include includevoid wa...

作業系統 程序控制

知識總結 目錄 程序控制 1.程序建立 使用者登入,作業排程,列印等會導致新程序的建立 原語 原語 作業系統或 計算機網路用語範疇。是由若干條指令組成的,用於完成一定功能的乙個過程。是由若干個 機器指令 構成的完成某種特定功能的一段程式,具有不可分割性 即原語的執行必須是連續的,在執行過程中不允許被...