現代作業系統部分章節筆記

2021-09-11 09:44:55 字數 1475 閱讀 8398

2.建立程序:

3.程序終止:正常退出、出錯退出、嚴重錯誤退出、被其他程序殺死。前兩個屬於自願,後兩個屬於非自願

4.程序的層次結構:unix中程序有父子關係,程序及其後裔會組成乙個程序組。window中程序沒有父子關係,所有程序地位相同。

5.程序狀態:

6.程序的實現:為了實現程序模型,作業系統維持了一張程序表。表中的每個資料結構(也稱程序控制塊)就代表乙個程序。程序控制塊由以下幾部分構成:

7.多道程式設計模型:

2.執行緒模型:執行緒共享程序的記憶體和**,但是有自己的程式計數器、暫存器、堆疊和本地變數

3.posix執行緒:ieee定義了pthread,大部分unix系統都支援該標準,並實現了一些系統呼叫來進行對pthread的操作。

4.使用者空間執行緒:將執行緒包放在使用者空間來在一些不支援多執行緒的系統上模擬多執行緒。此時每個程序都有自己的執行緒表以記錄執行緒模型中的資料。這種方式有以下優點

5.核心空間執行緒:作業系統的核心直接支援多執行緒,執行緒表放在核心之中。有以下優點

6.混合實現:由程式設計師確定乙個程序中有多少個核心執行緒,然後對每個執行緒進行多路復用,此時就將兩種執行緒實現方式取長補短了。

3.互斥方案:

2.鎖變數:類似於訊號量,但是還是無法保證原子性

3.peterson解法:

4.tsl指令:硬體支援原子性操作。

5.訊號量:可以解決生產者-消費者問題

6.互斥量:訊號量的簡化版,適用於兩個程序

7.管程:上面兩個會產生死鎖問題,此可以用這個

8.訊息傳遞

9.記憶體屏障

3.互動式的排程:

2.交換技術:當記憶體空間不足以放下所有程序的時候,我們需要使用交換技術,將空閒的程序放回磁碟,等待要用的時候就取回。這樣一來會造成記憶體碎塊,而且如果程序所需記憶體會增大,那麼就會存在空間不足的問題。

3.空閒記憶體管理:

2.基本思想:每個程式有自己的位址空間,被分為多個塊。並不是所以塊都要在記憶體中才能執行程式,當程式引用到在物理記憶體中的位址空間的時候,硬體會去執行該引用的對映。而如果程式引用的部分不在物理記憶體中的位址空間的時候,作業系統需要將缺失的部分裝入物理記憶體中並重新執行指令。

3.分頁:如乙個計算機可以產生16位的位址,雖然可以編寫64k的程式,但是此時物理記憶體只有32k。這時候可以將64k的虛擬空間分成固定大小的頁面,在物理記憶體中只要裝入目前必須的頁面就行了,剩下的程式可以有虛擬位址,但是只需要在磁碟上就行。

4.頁表:一種分頁的簡單實現,從虛擬位址到實體地址的對映可以分為兩部分:1.虛擬位址的頁號2.該頁上面的偏移量。如果一塊虛擬記憶體匯入到了物理記憶體中,此時虛擬記憶體上就會標上物理記憶體的頁號,此時我們就可以通過頁號找到,某塊物理記憶體。再通過虛擬記憶體上的偏移量,就能找到物理記憶體上的實際位址。頁表就是乙個對映的集合

6.頁面置換演算法:在缺頁的時候作業系統會將乙個需要的頁面替換進物理記憶體中,此時就需要通過演算法來找到最何時的頁面被替換出去。

7.分段

現代作業系統部分章節筆記

2.建立程序 3.程序終止 正常退出 出錯退出 嚴重錯誤退出 被其他程序殺死。前兩個屬於自願,後兩個屬於非自願 4.程序的層次結構 unix中程序有父子關係,程序及其後裔會組成乙個程序組。window中程序沒有父子關係,所有程序地位相同。5.程序狀態 6.程序的實現 為了實現程序模型,作業系統維持了...

《現代作業系統》筆記

特色 1.講述了作業系統演變的過程 2.沒有空洞講述概念,用圖表和c 講了作業系統的具體實現 什麼是作業系統 自頂向下看,作業系統是擴充套件機器,向使用者提供抽象。自底向上看,作業系統是資源管理者,給程序提供資源。設計思想 1.利用cpu高速和人類及i o裝置之間的低速的差距,多個程序共享cpu,虛...

《現代作業系統》筆記 1

作業系統兩種觀點 資源管理 硬體擴充套件 作業系統的核心 可處理的系統呼叫集 程序 執行程式的抽象,程序表用以儲存程序資訊 程序系統呼叫 程序建立 程序終止 每個程序 供使用者啟動的uid 程序建立場合 系統初始化 執行了正在執行程序所呼叫的程序建立系統呼叫 使用者請求建立乙個新程序 乙個批處理作業...