程序基本概念
一 程序(process)
2程序狀態(process state):就是程序的生命狀態,描述程序所表現的行為。
2.1兩狀態程序模型
說明:程序狀態分為:執行態、非執行態。
2.2五狀態模型
說明:新建態:剛剛建立的程序,os並沒有將其排程至可執行程序佇列中。
執行態:該程序正在執行。
就緒態:程序做好的執行的準備,等待系統排程執行。
阻塞態(等待態):程序正在等待某些事情發生後才能繼續執行,如i/o操作。
退出態:已經執行完的程序被釋放,或者程序自身停止,或者因為其他原因被終止。
2.3狀態之間的轉換
空---->新建:建立乙個新程序。
新建---->就緒: 作業系統準備再接納乙個程序時,將其從新建態轉換到就緒態。
就緒---->執行:作業系統選擇乙個程序執行時,從就緒程序中選擇。
執行---->退出:程序已經執行結束或者被取消。
執行---->就緒:出現這種情況最大的可能原因有兩個:一是,該程序執行時間超過了系統規定的時間片。二是,在基於優先順序設計的系統中,當有乙個比正在執行的程序的優先順序高的程序進入到就緒態時,系統會優先排程該優先順序高的程序執行,並將當前執行程序轉換到就緒態。
執行---->阻塞:一般是因為程序請求必須等待某些事情發生,如i/o操作。
阻塞---->就緒:當程序等待的事情發生後,處於阻塞態的程序轉換到就緒態。
就緒---->退出:父程序可以在任何時刻終止乙個子程序。(一般情況下)
阻塞---->退出:原因同上。
3程序描述--程序控制塊(pcb)
程序控制塊是一種資料結構,包含程序的屬性,如pid,狀態等。是由作業系統建立和管理的。是作業系統支援多程序和提供多重處理技術的關鍵技術。
程序映像:使用者資料,使用者程式,系統棧,程序屬性(pcb)的集合。
4程序建立和終止
4.1導致程序建立的原因
程序建立的原因 事件
說明新的批處理事件
通常是磁帶或者磁碟中的批處理作業控制流被提供給os
互動登陸
終端使用者登入到系統
os因為提供一項服務而建立
os可以建立程序代表使用者程式執行乙個功能
由現有程序派生(spawned)
使用者程式可以建立多個程序
4.2 程序終止原因
程序終止的原因事件
說明正常完成
程序自行執行乙個os服務,表示其已經結束執行
超過時限
程序執行超過規定的執行時間
記憶體不足
系統無法滿足程序需要的記憶體空間
越界程序檢視訪問不允許訪問的記憶體單元
4.3程序建立基本步驟
a 給新進場分配乙個唯一的程序識別符號。
b給程序分配空間。
c初始化程序控制塊
d設定正確的連線
e建立或者擴充其他資料結構
4.4程序切換
模式切換:使用者態和核心態之間的切換,可以不改變正在執行的程序的狀態。
程序切換:某一時刻,乙個正在執行的程序被中斷,作業系統排程另乙個程序為執行態,並把控制權交給該程序。
程序切換步驟:
a儲存處理器上下文環境,包括程式計數器和其他暫存器。
b更新當前處於執行態程序的程序控制塊。
c將程序的程序控制塊移到相應的佇列。
d作業系統排程選擇另乙個程序執行。
e更新所選擇程序的程序控制塊。
f更新記憶體管理的資料結構。
g當前程序執行結束後,恢復上乙個程序被切換出執行態是的上下文資訊。
程序相關概念
1.程式與程序 程式是指編譯好的二進位制檔案,在磁碟上,不占用系統資源 cpu 記憶體 開啟的裝置 程序是活躍的程式,占用系統資源,在記憶體中執行 程式執行起來會產生乙個程序 程式就好比是劇本,而程序就是按照劇本演的戲 舞台 演員 道具等就相當於系統資源 同乙個劇本可以在多個地方同時上演,同乙個程式...
Windows程序執行緒相關概念
需要程序的原因 多道程式在執行時,需要共享系統資源,從而導致各程式在執行過程中出現相互制約的關係,程式的執行表現出間斷性 非封閉性 不可再現性等特徵。傳統的程式本身是一組指令的集合,是乙個靜態的概念,無法描述程式在記憶體中的執 況,故引入程序的概念。多道程式併發執行,提高系統吞吐量和系統資源利用率 ...
Linux系統 程序相關的概念
1.程式和程序 程式 是編譯好的二進位制檔案,存放在磁碟上,占用的是磁碟空間,是乙個靜態的概念。程序 乙個啟動的程式,程序占用的是系統資源,如 物理記憶體,cpu,終端等,是乙個動態的概念。程式 劇本 程序 戲 舞台,演員,燈光,道具.同乙個劇本可在多個舞台上演出,所以同乙個程式可以在多個終端執行,...