单处理机系统的进程调度动态优先_操作系统复习笔记(王道)C2.1
進程與線程
一、進程特征和概念
前提:允許多個程序并發執行。
1.概念
PCB(process control block)進程控制塊,系統利用 PCB 來描述進程的基本情況和運行狀 態,進而控制和管理進程。
PCB是進程存在的唯一標志。
進程是進程實體的運行過程,是系統進行資源分配和調度的一個獨立單位。2.特征
- 動態性:進程是程序的一次執行,所以他是有生命周期的。(基本特征)
- 并發性:引入進程的目的就是為了程序能夠并發執行。
- 獨立性:一個進程就是一個獨立的個體
- 異步性:由于進程的相互制約,使得進程具有執行的間斷性。
- 結構性:一個進程實體由程序段、數據段和進程控制塊三部分組成。
二、進程的狀態與轉換
幾個比較重要的轉換:
就緒態→運行態:獲得處理機資源(時間片)。
運行態→就緒態:獲得的時間片用完,或者在可剝奪的操作系統中被更高優先級的進程搶走時間片。
運行態→阻塞態:請求某一資源,或者等待某一事件發生。
進程以系統調用的形式請求操作系統提供服務,這是一種特殊的、由運行用戶態程序調用操作系統內核過程的形式。阻塞態→就緒態:等待的事件到來時。
三、進程控制
1.進程的創建
允許一個進程創建另一個進程,就是父進程和子進程。
創建過程如下:
1)分配唯一進程標志號,申請一個空白的PCB(有限的)。沒有就創建失敗了。
2)分配資源,分配用戶棧和內存資源,若資源不足就處于阻塞態,直到有資源被釋放。
3)初始化PCB。(標志信息、處理機狀態信息、處理機控制信息、設置進程的優先級等。)
4)如果就緒隊列未滿,就插入就緒隊列,等待被調度。
2.進程的終止
通常引起終止的事件
- 正常結束
- 異常結束
- 外界干預
終止過程:
1)根據標志符檢索PCB,讀取該進程狀態。
2)如處于執行狀態,立即終止執行,處理器資源也分出去。
3)若還有子孫進程,則終止其子進程。
4)將該進程的資源還給父進程(沒有就還給操作系統)。
5)將PCB從所在隊列(鏈表)刪除。
3.進程的阻塞與喚醒
阻塞:
1)找到PCB
2)若為運行態,則保護現場,然后轉為阻塞態
3)將該PCB插入等待隊列,交出處理機資源
喚醒:
1)在等待隊列中找到PCB
2)將其從隊列中移出,設置為就緒態
3)插入就緒隊列,等待調度
4.進程切換
進程切換是指處理機從一個進程的運行轉到另一個進程上運行。
1)保存處理機上下文,包括程序計數器和其他寄存器
2)更新 PCB 信息
3)把進程的 PCB 移入相應的隊列,如就緒、在某事件阻塞等隊列。
4)選擇另一個進程執行,并更新其 PCB
5)更新內存管理的數據結構。
6)恢復處理機上下文
四、進程的組織
一個進程由以下三部分組成,最核心的就是PCB
1.進程控制塊
PCB是進程實體的一部分,是進程存在的唯一標志。
主要包括:描述信息、進程控制和管理信息、資源分配清單、和處理機關信息等。
1)描述信息:PID進程標識符,UID用戶標識符。
2)進程控制和管理信息:進程當前的狀態,優先級等信息。
3)資源分配清單:說明有關內存地址的狀況。
4)處理機相關信息:主要指處理機中各寄存器的值。
2.程序段
3.數據段
五、進程的通信
管道可以理解為共享存儲的優化和發展 ,因為在共享存儲中,若某進程要訪問共享存儲空間, 則必須沒有其他進程在該共享存儲空間中進行寫操作,否則訪問行為就會被阻塞。管道通信中,存儲空間進化成了緩沖區,緩沖區只允許一邊寫入、另一邊讀出,因此只要緩沖區中有數據,進程就能從緩沖區中讀出,而不必擔心會因為其他進程在其中進行寫操作而遭到阻塞。六、線程概念和多線程模型
1.概念
線程由線程ID、程序計數器、寄存器集合和堆棧組成。
線程是進程中的一個實體。
有了線程這個概念后,進程作為除了CPU之外的系統資源分配單元,而線程則作為處理機的分配單元。
2.線程和進程的比較
1)調度
線程是獨立調度的基本單位,進程是擁有資源的基本單位。
也就是說,一個進程內的線程可以切換到另一個進程內的一個線程,但是資源不能。
2)擁有資源
線程不擁有系統資源
3)并發性
多個進程可以并發執行,多個線程也可以并發執行。
4)系統開銷
創建和撤銷進程時,涉及到很多系統資源的分配和回收。但是線程不擁有系統資源,創建和撤銷系統則不需要付出那么大的開銷。同樣,線程間的切換也比進程間的切換更容易實現。
5)地址空間和其他資源
進程之間互相獨立。
線程之間共享該進程的資源。
6)通信
進程間通信需要互斥手段的輔助。
線程可以直接讀寫進程數據段來實現通信。
3.線程的屬性
1)線程不擁有系統資源,但擁有唯一的標識符和一個線程控制塊。
2)不同的線程可以執行相同的程序
3)同一進程中各個線程共享該進程所擁有的資源
4)線程是處理機的獨立調度單元,多個線程可以并發執行。
5)線程生命周期也會有阻塞、就緒、運行等狀態
4.線程的實現方式
分為兩大類:
用戶級線程、內核級線程
5.多線程模型
1)多對一:
多個用戶級線程映射到一個內核級線程
2)一對一
一個用戶級線程映射到一個內核級線程
3)多對多
n個用戶級線程映射到m個內核級線程
總結
以上是生活随笔為你收集整理的单处理机系统的进程调度动态优先_操作系统复习笔记(王道)C2.1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux的实际操作:用户管理(查看用户
- 下一篇: java信息管理系统总结_java实现科