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組合方式
理論上多對多模型最好
