程序的定義 組成 組織方式 特徵

2022-08-31 23:06:27 字數 1931 閱讀 9444

程式:就是乙個指令序列

早期的計算機(只支援單道程式)

pcb、程式段、資料段三部分構成了程序實體(程序映像),一般情況下,我們把程序實體簡稱為程序,例如,所謂建立程序,實質上是建立程序實體中的pcb;而撤銷程序,實質上是撤銷程序實體中的pcb

從不同的角度,程序可以有不同的定義,比較傳統典型的定義有:

1.程序是程式的一次執行過程

2.程序是乙個程式及其資料在處理機上順序執行時發生的活動

3.程序是具有獨立功能的程式在資料集合上執行的過程,它是系統資源分配和排程的乙個獨立單位

強調動態性

引入程序的實體概念後,可以把程序定義為:

程序是程序實體的執行過程,是系統進行資源分配和排程的乙個基本單位

注:嚴格來說,程序實體和程序並不一樣,程序實體是靜態的,程序則是動態的。不過,除非題目專門考察二者區別,否則認為程序的實體就是程序。因此我們也可以說「程序是由程式段、資料段、pcb三部分組成」

pcb作業系統通過pcb來管理程序,因此pcb中應當包含作業系統對其進行管理所需的各種資訊

程式段程式**存放在此

資料段程式執行時使用、產生的運算資料,如全域性變數、區域性變數。巨集觀定義的常量存放在資料段內

程序識別符號pid 當程序被建立時,作業系統會為該程序分配乙個唯一的,不重複的id,用於區分不同的程序(類似於身份證號)

各種暫存器值 當程序切換時需要把程序當前的運**況記錄下來儲存在pcb中,如出現計數器的值表示了當前程式執行到哪一句

程序的管理者(作業系統)所需的資料都在pcb中

程式段、資料段程式本身執行所需的資料

在乙個系統中,通常有數

十、數百乃至數千個pcb。為了能對他們加以有效的管理,應當用適當的方式把這些pcb組織起來

注:程序的組成討論的是乙個程序內部由哪些部分構成的問題,而程序的組織討論的是多個程序之間的組織方式問題

程序的組織--鏈結方式

執行指標 指向當前處於執行狀態(執行態)的程序 單cpu計算機中,同一時刻只會有乙個程序處於執行態

就緒佇列指標 指向當前處於就緒態的程序 通常會把優先順序高的程序放在隊頭

阻塞佇列指標 指向當前處於阻塞態的程序,很多作業系統還會根據阻塞原因不同,再分為多個阻塞佇列

程序的組織--索引方式

程序和程式是兩個截然不同的概念,相比於程式,程序擁有以下特徵:

動態性、併發性、獨立性、非同步性、結構性

動態性 程序是程式的一次執行過程,是動態地產生、變化和消亡的

併發性 記憶體中有多個程序實體,各程序可併發執行

獨立性 程序是能獨立執行、獨立獲得資源、獨立接受排程的基本單位

非同步性 各程序按各自獨立的、不可預知的速度向前推進,作業系統要提供「程序同步機制」來解決非同步問題

結構性 每個程序都會配置乙個pcb 結構上看,程序由程式段、資料段、pcb組成

動態性是程序最基本的特徵 程序是資源分配、接受排程的基本單位

程序的描述與組織

程序需要一定資源才能執行,最重要的資源是記憶體位址空間,此外還可能需要使用檔案 裝置等。這些資源均由核心負責管理和分配。分配給程序的資源登記在程序的pcb中。程序的乙個重要構成成分是程序映像,即程序所執行的 和資料在記憶體中的呈現。為了容納程序的映像,那個程序都有乙個自己的記憶體位址空間,這是程序執...

程序的組成部分

在linux系統中程序由以下三部分組成 程序控制塊pcb 資料段 正文段。linux系統為了節省程序控制塊所佔的記憶體空間,把每個程序控制塊分成兩部分。一部分常駐記憶體,不管程序是否正占有處理器執行,系統經常會對這部分內容進行查詢和處理,常駐部分內容包括 程序狀態 優先數 過程特徵 資料段始址 等待...

作業系統的多程序組織 程序間切換

使用者使用計算機就是啟動了一堆程序 使用者管理計算機就是管理這一堆程序 即根據pcb 根據狀態形成不同的佇列放在不同的位置。多個程序如何組織呢?用pcb放在不同的佇列中 就緒 阻塞 用狀態轉化來推進多個程序的執行 排程選擇下乙個程序,得到下乙個程序的pcb,把上乙個程序的執行現場儲存起來,把下乙個程...