目錄
概要
?操作系統(tǒng) 概述
?編輯
進程管理
進程的狀態(tài)
?進程管理-PV操作
利用PV操作實現(xiàn)進程的同步
?進程管理-前趨圖
?進程管理-死鎖
概要
?操作系統(tǒng) 概述
操作系統(tǒng)的功能: 進程管理、存儲管理、文件管理、作業(yè)管理、設(shè)備管理
操作系統(tǒng)的特征
- 并發(fā)性
- 共享性
- 虛擬性
- 不確定性
?
進程管理
- 進程是程序在一個數(shù)據(jù)集合上運行的過程,它是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位
- 進程的組成
- 進程控制塊PCB(唯一標志)
- 程序:描述進程要做什么
- 數(shù)據(jù):存放進程執(zhí)行時所需數(shù)據(jù)
??
? ? ?3.?進程與程序的區(qū)別:
- 進程是程序的一次執(zhí)行過程,沒有程序就沒有進程
- 程序是完成某個特定功能的一系列程序語句的集合,只要不被破壞,它就永遠存在
- 程序是一個靜態(tài)的概念,而進程是一個動態(tài)的概念,它由創(chuàng)建而產(chǎn)生,完成任務(wù)后因撤銷而消亡
- 進程是系統(tǒng)進行資源分配和調(diào)度的獨立單位,而程序不是?
進程與線程:
進程的2個基本屬性:
1)可擁有資源的獨立單位;
2)可獨立調(diào)度和分配資源的基本單位;
ps: 線程 只能獨立調(diào)度, 不分配資源
?
線程不共享: 程序計數(shù)器、棧、寄存器?
PCB
?
PCB組織方式:線性方式、鏈接方式、索引方式
進程的狀態(tài)
三態(tài)圖:
? ? ? ? ? ? ? ? ? ?運行? ? ? ?就緒? ? ? 阻塞
CPU? ? ? ? ? ?YES? ? ? ?NO? ? ? ?NO
非CPU? ? ? ? YES? ? ? ?YES? ? ?NO
阻塞: 不能直接到「運行」
?五態(tài)圖:
?掛起: 程序調(diào)度、異常等
「活躍就緒」: 只有此狀態(tài),可以到「運行」
「活躍阻塞」: 要經(jīng)過「靜止阻塞」「靜止就緒」「活躍就緒」,才能到「運行」
?進程管理-PV操作
信號量機制
1965年,荷蘭學(xué)者Dijkstra提出的信號量機制是一種卓有成效的進程同步與互斥的工具。
信號量是一個整型變量,根據(jù)控制對象的不同賦不同的值。
PV操作是實現(xiàn)進程同步與互斥的常用方法。進程的同步與互斥是學(xué)習(xí) PV 操作的前提。
同步和互斥往往在實際問題中共存,而不是反義詞。
同步的反義詞是異步。
互斥的反義詞是共享。
互斥:某資源(即臨界資源,如打印機、緩沖區(qū)。進程間接制約關(guān)系)在同一時間內(nèi)只能由一個任務(wù)單獨使用,使用時需要加鎖,使用完后解鎖才能被其他任務(wù)使用;
同步:多個任務(wù)可以并發(fā)執(zhí)行,只不過有速度上的差異,在一定情況下停下等待,不存在資源是否單獨或共享的問題;如自行車和汽車。 進程直接制約關(guān)系
P操作:【申請資源,S=S-1】,若S>=0,則執(zhí)行P操作的進程繼續(xù)執(zhí)行;若S<0,表示資源不足,去排隊,則置該進程為阻塞狀態(tài)(因為無可用資源),并將其插入阻塞隊列。
V操作:【釋放資源,S=S+1】,若S>0,則執(zhí)行V操作的進程繼續(xù)執(zhí)行;若S<=0,表示有進程在排隊,則從阻塞狀態(tài)喚醒一個進程,并將其插入就緒隊列(此時因為缺少資源被P操作阻塞的進程可以繼續(xù)執(zhí)行),然后執(zhí)行v操作的進程繼續(xù)。
?注意: 臨界區(qū),是一段代碼;
S表示資源情況、負值等待的進程數(shù)。 S=S-1表示申請資源;S=S+1表示釋放資源
互斥信號量:對臨界資源采用互斥訪問,使用互斥信號量后其他進程無法訪問,初值為1.
同步信號量:對共享資源的訪問控制,初值一般是共享資源的數(shù)量。
利用PV操作實現(xiàn)進程的同步
進程的同步是由于進程間合作引起的相互制約的問題,要實現(xiàn)進程的同步可用一個信號量與消息聯(lián)系起來。
同步問題的經(jīng)典例子是生產(chǎn)者-消費者問題。
?
?練習(xí)題:
?進程管理-前趨圖
?ps: 依賴關(guān)系。只有A,B,C都完成了,才能開始D。 D完成了,才能開始E.
PS: 前置動作用V, 后置檢查用P
練習(xí)題:
?
?練習(xí)題:
?ps: 直接制約關(guān)系,是先后順序的影響
練習(xí)題:
?進程管理-死鎖
死鎖: 一個進程等待一件不可能發(fā)生的事,進程就死鎖了。
死鎖的4個必要條件:
互斥條件:進程對分配到的資源進行排他使用,即在一段時間內(nèi)某資源只能被一個進程占用,其他請求該資源的進程進行等待,直到該資源釋放。
請求和保持條件:一個進程因為請求資源而阻塞等待時,對自己已經(jīng)獲得的資源保持不放。
不可搶占(剝奪)條件:進程已經(jīng)獲得的資源,在未使用完之前不能被強行剝奪。
循環(huán)等待條件:若干進程之間形成一種環(huán)形的等待資源關(guān)系。
?
?
練習(xí)題:
?S < 5: 一定死鎖
如果A,B,C每個都有4個資源,再多給1個資源,則不會死鎖。 所以:
S= [5,12]可能死鎖,可能不死鎖
s>13,一定不會死鎖。
如果有m個進程,都需要n個資源,文章來源:http://www.zghlxwxcb.cn/news/detail-496087.html
則 不可能發(fā)生死鎖: S > m *(n-1) + 1文章來源地址http://www.zghlxwxcb.cn/news/detail-496087.html
到了這里,關(guān)于軟考高級系統(tǒng)架構(gòu)設(shè)計師(三) 基礎(chǔ)知識之操作系統(tǒng)1進程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!