程序順序執(zhí)行時的特征 ?
1.順序性?處理機的操作嚴格按程序規(guī)定順序執(zhí)行
2.封閉性 ?程序一旦開始執(zhí)行,其計算結果不受外界因素影響
3.可再現性?程序執(zhí)行只要初始條件一樣,不論如何停頓,重復執(zhí)行多少次結果都一樣。
程序的并發(fā)執(zhí)行 ?? 符合前驅關系
間斷性? 失去封閉性? 不可再現性
多道程序在間斷性運行中的“相互影響”造成了失去封閉性。

進程
進程的定義: 進程是進程實體的運行過程,是系統進行資源分配和調度的一個獨立單位
進程的特征:1.結構性? 特征 ,進程的根本——PCB
? ? ? ? ? ? ? ? ? ? ? ? ? ?? 2.動態(tài)性 3 .并發(fā)性? 4.獨立性 5.異步性

? ? ? ? ? ? ? ??進程的三種基本狀態(tài)
(1)就緒狀態(tài)(Ready) ? ? ? 進程獲得除CPU之外的所有必需資源,一旦得到CPU控制權,可立即運行。
(2)運行狀態(tài)(Running) ? ? 進程已獲得所有運行必需的資源,正在處理機上執(zhí)行。
(3)阻塞狀態(tài)(Blocked) ? ? ? 正在執(zhí)行的進程由于發(fā)生某事件(請求I/O、申請緩沖、時間片到)而暫時無法執(zhí)行時,便放棄CPU后暫停

時間片完,進程從執(zhí)行狀態(tài)變?yōu)榫途w狀態(tài)
? ? ? ? ? ? 各種狀態(tài)下的進程隊列
單處理機系統,執(zhí)行態(tài)的進程只有一個;
就緒態(tài)、阻塞態(tài)的進程可有多個。一般講它們分別排稱一個隊列,稱就緒隊列、阻塞隊列。
阻塞隊列有的會根據不同原因再排成多個隊列。
進程控制塊 PCB ? ? ? ? ? ?? 進程實體:代碼段+數據段+PCB
進程控制塊定義:存放進程的管理和控制信息的數據結構稱為進程控制塊。
進程控制塊是進程存在的唯一標志
2.2進程控制
進程控制的基本過程:進程的創(chuàng)建、終止、阻塞與喚醒、掛起和激活
進程的創(chuàng)建過程:1.申請空白PCB 2.為新進程分配資源 3.初始化進程控制塊 4.將新進程插入就緒隊列 ?
2.3 進程同步 ?
進程間有什么相互影響?
兩種制約關系:
間接相互制約關系:主要源于資源共享,表現為
進程A---打印機資源---進程B(互斥)
直接相互制約關系:主要源于進程合作,表現為
進程A寫緩沖---進程B讀緩沖(有序)
進程同步的主要任務:
使并發(fā)執(zhí)行的諸進程之間能有效地共享資源和相互合作,從而使程序的執(zhí)行具有可再現性。
臨界資源:一次僅允許一個進程使用的資源
? ? ? ? ? ?? 生產者——消費者問題
一群生產者進程生產產品供給消費者進程消費,在兩者之間設置具有n個緩沖區(qū)的緩沖池,生產者進程所生產的產品放入一個緩沖區(qū)中,消費者進程可從一個緩沖區(qū)中取走產品去消費。
生產者和消費者都以異步方式運行,但它們之間必須保持同步:沒有產品不能取,沒有空間不能放。也不能同時對一個空間進行取和放
in加1表示為in:=(in+1)mod n;out加1表示為out:=(out+1)mod n;當(in+1)mod n=out時表示緩沖池滿;in=out表示緩沖池空。


對于生產者和消費者而言 ,counter應作為臨界資源,應對其互斥訪問? ;生產者之間共同要影響的變量in要互斥,消費者間的out也一樣
互斥與同步
互斥:在操作系統中,當一個進程進入臨界區(qū)使用臨界資源時,另一個進程必須等待,知道占用臨界資源的進程退出臨界區(qū),我們稱進程之間的這種相互制約關系為“互斥”。
同步:多個互相合作的進程,在一些關鍵點上可能需要互相等待或互相交換信息,這種相互制約關系稱為進程同步關系??衫斫鉃椤庇行?.
臨界區(qū)
每個進程中訪問臨界資源的那段代碼叫臨界區(qū)。為了正確同步,對臨界區(qū)的代碼要增加控制
同步機制應遵循的規(guī)則
空閑讓進:資源使用最基本原則
忙則等待:保證互斥
有限等待:合適時被喚醒防止忙等
讓權等待:能主動釋放CPU防止忙等
硬件同步機制?
①關中斷
進入鎖測試前關閉中斷,知道完成鎖測試并上鎖后才能打開中斷。進程在臨界區(qū)執(zhí)行期間,系統不響應中斷,從而不引發(fā)調度。
缺點: 濫用風險;關中斷時間過長會影響效率,限制CPU交叉執(zhí)行能力;不適用于多CPU系統
2.信號量機制
1)整型信號量

記錄型信號量
整型信號量符合“有限等待”原則但不符合“讓權等待”原則: ? ? ? 整型信號量的wait操作,當s ≤0時,當前進程會占著CPU不斷測試;信號量原語不能被打斷,這個占有CPU的進程會一直不斷的占據CPU循環(huán)下去,陷入忙等。
整型變量value(代表資源數目),大于0時表示當前可用資源的數量;小于等于0時表示等待使用該資源的進程數,即在該信號量隊列上排隊的PCB個數。

互斥信號量mutex初值為1;每個進程中將臨界區(qū)代碼置于P(mutex)和v(mutex)原語之間;必須成對使用P和V原語(遺漏P原語不能保證互斥訪問,遺漏V原語不能在使用臨界資源之后將其釋放)
4.AND型信號量
進程往往需要兩個及以上共享資源,死鎖可能性大; ? ? ? ? ? ? ?? 一次性分配給進程所需資源,用完一起釋放。Wait操作時對它所有需要的資源都要判斷,有AND條件,故稱“AND同步”
