日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

操作系统笔记2

發(fā)布時間:2024/8/26 windows 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统笔记2 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

l? 進(jìn)程

l? 并發(fā):多個程序在一段時間內(nèi)同時發(fā)生

l? 進(jìn)程是什么?與程序區(qū)別

進(jìn)程就是用于描述、控制程序在內(nèi)存中并發(fā)運(yùn)行的一個東東

程序的一次執(zhí)行

是一個程序與其數(shù)據(jù)一道通過處理機(jī)的執(zhí)行所發(fā)生的活動

進(jìn)程是進(jìn)程實(shí)體的運(yùn)行過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨(dú)立單位。

? 動與靜:

l? 進(jìn)程是動態(tài)的,程序是靜態(tài)的:程序是有序代碼的集合;進(jìn)程是程序的執(zhí)行。

? 永久與暫時:

l? 進(jìn)程是暫時的,程序是永久的:進(jìn)程是一個狀態(tài)變化的過程,程序可長久保存。

? 結(jié)構(gòu):

l? 進(jìn)程的組成包括程序、數(shù)據(jù)和進(jìn)程控制塊(進(jìn)程各種控制信息)。

? 進(jìn)程與程序的對應(yīng)關(guān)系:

l? 都可1對n。通過多次執(zhí)行,一個程序可對應(yīng)多個進(jìn)程;通過調(diào)用關(guān)系,一個進(jìn)程可包括多個程序。

?

l? 進(jìn)程的基本狀態(tài)

(1)就緒狀態(tài)(Ready)

????? 進(jìn)程獲得除CPU之外的所有必需資源,一旦得到CPU控制權(quán),可立即運(yùn)行。

(2)運(yùn)行狀態(tài)(Running)

????? 進(jìn)程已獲得所有運(yùn)行必需的資源,正在處理機(jī)上執(zhí)行。

(3)阻塞狀態(tài)(Blocked)

????? 正在執(zhí)行的進(jìn)程由于發(fā)生某事件(請求I/O、申請緩沖、時間片到)而暫時無法執(zhí)行時,便放棄CPU后暫停

?

?

l? 進(jìn)程控制塊PCB.

進(jìn)程實(shí)體:代碼段+數(shù)據(jù)段+PCB

Pcb存放進(jìn)程的管理和控制信息的數(shù)據(jù)結(jié)構(gòu)

?

進(jìn)程控制塊中的信息(pcb內(nèi)):

進(jìn)程標(biāo)識符信息

處理機(jī)狀態(tài)信息

進(jìn)程調(diào)度信息

進(jìn)程控制信息

l? 進(jìn)程的創(chuàng)建、阻塞、終止過程

創(chuàng)建過程:

(1) 申請空白PCB

(2) 為新進(jìn)程分配資源

??????????? 主要是內(nèi)存資源的處理

(3) 初始化進(jìn)程控制塊

??????????? 標(biāo)識符(包括父進(jìn)程的)、程序計(jì)數(shù)器指向程序入口地址,就緒態(tài)、優(yōu)先級等信息的填寫。

(4) 將新進(jìn)程插入就緒隊(duì)列

阻塞過程:

(1)將PCB中的狀態(tài)改為阻塞

(2)該P(yáng)CB加入到阻塞隊(duì)列中

(3)轉(zhuǎn)進(jìn)程調(diào)度,將處理機(jī)分配給另一進(jìn)程

(4)進(jìn)行進(jìn)程切換,即根據(jù)兩切換進(jìn)程的PCB,保護(hù)與重新設(shè)置處理機(jī)狀態(tài)

(阻塞原因了解:)

請求系統(tǒng)服務(wù)的滿足情況

啟動某種需等待(I/O)操作

合作需要的新數(shù)據(jù)尚未到達(dá)

執(zhí)行某功能的進(jìn)程暫時無新工作可做(如發(fā)送數(shù)據(jù)進(jìn)程)

?

終止過程:

?

(1) 根據(jù)進(jìn)程標(biāo)示符,檢索出該進(jìn)程PCB,讀其狀態(tài)

????? *IF 執(zhí)行態(tài),立即終止該進(jìn)程,置調(diào)度標(biāo)志為真,指示重新進(jìn)行調(diào)度。

????? *IF 有子孫進(jìn)程,亦應(yīng)予以終止,以防成為不可控進(jìn)程。

(2) 歸還全部資源至其父進(jìn)程或系統(tǒng)。

(3) 將該進(jìn)程PCB從所在隊(duì)列或鏈表中移出。

?

?

l? 進(jìn)程同步問題:源于進(jìn)程的相互制約關(guān)系:資源共享,有序合作

l? 同步的概念:并發(fā)執(zhí)行的諸進(jìn)程之間能有效地共享資源和相互合作,從而使程序的執(zhí)行具有可再現(xiàn)性

l? 控制同步的四大原則

空閑讓進(jìn):資源使用最基本原則

忙則等待:保證互斥

有限等待:合適時被喚醒防止死等

讓權(quán)等待:能主動釋放CPU防止忙等

?

l? 臨界資源、臨界區(qū)

一次僅允許一個進(jìn)程使用的資源

每個進(jìn)程中訪問臨界資源的那段代碼叫臨界區(qū)。

為了正確同步,對臨界區(qū)的代碼要增加控制

l? 信號量機(jī)制

最初的信號量機(jī)制,兩個原子操作對一個共享整型量進(jìn)行操作。

信號量定義為一個整型量;

根據(jù)初始情況賦相應(yīng)的值;

僅能通過兩個原子操作來訪問。

?

l? 信號量操作原語wait、signal

P操作? wait(S):

????????????? While S<=0 do no-op;

????????????? S:=S-1;

V操作? signal(S):??? ?

????????????? S:=S+1;

?

?

互斥:在操作系統(tǒng)中,當(dāng)一個進(jìn)程進(jìn)入臨界區(qū)使用臨界資源時,另一個進(jìn)程必須等待,直到占用臨界資源的進(jìn)程退出臨界區(qū),我們稱進(jìn)程之間的這種相互制約關(guān)系為“互斥”。

同步:多個相互合作的進(jìn)程,在一些關(guān)鍵點(diǎn)上可能需要互相等待或互相交換信息,這種相互制約關(guān)系稱為進(jìn)程同步關(guān)系。可理解為“有序”。

l? 典型同步題目:

l? 生產(chǎn)者-消費(fèi)者 互斥-同步

一群生產(chǎn)者進(jìn)程生產(chǎn)產(chǎn)品供給消費(fèi)者進(jìn)程消費(fèi),在兩者之間設(shè)置具有n個緩沖區(qū)的緩沖池,生產(chǎn)者進(jìn)程所生產(chǎn)的產(chǎn)品放入一個緩沖區(qū)中,消費(fèi)者進(jìn)程可從一個緩沖區(qū)中取走產(chǎn)品去消費(fèi)。

生產(chǎn)者和消費(fèi)者都以異步方式運(yùn)行,但它們之間必須保持同步:沒有產(chǎn)品不能取,沒有空間不能放。也不能同時對一個空間進(jìn)行取和放

type? item=……;表示一個產(chǎn)品

Var? n, integer;緩沖區(qū)大小

counter:0, 1, …, n; 緩沖區(qū)內(nèi)產(chǎn)品計(jì)數(shù)的變量

var? buffer: array[0, 1, …, n-1] of? item;該數(shù)組代表具有n個緩沖區(qū)的緩沖池

in, out: 0, 1, …, n-1指示生產(chǎn)者和消費(fèi)者放或取的下一個緩沖區(qū)位置指針,初值均為0。

in加1表示為in:=(in+1)mod n

out加1表示為out:=(out+1)mod n

當(dāng)(in+1)mod n=out時表示緩沖池滿

in=out表示緩沖池空

Producer:?

? repeat

???? …

???? 生產(chǎn) an item in nextp;?

???? …

???? while counter= n

???????? do no-op;

???? buffer[in]:=nextp;

???? in:=in+1 mod n;

???? counter:=counter+1;

? until false;

Consumer:

? repeat

???? while counter= 0

???????? do no-op;

???? nextc:=buffer[out];

???? out:=out+1 mod n;

???? counter:=counter-1;

???? …

???? 消費(fèi)產(chǎn)品item in nextc;

? until false;

?

取、用類,計(jì)數(shù)控制+互斥

l? 哲學(xué)家進(jìn)餐 互斥

?

計(jì)數(shù)類、死鎖相關(guān)

?

l? 讀者-寫者

?

l? 有條件的互斥 類似典型題目:單行路,同方向的不互斥;異向互斥

Writer :

repeat

?? wait(wmutex);

?? 寫入文件;

?? signal(wmutex);

until? false;

?

?

?

l? 信號量規(guī)律:

l? 分析同步關(guān)系、設(shè)置信號量初值、PV操作順序

1.?? P、V操作成對出現(xiàn)

2.?? 多個進(jìn)程對互斥同步,PV操作成對出現(xiàn)的同進(jìn)程中,初值為1

3.?? 多個進(jìn)程的有序同步,PV操作成對出現(xiàn)在不同進(jìn)程中,有V操作的進(jìn)程可通過控制先于有P操作的進(jìn)程執(zhí)行。初值根據(jù)應(yīng)用情況設(shè)置。

?

l? 一閱覽室最多容納100人,讀者進(jìn)入和離開都要在登記表上登記,每次只允許一個人登記。如何編寫進(jìn)程間的同步關(guān)系。

l? 資源:空數(shù)N,登記表S

l? 信號量n=N,mutex=1

l? 進(jìn)程:讀者進(jìn)程

u wait(n)

u wait(mutex)

l? 進(jìn)入

u signal(mutex)

l? 閱讀后離開

u signal(n)

?

l? 有一只鐵籠子,每次只能放入一只動物,獵手向籠中放入老虎,農(nóng)民向籠中放入豬,動物園等待取籠中的老虎,飯店等待取籠中的豬,試用信號量機(jī)制實(shí)現(xiàn)獵手、農(nóng)民、動物園、飯店之間同步執(zhí)行的程序。(解釋其中的信號量含義,并給出合適的初值。)

?

l? 設(shè)有一自助餐廳,可容納10名顧客就餐,餐廳滿時顧客需在門外排隊(duì)等候;顧客若能進(jìn)入則自取食物后到款臺付款;收款員負(fù)責(zé)在收款臺等待顧客付款,付款完畢顧客自行就餐后離開。分析該問題中的同步關(guān)系,試寫出顧客進(jìn)程和收款員進(jìn)程信號量機(jī)制下的同步算法,注意寫明信號量的初值和作用。

?

l? 【分析】顧客存在爭搶進(jìn)店的競爭關(guān)系,設(shè)置一個資源信號量r,初值為10;
收款員與顧客間存在雙向有序合作關(guān)系,收款員需等待顧客付款,顧客需等待收款員確認(rèn)付款完畢,需設(shè)置兩個同步信號量money,ok,初值均為0.
【算法偽代碼如下】
semaphore r=10,money=0,ok=0;

l? 顧客:

l? void custom(){

u while(true){

l? wait(r);

u //資源信號量操作成對正確

l? enter;

l? take something;

l? signal(money);

l? pay money;

l? wait(ok);??

l? signal(r);

l? leave;

u }}?

l? 售貨員:

l? void seller(){

u while(true){

n? wait(money);

u //同步信號操作配對正確

n? accept money,give changes 

n? signal(ok);

u //同步信號操作配對正確

u }}?

l? CPU調(diào)度

l? 三級調(diào)度

高級調(diào)度:主要在早期批處理階段,處理在外存上的作業(yè)

低級調(diào)度: 決定內(nèi)存就緒隊(duì)列中的哪個進(jìn)程獲得處理機(jī),進(jìn)行分配工作。是最基本的一種調(diào)度

中級調(diào)度:提高內(nèi)存利用率和系統(tǒng)吞吐量。根據(jù)條件將一些進(jìn)程調(diào)出或再調(diào)入內(nèi)存

l? 調(diào)度時機(jī)\搶占\算法計(jì)算

?

?

l? 調(diào)度程序的運(yùn)行時機(jī):

程序正常完成

IO\PV阻塞

時間片到

新任務(wù)產(chǎn)生

調(diào)度算法

基本調(diào)度算法:

a)?? 先來先服務(wù)調(diào)度算法FCFS,不利于短作業(yè)

b)?? 短作業(yè)(進(jìn)程)優(yōu)先調(diào)度算法SJF/SPF,降低作業(yè)的平均等待時間,提高系統(tǒng)吞吐量。

c)?? 高優(yōu)先權(quán)優(yōu)先調(diào)度算法HPF,

d)?? 高響應(yīng)比優(yōu)先調(diào)度算法HRRN,

e)?? 基于時間片的輪轉(zhuǎn)調(diào)度算法RR,

f)?? 多級反饋隊(duì)列算法FB

* 實(shí)時調(diào)度

?

?

?

?

l? 某系統(tǒng)的進(jìn)程請求如右圖,畫出RR調(diào)度下的調(diào)度過程圖。并計(jì)算平均周轉(zhuǎn)時間。設(shè)時間片為2。

進(jìn)程名

開始時刻

執(zhí)行時間

A

0

3

B

2

3

C

3

4

D

4

7

?

?

?

?

?

?

?

?

?

l? 死鎖的相關(guān)概念與認(rèn)識

1.?? 四個必要條件

u 互斥條件:進(jìn)程對所分配到的資源進(jìn)行排他性使用

u 請求和保持條件:進(jìn)程已經(jīng)保持了至少一個資源,又提出新的資源請求,而新請求資源被其他進(jìn)程占有只能造成自身進(jìn)程阻塞,但對自己已獲得的其他資源保持不放,必然影響其他進(jìn)程。

u 不剝奪條件:進(jìn)程已獲得的資源未使用完之前不能被剝奪,只能在使用完時由自己釋放。

u 環(huán)路等待條件

?

2.?? 處理死鎖的各種方法

①?? 預(yù)防死鎖

v 設(shè)置限制條件,破壞四個必要條件的一個或幾個,預(yù)防發(fā)生死鎖。

v 較易實(shí)現(xiàn)。限制條件的嚴(yán)格也會導(dǎo)致系統(tǒng)資源利用率和系統(tǒng)吞吐量降低。

②?? 避免死鎖

v 不須事先限制,破壞四個必要條件,而是在資源的動態(tài)分配過程中,用某種方法去防止系統(tǒng)進(jìn)入不安全狀態(tài),從而避免發(fā)生死鎖。

v 這種事先加以較弱限制的方法,實(shí)現(xiàn)上有一定難度,但可獲較高的資源利用率及系統(tǒng)吞吐量,目前在較完善的系統(tǒng)中,常用此方法來避免發(fā)生死鎖。

③?? 檢測死鎖。

v 允許系統(tǒng)運(yùn)行過程中發(fā)生死鎖,但通過系統(tǒng)檢測機(jī)構(gòu)可及時的檢測出,能精確確定與死鎖有關(guān)的進(jìn)程和資源;然后采取適當(dāng)?shù)拇胧?/span>,從系統(tǒng)中將已發(fā)生的死鎖清除掉。

④?? 解除死鎖。

v 與死鎖檢測配套的一種措施。

v 常用的實(shí)施方法:撤銷或掛起一些進(jìn)程,以便回收一些資源并將他們分配給已阻塞進(jìn)程,使之轉(zhuǎn)為就緒以繼續(xù)運(yùn)行。

v? 死鎖的檢測與解除措施,有可能使系統(tǒng)獲得較好的資源利用率和吞吐量(死鎖幾率不一定很高),但在實(shí)現(xiàn)上難度也最大。

?

l? 避免死鎖的銀行家算法(相對預(yù)防死鎖,是一種軟限制。)

?

?

?

下面出現(xiàn)P1請求資源的操作,具體請求向量為Request1(1,0,2),利用銀行家算法進(jìn)行檢查該操作是否是安全可行的:

1)兩個基本判斷

??????????? Request1(1,0,2)<=Need1(1,2,2)

??????????? Request1(1,0,2)<=Available1(3,3,2)

2)先假設(shè)為P1分配資源,并修改Available,Allocation1和Need1向量。

?

?

?

向量Available

最大需求、已獲得的、還需要的

最大需求矩陣Max

已分配矩陣Allocation

還需求的矩陣Need

1.?? 安全狀態(tài)

2.?? 算法、計(jì)算

a)?? 系統(tǒng)中有m個進(jìn)程,出現(xiàn)死鎖時死鎖進(jìn)程的個數(shù)k:?? 2≤k≤m

b)?? 某類資源m個,n個進(jìn)程都需要此種資源a個,如何不死鎖:n*(a-1)+1≤m

?

l? 存儲器管理

l? 連續(xù)分配

1.?? 單一連續(xù)、固定分區(qū)

2.?? 動態(tài)分區(qū)分配

3.?? 可重定位動態(tài)分區(qū)(有緊湊功能)

l? 離散分配

1.?? 分頁,地址轉(zhuǎn)換過程,計(jì)算

?

內(nèi)存劃分成多個小單元,每個單元K大小,稱(物理)塊。作業(yè)也按K單位大小劃分成片,稱為頁面。

①??? ?物理劃分塊的大小 = 邏輯劃分的頁的大小

②???

內(nèi)存位數(shù)=頁面大小(位數(shù))+頁表項(xiàng)(塊號位數(shù))

大小:內(nèi)存=頁面大小x頁面?zhèn)€數(shù)

?

2.?? 分段

虛擬

概念:虛擬、局部性

先進(jìn)先出置換算法(FIFO)Belady現(xiàn)象(出現(xiàn)分配的頁面數(shù)增多,缺頁率反而提高的異常現(xiàn)象)的原因:FIFO算法的置換特征與進(jìn)程訪問內(nèi)存的動態(tài)特征矛盾,即被置換的頁面并不是進(jìn)程不會訪問的

1.?? 置換調(diào)度算法:最近最久未使用(LRU)置換算法, 最近未使用算法CLOCK:

2.?? 缺頁次數(shù)(掉入次數(shù))

u 缺頁率=缺頁次數(shù)/總的頁面數(shù)

l? 例

l? 分頁系統(tǒng),主存容量64K,頁面大小1K。

l? 一個4K大的作業(yè),0-3頁分別分配到物理塊2、4、6、7中。

1.?? 該作業(yè)的邏輯地址格式如何?

2.?? 十進(jìn)制的邏輯地址1023(B)轉(zhuǎn)換為物理地址

3.?? 畫出地址變換過程。

答:

即頁號與頁內(nèi)地址位數(shù)大小

該作業(yè)的4個頁面編號需要2位;每頁1K大小,即1K條指令編號需10位

?

l? 邏輯地址1023

1023/1K=0 余 1023

0頁對應(yīng)物理塊2,所以物理地址是

2 * 1K + 1023 = 2048+1023=3071

?

?

?

l? 例

l? 虛擬內(nèi)存管理中的LRU頁面置換算法

l? 設(shè)頁面走向如下,分配給該作業(yè)3個內(nèi)存塊,畫出置換過程圖,并計(jì)算缺頁率。

4? 5? 8? 1? 3? 4? 4? 6? 5? 1? 2? 7? 6? 1? 3

文件管理

l? 文件的結(jié)構(gòu)

l? 邏輯結(jié)構(gòu):

u 有結(jié)構(gòu)文件:順序,鏈接,索引

l? 物理結(jié)構(gòu): 已分配空間的記錄

u 連續(xù)、鏈接、索引、混合索引分配方式

l? FAT表計(jì)算,索引文件大小的計(jì)算,UNIX下的混合索引

l? 空閑空間管理

l? 表、盤區(qū)\盤塊鏈、成組鏈接、位示圖

l? 目錄、共享

l? 例:FAT與索引的計(jì)算

l? FAT表的計(jì)算

1.?? 物理空間容量/盤塊大小 = FAT表項(xiàng)個數(shù)

2.?? 個數(shù)決定位數(shù),決定每項(xiàng)大小

3.?? 個數(shù)*每項(xiàng)大小

l? 索引結(jié)點(diǎn)

1.?? 盤塊大小/盤塊號大小 = 可記錄的盤塊個數(shù)

2.?? 單索引下,一個索引結(jié)點(diǎn)能記錄N個盤塊,則文件最大長度為:N*盤塊大小

?

l? 例:混合索引分配方式的計(jì)算

l? FCB有13個地址項(xiàng),0-9為直接地址,10為一次間接地址,11為二次間接地址,12為三次間接地址。若盤塊大小為512B,盤塊號需3B記錄,每個盤塊最多存放170個盤塊地址。

l? 該文件系統(tǒng)文件最大允許多長?

u 10+170+170*170+170*170*170 = 4942080塊

u = 4942080*512B = 2471040 KB

l? 將文件字節(jié)偏移量15000轉(zhuǎn)換為物理塊號和塊內(nèi)偏移。

u 15000/512 = 29 余152。10=<29<=10+170.

u 所以文件使用的第29塊盤塊號,記錄在FCB中的10項(xiàng),即一次間接地址的索引盤塊中。從10項(xiàng)記錄的地址找到索引表,第19項(xiàng)即是要找的物理塊。

?

l? 若FCB已存在內(nèi)存,其他信息均在外存,訪問該文件某位置的內(nèi)容,最少/最多需要幾次訪問磁盤?

最少需訪問磁盤的情況是直接尋址,直接讀FCB中記錄的地址,訪問磁盤1次即可

最多需訪問磁盤的情況是三次間接尋址的過程,需讀三次間接索引塊中的內(nèi)容,然后讀它里面記錄的二次接索引塊中的內(nèi)容,再一次的,最后才能獲得文件信息的實(shí)際地址。姑,最多情況需4次訪問磁盤。

?

l? 外存空間的管理

空閑空間的三種分配方式:連續(xù)、鏈接、索引

空閑空間的管理

1.?? 空閑表/鏈、位示土圖、成組鏈接

2.?? 成組鏈接

?

?

l? 例:某系統(tǒng)采用成組鏈接法管理磁盤空閑空間,目前狀態(tài)如下圖,問:

l? 還有多少空閑盤塊?

l? 若從當(dāng)前狀態(tài)下,系統(tǒng)分配3個盤塊給某文件后,又刪除另一文件,回收了第700,711,703,788,701這5個盤塊。則磁盤空間的狀態(tài)圖中的鏈接情況又如何?

l? 空閑盤塊成組鏈接示意圖

?

?

l? 設(shè)備管理

l? I\0 系統(tǒng)的組成

CPU\通道\控制器\設(shè)備

l? 磁盤緩沖管理的作用、方式

l? 虛擬:spooling

l? I\O軟件層次

中斷處理程序\設(shè)備驅(qū)動程序\設(shè)備獨(dú)立性程序\用戶應(yīng)用程序

l? 磁盤調(diào)度

電梯調(diào)度算法等p233

?

轉(zhuǎn)載于:https://www.cnblogs.com/-dabai/p/10085468.html

總結(jié)

以上是生活随笔為你收集整理的操作系统笔记2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。