2.1 前趨圖和程序執(zhí)行
前趨圖:用來描述程序執(zhí)行順序的圖
初始節(jié)點(diǎn)骡男、終止節(jié)點(diǎn)
2.2進(jìn)程的描述
2.2.1進(jìn)程的定義
進(jìn)程是運(yùn)行中的程序?qū)嶓w,是操作系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位。為了使程序執(zhí)行,os必須為每個(gè)進(jìn)程創(chuàng)建獨(dú)立的數(shù)據(jù)結(jié)構(gòu)PCB浙于。因此進(jìn)程包含:程序段帘撰、數(shù)據(jù)洪囤、PCB
2.2.2進(jìn)程的基本狀態(tài)及轉(zhuǎn)換
就緒狀態(tài):獲得了各種資源徒坡,但是未分配CPU。就緒隊(duì)列里
運(yùn)行狀態(tài):獲得了資源和CPU正在執(zhí)行的狀態(tài)
阻塞狀態(tài):由于IO或者緩沖區(qū)申請(qǐng)失敗等原因瘤缩,將CPU分配給其他進(jìn)程喇完,當(dāng)前進(jìn)程受到阻塞的狀態(tài)。阻塞隊(duì)列
擴(kuò)展?fàn)顟B(tài):創(chuàng)建剥啤、終止
操作:掛起锦溪、激活
掛起、激活:用戶操作需要府怯、父進(jìn)程需要操作子進(jìn)程刻诊、os系統(tǒng)資源分配和符合調(diào)節(jié)的需要
2.2.3三種狀態(tài)的轉(zhuǎn)換
2.2.4進(jìn)程管理的控制結(jié)構(gòu)
PCB:內(nèi)存、設(shè)備牺丙、文件则涯、進(jìn)程
PCB的作用:
a,作為試圖獨(dú)立運(yùn)行的基本單位的標(biāo)志冲簿。程序只有在創(chuàng)建了PCB結(jié)構(gòu)之后粟判,才會(huì)被CPU調(diào)用
b,能實(shí)現(xiàn)間斷運(yùn)行的方式民假。程序是在OS中間斷運(yùn)行了浮入,PCB保存了進(jìn)程運(yùn)行的線程信息龙优,當(dāng)進(jìn)程被CPU再次調(diào)用了PCB用于恢復(fù)上次停止時(shí)的線程信息
c羊异,提供進(jìn)程管理的信息。比如程序和數(shù)據(jù)在內(nèi)存或外存的始存地址信息
d彤断,提供進(jìn)程調(diào)度的信息野舶。比如狀態(tài)信息
d,實(shí)現(xiàn)進(jìn)程通信的信息宰衙。比如信號(hào)量數(shù)據(jù)
2.3進(jìn)程控制
2.2.1 操作系統(tǒng)內(nèi)核
基本功能:中斷平道、時(shí)鐘管理、原語操作
資源管理功能:進(jìn)程管理供炼、存儲(chǔ)器管理一屋、設(shè)備管理
2.4 進(jìn)程同步
進(jìn)程同步方式:硬件的方式、信號(hào)量同步袋哼、管程
管程:
2.5進(jìn)程通信
共享方式:
共享存儲(chǔ)器冀墨、管道通信系統(tǒng)、消息隊(duì)列涛贯、客戶機(jī)-服務(wù)器模式(socket诽嘉、rpc)、restapi
2.7 線程
進(jìn)程:使程序能夠并發(fā)執(zhí)行、提高系統(tǒng)吞吐量和資源利用率
a虫腋,擁有資源的基本單位骄酗。PCB、主要指內(nèi)存地址悦冀、狀態(tài)信息趋翻,上下文信息、信號(hào)量盒蟆、打開的文件和設(shè)備等
b嘿歌,分配和調(diào)度的基本單位
線程:是為了減少程序在并發(fā)執(zhí)行時(shí)的是空開銷,進(jìn)一步提高系統(tǒng)吞吐量和資源利用率
進(jìn)程和線程的區(qū)別是什么茁影?
a,調(diào)度的基本單位:
傳統(tǒng)的os中進(jìn)程是基本的調(diào)度單位宙帝,在每次調(diào)度都會(huì)產(chǎn)生上下問的切換,會(huì)消耗大量的資源募闲,但是在引入線程的系統(tǒng)中步脓,線程是基本的調(diào)度單位,線程可以繼承進(jìn)程的大部分資源浩螺,線程的切換只需保存少量的寄存器內(nèi)容靴患,開銷遠(yuǎn)低于進(jìn)程。同一進(jìn)程中要出,線程的切換不會(huì)引起進(jìn)程的切換鸳君,但是進(jìn)程的切換一定引起線程的切換
b,并發(fā)性:
c,獨(dú)立性
d,擁有資源
e,系統(tǒng)開銷
f,支持多處理機(jī)
2.8 線程的實(shí)現(xiàn)
2.8.1 內(nèi)核支持線程
缺點(diǎn):開銷大、多線程切換的時(shí)候需要用戶態(tài)和內(nèi)核態(tài)之間的切換
2.8.2 用戶級(jí)支持線程
缺點(diǎn):是用戶實(shí)現(xiàn)的患蹂,甚至可以在不支持多線程的平臺(tái)實(shí)現(xiàn)或颊。不能利用CPU的多核心
2.8.3組合方式
理論上多對(duì)多模型最好