處理機管理也稱為程序管理,其核心是如何合理地分配處理時間,提高系統的效率。在計算機系統中有多個併發執行程式,採用「程式」這個靜態的概念已經不能描述程式執行時動態變化的過程,所以引入了「程序」。
1、基本概念
(1)程式執行時的特徵
程式順序執行時的主要特徵如下:
①順序性:程式的各程式段嚴格按照規定的順序執行;
②封閉性:程式執行時系統內的資源只受該程式控制而改變,執行結果不受外界因素的影響。
③可再現性:只要程式執行環境和初始條件相同,多次執行的結果一致。
程序管理-前趨圖:
前趨圖是用於描述程式執行順序的乙個有向無迴圈圖,由結點和有向邊組成,結點代表程式段的操作,而結點間的有向邊表示兩個程式段操作之間存在的前趨關係(→)。程式段pi和pj的前趨關係表示成pi→pj,其中pi是pj的前趨,pj是pi的後繼,其含義是pi執行結束後pj才能執行。例如,下圖為三個程式段,其中輸入是計算的前驅,計算是輸入的後繼。
前趨圖示例:包餃子
①:絞肉
②:切蔥末
③:切薑末
④:攪拌佐料
⑤:包餃子
2、程序的組成
程序(process)是程式的一次執行,是進行資源分配和排程的基本單位。程序通常由程式、資料和程序控制塊(pcb)組成。其中,程式部分描述了程序需要完成的功能。假如,乙個程式能被多個程序同時共享執行,那麼這部分就應該以可再入碼的形式編制,它是程式執行時不可修改的部分。資料部分包括程式執行時所需的資料及工作區,這部分只能為乙個程序所專用,是程序的可修改部分;為了描述和控制程序的執行,系統為每個程序定義了乙個資料結構——程序控制塊(pbc),它是程序重要的組成部分,它記錄了作業系統所需的、用於描述程序的當前狀態和控制程序的全部資訊,作業系統根據程序的pbc來感知程序的存在,並依此對程序進行管理和控制,程序控制塊是程序存在的唯一標誌。
程序的主要內容如表所示:
3、程序的狀態及其狀態間的切換
(1)三態模型
在多道程式系統中,程序的執行是走走停停,在處理器上交替執行,狀態也不斷地發生變化,因此程序一般有三種基本狀態:執行、就緒和阻塞。
●執行:當乙個程序在處理機上執行時,稱該程序處於執行狀態。顯然,對於單機處理系統,處於執行狀態的程序只有乙個。
●就緒:乙個程序獲得了除處理機外的一切所需資源,一旦得到處理機即可執行,則稱此程序處於就緒狀態。
●阻塞:也稱為等待或睡眠狀態,乙個程序正在等待某一事件發生(例如請求i/o而等待i/o完成等)而暫停執行,這時即使把處理機分配給此程序,它也無法執行,稱此程序處於阻塞狀態。
(2)五態模型
事實上,對於乙個實際的系統,程序的狀態及其轉換將更複雜,三態模型不能夠滿足我們的需求,所以產生了五態模型。
計算機 (一)進製轉換
前面小知識點 資訊科技 第三次工業革命 人工智慧 第四次工業革命 資料是資訊的符號化表示 位元 bit 是計算機的最小單位 位元組 byte 是計算機的基本單位 下面寫計算機的儲存容量 1bit 8 byte 1kb 1024b 1mb 1024kb 1gb 1024mb 1tb 1024gb 1p...
「走進計算機深處」 Linux 程序(一)
什麼是程序?程序是為了提高cpu的執行效率,減少因為程式等待帶來的cpu空轉以及其他計算機硬體資源浪費而提出的。描述程序 pcb 程序資訊被放在乙個叫做程序控制塊的資料結構中,可以理解為程序屬性的集合。課本上稱之為pcb process control block linux作業系統下pcb是tas...
如何在本地程序中呼叫遠端計算機上的程序
回答這個問題其實就是rpc的程式設計 開發rpc應用程式,乙個重要的要素就是介面。顯然在 客戶和伺服器的介面存根必須基於完全相同的函式定義上 否則rpc會失敗。1.定義介面 hello.idl uuid 0eb13191 f7c4 11d3 bf4a 00104b17a4fb 注意你必須在自己的程式...