作業系統原理學習筆記(六) 程序控制

2021-10-10 07:48:29 字數 2313 閱讀 3920

作業系統原理學習筆記目錄

作業系統核心

系統態/管態/核心態:能執行一切指令。

使用者態/目態:僅能執行規定的指令。

大多os核心都包含以下兩方面功能:

支撐功能:提供給其他模組所需的基本功能,包括但不限於:

中斷處理、時鐘管理、原語操作。

原語(primitive):使用原子操作(action operation)的若干指令集合,用來完成特定功能。

原子操作:不可中斷的操作。

資源管理功能:程序管理、儲存器管理、裝置管理。

程序的建立(creation of process)

程序的層次結構:

程序可以建立其他程序,兩者為父子關係,父程序建立子程序,多層的父子關係為祖先與子孫。

在撤銷父程序時應該先撤銷子程序。

在windows中,不存在層次結構,所有程序地位相同,父子關係被控制代碼代替,擁有這個控制代碼,就可以控制該程序,控制代碼可以傳遞。

程序圖:

用來描述程序間關係的有向圖,有向邊表示程序間的父子關係。

引起建立程序的事件:

使用者登入:在分時系統中,使用者在終端輸入登入命令且成功後,系統會為其建立乙個程序,並納入就緒佇列中。

作業排程:在多道批處理系統中,作業排程程式排程到某個作業時,會將其裝入記憶體,建立程序,插入就緒佇列中。

提供服務:使用者提出請求後,系統建立乙個程序來提供其所需的服務。

應用請求:與上面三種由系統建立的程序事件不同,該類事件是由使用者程序自己建立新程序。

程序的建立:

系統出現建立程序的請求後,os會呼叫建立原語creat按以下步驟建立程序:

申請空白pcb。

分配所需資源(此時os需知道其需要多少資源)。

pcb初始化。

插入就緒佇列。

程序的終止(termination of process)

引起終止的事件分為三類:正常結束、異常錯誤、外界干預:

正常結束

批處理系統

程式的最後會安排一條halt指令,執行到halt指令時,產生中斷,通知os。

分時系統

使用者利用logs off表示程序執行完畢,產生中斷,通知os。

異常結束

越界錯程式訪問的儲存區超出該程序的區域。

保護錯程序試圖訪問不允許訪問的資源檔案,如訪問唯讀檔案。

非法指令

程式試圖執行不存在的指令,可能是因為資料被當成了指令。

特權指令錯

使用了不被允許使用的指令。

執行超時

執行時間超出指定的最大時間。

等待超時

等待時間超出規定的最大時間。

算術運算錯

程式試圖執行被禁止的運算,例如,以0為除數。

i/o故障

i/o過程中發生錯誤

外界干預

操作員/os干預

程式發生某事件,如死鎖,被操作員強制關閉。

父程序請求

子程序完成父程序交代的任務後,父程序可請求關閉子程序。

因父程序終止

父程序終止時,子程序也應當結束。

程序的終止過程:

os呼叫程序終止原語,執行一下過程:

根據被終止程式的識別符號,從pcb集合中檢索該程序pcb,讀出程序狀態。

若程序處於執行狀態,立即終止該程序的執行,置排程標誌為真,用於指示該程序被終止後應重新進行排程。

若程序還有子孫程序,也應一同終止。

返還程序資源。

將程序pcb從所在佇列移出,等待其他程式收集資訊。

程序的阻塞與喚醒

引起程序阻塞與喚醒的事件:

想系統請求共享資源失敗、等待某種操作完成、新資料尚未到達、等待新任務到達。

程序阻塞過程(主動行為):

程序呼叫阻塞原語block將自己阻塞,進入block過程後,由於該程序處於執行狀態,應立即停止執行,並改變pcb中的現行狀態:由執行改為阻塞,並將pcb插入阻塞佇列。

程序的掛起與啟用

程序的掛起:

os使用掛起原語suspend將其掛起:先檢查程序狀態,若處於活動就緒,則改為靜止就緒;若為活動阻塞,則改為靜止阻塞;之後將其pcb複製進制定的記憶體區域,若被掛起的程式正在執行,則轉向排程程式重新排程。

程序的啟用:

os利用啟用原語active將程序啟用:先從外存調入記憶體,檢查現行狀態,若為靜止就緒,則改為活動就緒;若為靜止阻塞,則改為活動阻塞。

若採用搶占排程策略,則每當有靜止就緒程序被啟用而插入就緒佇列時,應檢查是否需要重新排程,即由排程程式比較被啟用程序與當前程序的優先順序,高的執行,低的中斷。

作業系統原理學習筆記 程序管理

標籤 資料結構 primitive 儲存演算法 io作業 舉報分類 os 4 程序管理 程序的引入 程式併發執行 程序的概念 程序的特徵 引入程序帶來的問題 程序的結構 pcbpcb的組織方式 pcb多級佇列 程序的狀態 程序的五狀態 問題 多個程序競爭記憶體資源 解決方法 對換技術,交換技術 程序...

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

三 程序控制 1.兩種執行模式 l 系統模式 系統態,控制模式,核心模式 n 具有較高的特權。n 執行系統特定的指令,包括讀 寫控制暫存器的指令,基本i o指令以及與儲存器管理有關的指令,及一些特定的記憶體區。n 核心模式下的處理機及其指令 暫存器和記憶體收受到完全控制和保護 l 使用者模式 或使用...

作業系統 程序控制

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