2.2.1 進程
一. 進程的概念與特徵
- 定義:
(1)進程是程序的一次執行過程。
(2)進程是一個程序及其數據在處理機上順序執行時所發生的活動。
(3)進程是具有獨立功能的程序在一個數據集合上運行的過程,它是系統資源和調度的獨立單位 - 進程實體 = 程序段 + 數據段 + (進程控制塊)PCB
(PCB是進程存在的唯一標誌) - 組織方式:
(1)鏈接方式
(2)索引方式 - 特徵:
(1)動態性:(最基本的特徵) 是程序的一次執行過程。
(2)併發性
(3)獨立性
(4)異步性:以不可預知速度向前推進,爲此操作系統必須配置進程同步機制
(5)結構性:由程序段 + 數據段 + PCB組成。
二. 進程的狀態與轉換
進程有五種狀態,前三種爲基本狀態
- 狀態
(1)運行態:進程正在CPU上運行。
(2)就緒態:進程獲得除CPU外的一切資源,一旦得到處理機,即可運行。
(3)阻塞態:等待某資源爲可用。(例如:等待打印機的使用)
(4)創建態:進程正在被創建。
(5)結束態:進程正從系統消失。 - 狀態轉換
三. 進程的控制
進程的控制主要對系統中所有進程實施有效的管理。
一般用原語來實現,採用“關中斷指令”和“開中斷指令”,即特權指令。
- 進程的創建
- 進程的終止
- 進程的阻塞和喚醒(成對出現)
- 進程的切換
四. 進程的通信
- 共享存儲(例如:共享內存和共享文件)
分爲兩種:數據結構共享,存儲區共享
注:兩個進程對共享空間的訪問是互斥的 - 消息傳遞(以格式化的消息爲單位)
分爲兩種:直接通信方式(緩衝隊列),間接通信方式(信箱) - 管道通信(pipe)
(1)管道只能採用“半雙工通信”,即單向傳輸。若要互相通信,則需要兩個管道。
(2)寫滿時,不能再寫。讀空時,不能再讀。
(3)沒寫滿,不能讀。沒讀空,不能寫。