操作系統-2

進程

一、進程的定義

程序:就是一個指令序列
爲了方便操作系統管理,完成各程序併發執行,引入了進程、進程實體的概念。
系統爲每個運行的程序配置了一個數據結構,稱爲進程控制塊(PCB),用來描述進程的各種信息(如程序代碼的存放位置)。

程序段、數據段、PCB三部分組成了進程實體(進程映像),一般來說我們把進程實體稱爲進程。

PCB是進程存在爲唯一標誌。

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

進程實體是靜態的,進程是動態的。

在這裏插入圖片描述
在這裏插入圖片描述

進程控制塊(PCB)

在這裏插入圖片描述

進程的組織(鏈接方式、索引方式)

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

進程的特徵(動態性、併發性、獨立性、異步性、結構性)

在這裏插入圖片描述

總結

在這裏插入圖片描述

二、進程的狀態

進程程序的一次執行,在這個執行過程中,有時候進程正在被CPU處理,有時又需要等待CPU服務,可見,進程的狀態會有各種變化,爲了方便對各個進程的管理,操作系統需要將進程合理劃分爲幾種狀態。

五種基本狀態(運行、就緒、阻塞、創建、終止)

  • 運行態:佔用CPU,並在CPU上運行
  • 就緒態:已經具備運行條件,但是由於沒有空閒CPU,而暫時不能運行
  • 阻塞態:因等待某一事件而暫時不能運行。

進程狀態的轉換

在這裏插入圖片描述

小結

在這裏插入圖片描述

三、進程控制(實現進程狀態轉換)

在這裏插入圖片描述

進程控制的主要功能就是對系統中的所有進行實施有效的管理,它具有創建新進程、撤銷已有進程、實現進程狀態轉換等功能。

簡單理解即進程控制就是實現進程狀態轉換。
在這裏插入圖片描述

1、如何實現進程控制?

在這裏插入圖片描述
在這裏插入圖片描述

如果狀態改變了,在把PCB放入相應的隊列的時候被中斷了。這就會產生問題,所以引入了原語。

原語:用原語實現進程控制,原語的特點是執行期間不允許中斷,只能一氣呵成,這種不可被中斷的操作即原子操作。

原語採用“關中斷指令”和“開中斷指令”實現
在這裏插入圖片描述
雖然,關/開中斷的權限非常大,必然是隻允許在覈心態下執行的特權指令。

2、進程控制相關的原語

進程控制會導致進程狀態的轉換。無論哪個原語,要做的無非三類事情:

  • 1、更新PCB中的信息
    a、所有的進程控制原語一定都會修改進程狀態標誌
    b、剝奪當前運行進程的CPU使用權必然需要保存其運行環境
    c、某進程開始運行前必然要恢復運行環境
  • 2、將PCB插入合適的隊列
  • 3、分配/回收資源

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

總結

在這裏插入圖片描述

四、進程通信

在這裏插入圖片描述

顧名思義:進程通信就是指進程之間的信息交換。
進程是分配系統資源的單位(包括內存地址空間),因此各進程擁有的內存地址空間相互獨立。

爲了保證安全,一個進程不能直接訪問另一個進程的地址空間。

但是進程之間的信息交換又是必須實現的,爲了保證進程之間的安全通信,操作系統提供了一些方法。
在這裏插入圖片描述

操作系統提供的進程通信(共享存儲、消息傳遞、管道通信)

  • 共享存儲
  • 消息傳遞
  • 管道通信

共享存儲

在這裏插入圖片描述
進程1往共享空間寫數據的時候進程2是不允許訪問共享空間的

管道通信

在這裏插入圖片描述

消息傳遞

進程間的數據交換以格式化的消息爲單位,進程通過操作系統提供的“發送消息/接收消息”兩個原語進行數據交換。

在這裏插入圖片描述

總結

在這裏插入圖片描述

五、線程

在這裏插入圖片描述
線程是一個基本的CPU執行單元,也是程序執行流的最小單位。進程是除CPU之外的系統資源的分配單元

在這裏插入圖片描述

進程是資源分配的基本單位,線程是調度的基本單位。

傳統的進程併發,需要切換進程的運行環境,系統開銷比較大,引入線程之後,如果是同一進程內的線程切換,不需要切換進程環境,系統開銷小。

在這裏插入圖片描述

在這裏插入圖片描述

線程的實現方式(用戶級線程、內核級線程)

在這裏插入圖片描述

在用戶級線程中,用戶級線程切換可以在用戶態下即可完成,無需操作系統的干預。
在用戶看來,是有多個線程,但是在操作系統看來,並意識不到線程的存在,用戶級線程對用戶不透明,對操作系統透明。

可以這麼理解,“用戶級線程”就是“從用戶視角能看到的線程。”

在這裏插入圖片描述
內核級線程的管理工作由操作系統內核完成,線程調度、切換等工作都由內核負責,因此內核級線程的切換必然需要在覈心態下才能完成。

可以這樣理解,“內核級線程”就是“從操作系統內核視角看能看到的線程”。

在這裏插入圖片描述
在這裏插入圖片描述

多對一的時候,只需要用戶級線程的切換,且只需要在用戶空間即可完成,不需要切換到核心態。
在這裏插入圖片描述

在這裏插入圖片描述

總結

在這裏插入圖片描述

內核級線程纔是處理機分配的單位。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章