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