2.1.1進程的定義、組成、組織方式、特征


進程的定義、組成、組織方式、特征

image-20210916171758428

一、進程的定義

程序

程序:就是一個指令序列

​ 早期的計算機(只支持單道程序):內存中在同一時刻同一時間段內,只會存在一個程序相關數據,包括程序段數據段;CPU和I/O設備也被一個程序占有。程序的代碼放在程序段內,程序運行過程處理的數據放在數據段內(如變量)


​ 引入多道程序后,內存中同時放入多道程序,各個程序的代碼、運算數據存放的位置不同。操作系統要怎么才能找到各程序的存放位置呢?

​ 系統為每個運行的程序配置一個數據結構,稱為進程控制塊(PCB),用來描述進程的各種信息(如程序代碼存放位置)

​ 為了方便操作系統管理,完成各程序並發執行,引入了進程、進程實體的概念

PCB、程序段、數據段三部分構成了進程實體(進程映像)。一般情況下,我們把進程實體就簡稱為進程,例如,所謂創建進程,實質上是創建進程實體中的PCB;而撤銷進程,實質上是撤銷進程實體中的PCB。

​ 注意:PCB是進程存在的唯一標志!

定義

​ 從不同的角度,進程可以有不同的定義,比較傳統典型的定義有(強調“動態性”):

​ 1.進程是程序的一次執行過程

​ 2.進程是一個程序及其數據在處理機上順序執行時所發生的活動

​ 3.進程是具有獨立功能的程序在數據集合上運行的過程,它是系統進行資源分配和調度的一個獨立單位

​ 引入進程實體的概念后,可把進程定義為:

進程是進程實體的運行過程,是系統進行資源分配調度的一個獨立單位。

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



二、進程的組成

​ 進程(進程實體)由程序段、數據段、PCB三部分組成。

​ PCB:操作系統通過PCB來管理進程,因此PCB中應該包含操作系統對其進行管理所需的各種信息。

​ 程序段:程序代碼即存放在此

​ 數據段:程序運行時使用、產生的運算數據。如全局變量、局部變量、宏定義的常量就存放在數據段內

image-20210916174035317

image-20210916174122402



三、進程的組織

​ 在一個系統中,通常有數十、數百乃至數千個PCB。為了能對他們加以有效的管理,應該用適當的方式把這些PCB組織起來。

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

image-20210916174529605

image-20210916174623782

image-20210916174716552



四、進程的特征

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

image-20210916174834401

​ 動態性是進程最基本的特征

​ 進程是資源分配、接受調度的基本單位

​ 異步性會導致並發程序執行結果的不確定性。具體會在“進程同步”相關小節進行學習



image-20210916175626501


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM