天天看點

作業系統——多個程序間的故事

看到作業系統程序這一塊兒都會有點亂吧。come on!

上回說到單個程序一生的故事,現在的作業系統是允許多個程序并發執行的,那麼它們之間又會擦出什麼火花呢?

看“漫畫”(幹貨、可下載下傳):文字為輔

作業系統——多個程式間的故事

1、程序控制塊 PCB:每個程序都有唯一的程序控制塊,它是作業系統感覺程序存在的唯一标志。包含資訊:程序辨別符資訊、處理機狀态資訊(通用寄存器、指令計數器、程式狀态字PSW、使用者棧指針)、程序排程資訊、程序控制資訊

2、程序排程算法:具體内容見作業系統概念總結;原則:周轉時間短、響應時間快、截止時間保證、系統吞吐量高、處理機使用率好

3、程序切換:

             儲存包括程式計數器和其他寄存器在内的CPU上下文環境(存進度)、

             更換被替換程序的程序控制塊(換老大)、

             修改程序狀态,把執行态改為就緒态或阻塞态(改狀态)、

             将替換程序的程序控制塊移到就緒隊列或阻塞隊列(換隊列,**注意換程序控制塊與改狀态的先後順序**——執行隊列是              否允許存在非執行态程序)、

             執行 通過程序排程程式 選擇的新程序,并更新改程序的程序控制塊(do ,*可參考程序控制塊包含資訊*)、更新記憶體                  管理的資料結構(*程序執行需要獲得資源*)、

             恢複 被排程程式 選中的程序的硬體上下文(恢複進度)

4、程序具體執行情況(超級通道);

      程序同步:并發執行的程序要共享系統的軟、硬體資源,為了保證在多任務共享系統資源的情況下程式執行得到正确的結             果,引入同步機制;   原則:空閑讓進、忙則等待、有限等待、讓權等待

      信号量機制:信号量用來判斷能否通路與信号量對應的共享資源,可看做連接配接同步程序與共享資源的電話線

5、線程執行:類似于程序的執行情況,注意線程與程序的關系,誰的狀态影響誰

6、死鎖問題(注意區分I/O管理的中斷):涉及到多個參與者時總會産生對資源的糾紛,程序也不列外,程式執行時程序通路共享資源順序不當導緻死鎖,條件有4:互斥條件、請求和保持條件、不剝奪條件、環路等待條件——缺一不可;預防死鎖當然就要從産生條件入手了——不讓4個條件同時滿足就OK了

每個東西都有它存在的理由,他們不是單獨來到作業系統中的,再難了解的概念、再突兀的設定,當了解它本身的概念作用、與它相關的東西後,邏輯上它自然就那麼合理、那麼妙了,至少在個人的認知上,找不到半點不讓它存在的理由。這大概就是學作業系統的樂趣、學習的樂趣吧。

後續概念彙總!