一、進程
進程通常由程序、數據集合、進程控制塊PCB組成。
PCB是進程的唯一標識,操作系統就是根據進程PCB來感知進程的存在的,並依此對進程進行管理和控制。
PCB有三種組織方式
線性方式 | 把PCB組織在一張線性表中,每次查找需要掃描全表。 |
連接方式 | 吧具備同一狀態的PCB,用其中的鏈接字鏈接成一個隊列,PCB存儲在一個連續的區域。 |
索引方式 | 把同一狀態的的進程歸入一個索引表,多個狀態對應不同的索引表。 |
二、前驅圖
前驅圖是一個有向無循環圖,由節點和有向邊組成,節點代表各個節點的操作,而節點間的有向邊表示兩個程序段操作之間的前趨關係。
用這種圖可以描述多個程序或進程之間的執行順序。
【程序的順序執行】
一個應用程序由若干程序段組成,每一程序段完成特定的功能,他們在執行時,都要按照某種先後次序執行,僅當前一程序段執行完後,再運行後一程序段,這種執行過程被稱爲程序的順序執行。
程序順序執行時,具有以下三個特徵:
順序性:處理機的操作嚴格按程序規定順序執行
封閉性:程序一旦開始執行,其計算結果不受外界因素影響
可再現性:程序執行只要初始條件一樣,不論如何停頓,重複執行多少次結果都一樣
【程序的併發執行】
程序順序執行時,雖然減少了開發週期,但系統資源的利用率卻很低,爲此,在系統中引入了多道程序技術,使得程序或程序段間能併發執行。
事實上,並非所有的程序都能並非執行,只有不存在前趨關係的程序之間纔可能併發執行。
程序併發執行時,具有以下三個特徵:
間斷性:在執行過程中,由於要共享資源與相互合作,使得這些併發的程序間形成了相互制約的關係,從而導致了 “ 執行 — 暫停 — 執行 ” 這種間斷性的活動規律。
失去封閉性:由於共享資源,資源狀態由多道程序改變,程序運行失去了封閉性,即程序運行受其他程序的影響。
結果不可再現性:結果的不確定,使得程序執行將沒有任何意義
三、PV操作
1)P操作
a. 將信號量S的值減去1,即S = S -1
b. 如果S>=0 ,則程序繼續執行;否則該進程置爲等待狀態
2)V操作
a. 將信號量S的值加上1,即S = S +1
b. 如果S>0 ,則進程繼續執行;否則說明有等待隊列的等待進程,需要喚醒等待;
四、 存儲管理
有分區存儲、分段存儲、分頁存儲、段頁式存儲以及虛擬存儲;
這部分要知道計算方案;參考:https://blog.csdn.net/u010293698/article/details/48913295