2.進程

進程管理

  • 進程的基本概念
  • 進程與程序的區別
  • 進程控制
  • 進程同步
  • 進程通訊
  • 線程

進程的基本概念

  • 程序在併發環境中的執行過程
  • 資源分配和獨立運行的基本單位

程序的順序執行

一個有4條語句的程序段:算法

S1:a:=x+2;緩存

S2: b:=y+4;併發

S3: c:=a+b;異步

S4: d:=c+b;spa

程序順序執行的特徵

  • 順序性
  • 封閉性
  • 可再現性

順序性

處理機的操做嚴格按照程序所規定的順序執行,即每個操做必須在下一個操做以前結束。操作系統

封閉性

程序在封閉的環境下執行,結果不受外界因素的影響。線程

可再現性

只要環境和初始條件相同,程序重複執行時總獲得相同結果。指針

程序的併發執行

一個有4條語句的程序段:code

S1:a:=x+2;對象

S2: b:=y+4;

S3: c:=a+b;

S4: d:=c+b;

S1和S2能夠同時執行-》S3-》S4

程序併發執行的特徵

  • 間斷性 共享、合做、制約致使,執行->暫停->執行
  • 失去封閉性 資源狀態由多程序改變
  • 不可再現性 相同環境和初始條件, 重複執行,結果不一樣

程序A

L1:
    N:=N+1
goto L1

程序B

L2:
    PRINT (N)
    N:=0
goto L2

設共享變量N初始值爲5,則會產生3種執行結果:

6,6,0
5,0,1
5,6,0

進程的特徵

  • 結構特徵
  • 動態性
  • 併發性
  • 獨立性
  • 異步性
進程的結構 功能描述
進程控制塊(PCB) 動態特徵的集中反映
程序段 描述要完成的功能
數據段 操做對象及工做區

動態性

  • 進程最基本的特徵是動態性
  • 進程的生命週期:

進程由建立產生,由調度而執行,由撤銷而消亡的過程。

併發性

多個進程同在內存中,且能在一段時間內同時運行。

獨立性

進程是一個能獨立運行、獨立分配資源、獨立接受調度的基本單位

異步性

進程按各自獨立的、不可預知的速度向前推動

進程的定義

進程是進程實體的運行過程,是系統進行資源分配和調度的基本單位。

進程和程序的關係

(1)進程是一個動態概念,程序是一個靜態概念

(2)進程具備並行特徵,程序沒有

(3)進程是競爭資源的基本單位

(4)一個程序對應多個進程,一個進程爲多個程序服務。

進程的三種基本狀態

  • 就緒狀態
  • 運行狀態
  • 阻塞狀態

就緒狀態

  • 進程已經分配了除處理機之外的全部必要資源,只要再得到處理機就能執行的狀態
  • 這樣的進程能夠有多個,一般排成一個隊列,稱就緒隊列。

執行狀態

  • 已經得到CPU,正在運行
  • 在單處理機系統中,只有一個進程處於執行狀態。多處理機系統則有多個處於執行狀態。

阻塞狀態

  • 正在執行的進程因爲發生了某事件而暫時沒法繼續執行時,放棄處理機而進入的狀態,又稱等待狀態
  • 引發阻塞的事件:請求I/O,申請緩存。

掛起狀態

  • 引入緣由

(1)終端用戶請求
(2)父進程請求
(3)負荷調節須要(通常在實時操做系統中使用)
(4)操做系統的須要

掛起引發的狀態轉換

靜止狀態(掛起狀態)
活動狀態(非掛起狀態)

引入掛起概念後,原先的進程的三種狀態就變成了5種:

(1)執行
(2)活動就緒
(3)靜止就緒
(4)活動阻塞
(5)靜止阻塞

進程控制塊

Process Control Block

  • PCB是OS中最重要的記錄型結構
  • OS用PCB對併發進程進行管理和控制
  • PCB是進程存在的惟一標誌
  • PCB常駐內存
  • PCB專門開闢PCB區將全部的PCB組織成若干個鏈表或隊列

結構體(structure)

  • for example:一個學生的天然信息(姓名,性別,年齡,生日……)

PCB中的信息

(1)進程標識符

(2)處理機狀態

(3)進程調度信息

(4)進程的控制信息

進程標識符

(1)內部標識符

進程惟一的數字編號,給OS使用

(2)外部標識符

由字母、數字組成,給用戶使用

處理機狀態

  • 處理機中的主要寄存器

(1)通用寄存器8~32個,暫存信息用

(2)指令計數器 要訪問的下一條指令的地址

(3)程序狀態字PSW 條件碼、執行方式、中斷屏蔽標誌

(4)用戶棧指針 用戶進程擁有的系統棧,存放過程和系統調用參數及調用地址。

進程調度信息

  • 進程狀態
  • 進程優先級
  • 與調度算法有關信息
  • 事件 如:阻塞緣由

進程控制信息

  • 程序和數據地址
  • 進程同步和通訊機制
  • 資源清單:除CPU以外的所需資源與已經分配資源清單
  • 連接指針:本進程PCB所在隊列的下一個地址

PCB的組織方式

(1)連接方式

把統一狀態的PCB,用其中的連接字連接成一個隊列。如,就緒隊列、阻塞隊列(根據不一樣阻塞緣由)、空白隊列。

(2)索引方式

創建就緒索引表、阻塞索引表等。把索引表在內存的首地址放在內存的專用單元中。

連接方式

索引方式

相關文章
相關標籤/搜索