好吧,我們又見了,快兩個月了,又是過年,又是單位有事,很忙。
前面我們說了一大堆,好像、也許、應該、確實(至少我這麼認為)沒用的東東,但是~~~~~~~~~~~~~~~~~這次不一樣了,說說有用的。
前趨圖
表現事物先後順序的制約關係,的圖
是一種有向無循環的圖。
SCP代表了流水線的3個步驟,比如取值、分析和執行三步。
S1沒有前趨結點,稱為開始點,沒有任何節點的制約,可以直接執行。
P3沒有後續結點,稱為終止結點。
圖中的其他結點,或多或少的有1或2個制約結點存在,我們將些制約關係劃分為:直接制約和間接制約
直接制約,一個操作、多個步驟間的制約,同步的進程之間的制約,如S1、C1、P1
間接制約,多個操作、相同步驟間的制約,互斥的進程之間的制約,如S1、S2、S3
沒有概念了,前趨也就這些東西
進程調度
前面我們提到過進程的狀態,互斥等等,現在經過前趨圖的休息,我們再學習一下進程的調度,
調度很容易理解,交通警察唄,讓那個進程可以使用處理器。
引起調度的原因就幾個:
1、正在執行的進程,執行完畢,(調度:搞完就趕緊走,下一個抓緊了)
2、執行中的進程調用阻塞將自己阻塞,進入睡眠狀態(進程:老子不幹了,我要休息,睡覺,調度過來,我下鍾了)
3、執行中的進程因為資源不足而阻塞,或者激活了等待資源的進程隊列(調度:沒有鍾了,等著吧。 或者 進程:我找2號。調度:2號?下鍾了?有人點了,正等著呢,2號~~,上鍾了,不是這個,是那個。這個進程:靠。 那個進程:老子等半天了。)
4、在分時系統種,進程用完一個時間片。(調度:進程先生,您的鐘到時間了。)
5、就緒隊列中,某個進程的優先級高於當前執行進程的優先級(調度:對不起,進程先生,請您往後站,有個VIp中P來了,請讓開,謝謝合作)
我們知道什麼時候會引起調度,那麼引出一個問題,如何調度?
兩種方式,剝奪和非剝奪
剝奪方式:有VIp來了,請當前進程立刻、馬上消失、滾蛋,處理器是vip的。
非剝奪方式:我佔了處理器,請等著,除非我自己進入阻塞,或者時間到了。
ok。又有新的東東引出來了,調度算法:
1、先來先服務FCFS、先進先出FIFO,不解釋,多直白。
2、優先數調度,就緒隊列按優先數排隊,又分為靜態和動態,靜態為進程開始執行前確定,動態可以在進程執行過程中改變
3、輪轉法,用於時間片,就緒隊列按FCFS方式排隊,進程到時間後,自行釋放處理器,並排隊到尾部
就到這裡吧,下一次說存儲,一部分內容和cache有些互通。下次見