第二章 進程的描述與控制

2.1 前趨圖和程序執(zhí)行

前趨圖:用來描述程序執(zhí)行順序的圖

初始節(jié)點、終止節(jié)點


2.2進程的描述

2.2.1進程的定義

進程是運行中的程序?qū)嶓w,是操作系統(tǒng)進行資源分配和調(diào)度的基本單位。為了使程序執(zhí)行,os必須為每個進程創(chuàng)建獨立的數(shù)據(jù)結(jié)構(gòu)PCB。因此進程包含:程序段、數(shù)據(jù)、PCB

2.2.2進程的基本狀態(tài)及轉(zhuǎn)換

就緒狀態(tài):獲得了各種資源,但是未分配CPU。就緒隊列里

運行狀態(tài):獲得了資源和CPU正在執(zhí)行的狀態(tài)

阻塞狀態(tài):由于IO或者緩沖區(qū)申請失敗等原因,將CPU分配給其他進程,當前進程受到阻塞的狀態(tài)。阻塞隊列

擴展狀態(tài):創(chuàng)建、終止

操作:掛起、激活

掛起、激活:用戶操作需要、父進程需要操作子進程、os系統(tǒng)資源分配和符合調(diào)節(jié)的需要

2.2.3三種狀態(tài)的轉(zhuǎn)換



2.2.4進程管理的控制結(jié)構(gòu)

PCB:內(nèi)存、設備、文件、進程


PCB的作用:

a,作為試圖獨立運行的基本單位的標志。程序只有在創(chuàng)建了PCB結(jié)構(gòu)之后,才會被CPU調(diào)用

b,能實現(xiàn)間斷運行的方式。程序是在OS中間斷運行了,PCB保存了進程運行的線程信息,當進程被CPU再次調(diào)用了PCB用于恢復上次停止時的線程信息

c,提供進程管理的信息。比如程序和數(shù)據(jù)在內(nèi)存或外存的始存地址信息

d,提供進程調(diào)度的信息。比如狀態(tài)信息

d,實現(xiàn)進程通信的信息。比如信號量數(shù)據(jù)


2.3進程控制

2.2.1 操作系統(tǒng)內(nèi)核

基本功能:中斷、時鐘管理、原語操作

資源管理功能:進程管理、存儲器管理、設備管理

2.4 進程同步

進程同步方式:硬件的方式、信號量同步、管程

管程:

2.5進程通信

共享方式:

共享存儲器、管道通信系統(tǒng)、消息隊列、客戶機-服務器模式(socket、rpc)、restapi

2.7 線程

進程:使程序能夠并發(fā)執(zhí)行、提高系統(tǒng)吞吐量和資源利用率

a,擁有資源的基本單位。PCB、主要指內(nèi)存地址、狀態(tài)信息,上下文信息、信號量、打開的文件和設備等

b,分配和調(diào)度的基本單位

線程:是為了減少程序在并發(fā)執(zhí)行時的是空開銷,進一步提高系統(tǒng)吞吐量和資源利用率

進程和線程的區(qū)別是什么?

a,調(diào)度的基本單位:

傳統(tǒng)的os中進程是基本的調(diào)度單位,在每次調(diào)度都會產(chǎn)生上下問的切換,會消耗大量的資源,但是在引入線程的系統(tǒng)中,線程是基本的調(diào)度單位,線程可以繼承進程的大部分資源,線程的切換只需保存少量的寄存器內(nèi)容,開銷遠低于進程。同一進程中,線程的切換不會引起進程的切換,但是進程的切換一定引起線程的切換

b,并發(fā)性:

c,獨立性

d,擁有資源

e,系統(tǒng)開銷

f,支持多處理機

2.8 線程的實現(xiàn)

2.8.1 內(nèi)核支持線程

缺點:開銷大、多線程切換的時候需要用戶態(tài)和內(nèi)核態(tài)之間的切換

2.8.2 用戶級支持線程

缺點:是用戶實現(xiàn)的,甚至可以在不支持多線程的平臺實現(xiàn)。不能利用CPU的多核心

2.8.3組合方式

理論上多對多模型最好


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容