操作系統-進程概念


一、定義(Process)

  進程是具有獨立功能的程序關於某個數據集合上的一次運行活動,是系統進行資源分配和調度的獨立單位

1、進程是程序的一次執行過程,是對CPU的抽象,是正在運行的程序的抽象

2、每個進程具有獨立的地址空間

3、操作系統通過調度將CPU的控制權交給某個進程

二、進程控制塊PCB(Process Control Block)

  又稱進程描述符,進程屬性,是操作系統用於管理控制進程的一個專門的數據結構,記錄進程的各種屬性

PCB是系統感知進程存在的唯一標志,進程與PCB是一一對應的

  進程表:所有進程的PCB集合

三、PCB包含哪些信息

  進程描述信息

進程標識符PID,唯一,整數,進程名(不唯一),用戶標識符userID,進程組關系(兄弟父子關系)

  進程控制信息

當前狀態,優先級,代碼執行入口,運行統計信息,進程間同步和通信,進程隊列指針,進程消息隊列指針

  所擁有的資源和使用情況

虛擬地址空間的狀況,打開文件列表

  CPU現場信息

進程不運行時的寄存器值和指向該進程的頁表的指針

四、進程狀態及狀態轉換

  運行態(Running)

占有CPU,並在CPU上運行

  就緒態(Ready)

已經具備運行條件,但由於沒有空閑CPU,而暫時不能運行

  等待態(Waiting/Blocked)

或叫阻塞態,封鎖態,睡眠態,因等待某一事件而暫時不能運行

  操作系統通常將進程狀態分為多種模型,這里給出三狀態和五狀態

 

五、進程隊列

1、操作系統為每一類進程建立一個或多個隊列

2、隊列元素為PCB

3、伴隨進程狀態的改變,其PCB從一個隊列進入另一個隊列

 

上圖中,一個進程創建后經許可(提交)進入就緒隊列,經過調度進入CPU,如果正常處理完畢會釋放,如超時重新進入就緒隊列

如果還有各種等待事件,則進入各類等待事件隊列,當相應的事件發生后再次進入就緒隊列,等待調度進入CPU

 六、上下文切換

定義:CPU硬件狀態從一個進程換到另一個進程的過程

進程在運行時,其硬件狀態保存在CPU上的寄存器中(只有一套)

進程不運行時,這些寄存器的值保存在進程控制塊PCB中,當操作系統要運行一個新的進程時,需要將這個進程的PCB中的值送到

對應的寄存器中,這也是下一篇要講的線程的概念。

 

以上是操作系統關於進程的一些概述,摘自北大陳向群教授的操作系統課程學習


免責聲明!

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



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