《作業系統 精髓與設計原理》 程序描述和控制

2021-07-29 01:09:54 字數 1618 閱讀 1166

作業系統必須交替執行多個程序,在合理的響應時間範圍內使處理器的利用率最大

作業系統必須按照特定的策略給程序分配資源,同時避免死鎖

作業系統可以支援程序間的通訊和使用者建立程序,它們對構建應用程式很有幫助

程序乙個正在執行中的程式

乙個正在計算機上執行的程式例項

能分配給處理器並由處理器執行的實體

乙個具有以下特徵的活動單元: 一組指令序列的執行、乙個當前狀態和相關的系統資源集

程序的基本元素: 程式** 和 與**相關的資料集

程序控制塊(process control block)由作業系統建立和管理  含有充分的資訊包括每個程序具備的元素  

唯一識別符號 狀態    優先順序  程式計數器(程式中即將被執行的下一條指令位址)  記憶體指標(程式**和程序相關資料的指標)  上下文資料(程序執行時處理器的暫存器中的資料) i/o狀態資訊(包括顯式的) 記賬資訊

軌跡(trace) 可以通過列出為該程序執行的指令序列描述單個程序的行為 這樣的序列稱為程序的軌跡

導致程序建立的原因   新的批處理作業  使用者互動登入  作業系統提供服務而建立   由現有的程序派生

導致程序終止的原因   正常完成 超過時限 無可用記憶體  越界訪問  保護錯誤 算術錯誤  等待時間超出 i/o失敗  無效指令 特權指令 資料誤用 作業系統干涉  父程序終止  父程序請求

五狀態模型   新建態 就緒態   阻塞態 執行態 退出態

執行態 該程序正在執行

就緒態 該程序做好了準備  有機會就開始執行

阻塞態  程序在某些事件發生前不能執行

新建態  程序剛幫被建立  還未載入到作業系統的可執行程序組當中

退出態  從作業系統的可執行程序中刪除

交換:把記憶體中某個程序的一部分或者全部移到磁碟中   (是乙個磁碟i/o操作)  

作業系統就把阻塞的程序換出到磁碟中的掛起佇列中(suspend queue)  當記憶體中沒有處於就緒狀態的程序時,從磁碟中換入程序

掛起態  換入    就緒態

阻塞態  換出    掛起態

掛起程序  

程序不能立即執行 

程序可能是或者不是在等待乙個事件(如果是 阻塞條件不依賴於掛起條件 阻塞事件的發生不會使程序立即被執行)

為阻止程序執行,可以通過**把這個程序置於掛起狀態  **可以是 程序自己 父程序 作業系統

除非**顯式的命令系統進行狀態轉移 否則程序無法從該狀態中轉移

導致程序掛起的原因   交換   使用者請求   父程序請求  定時 其他原因

作業系統的控制結構

作業系統為了管理程序和資源 必須掌握每個程序和資源當前狀態的資訊

作業系統構造並維護這每個實體的資訊表 (四種型別  記憶體表  i/o表  檔案表  程序表)

處理器的執行模式  特權態(系統態 控制態 核心態)  非特權態

程序控制塊中的資訊可以分成三類  程序標識資訊  程序狀態資訊  程序控制資訊

程序建立   分配唯一程序識別符號  給程序分配空間 初始化程序控制塊  儲存到作業系統中  擴充其他資料結構

程序切換   某一時刻,正在執行的程序被中斷,作業系統指定另乙個程序為執行態,控制權交給該程序

程序切換時機     系統時鐘中斷(程序執行超時) i/o中斷  記憶體失效  陷阱(出現錯誤)

程序描述和控制 作業系統精髓與設計

作業系統設計必須滿足某些一般性的需求,大多數需求都涉及程序 程序的定義 也可以把程序當作一組元素的實體,程序的兩個基本元素是程式 可能被執行相同程式的其他程序共享 和與 相關聯的資料集。假設處理器開始執行該程式 且我們把這個執行實體成為程序。在程序執行時,任意給定乙個時間,程序都可以唯一的被表徵為以...

作業系統精髓與設計原理 三 程序

程序的兩個基本組成元素 1.程式 2.資料集 程序控制塊 程序控制塊是支援多程序的關鍵工具,程序中斷時,作業系統會把程式計數器和上下文資料儲存到程序控制塊中,程序的狀態也相應的改變為其他值,支援後來恢復程序的執行.識別符號 用來區分其他程序 狀態 執行態等 優先順序 程序的優先順序 記憶體指標 程式...

《作業系統 精髓與設計原理》 作業系統概述

作業系統為應用程式提供與硬體互動的介面,它的主要功能是為執行中的程式動態地分配可共享的系統資源,與之相關的研究主要涉及記憶體 程序及外設的管理和排程。相鄰層次間的介面不斷改變。一方面,原來由作業系統負責的功能被遷移到硬體中,另一方面,一些與應用程式解決的問題無關的程式化函式也被加入作業系統中 作業系...