作業系統之程序管理和記憶體管理

2021-10-09 12:16:51 字數 1355 閱讀 6812

程序和執行緒

程序主要是一些資料放在那裡

程序可以建立執行緒,執行緒也可以建立執行緒

就緒,阻塞、執行三個狀態之間的阻塞

執行緒切換可能造成程序切換,也可能不造成

處理機排程

算平均周轉時間

程序同步

訊號量pv為重點

臨界資源和臨界區不一樣,臨界資源是資料之類的,而臨界區是**段

pv不是系統呼叫

死鎖銀行家演算法,死鎖避免

資源有向圖,死鎖檢測

不死鎖最小資源數

根據現有資源確定乙個安全序列

記憶體管理概念和虛擬記憶體管理

編譯鏈結裝入

將源**編譯成若干目標模組

由鏈結程式將編譯後形成的一組目標模組及所需的庫函式鏈結在一起,形成乙個完整的裝入模組

由裝入程式將裝入模組裝入記憶體中執行

鏈結有三種

靜態鏈結

裝入時動態

執行時動態鏈結

裝入也有三種

絕對裝入

可重定位裝入

動態執行時裝入

覆蓋和交換

按順序進行調入後續覆蓋掉之前調入的

將不占有cpu的程序的資源換出記憶體,把占用cpu的掉進來

連續分配 管理方式

單一連續

固定分割槽,調入記憶體放入對應大小的地方,可以一樣也可以不一樣。

動態分割槽:由於分配給程序而造成了分割槽

固定分割槽產生內碎片,而動態分割槽產生外碎片,因此就產生了分頁管理機制。

將程式切成乙份乙份的,對映到不同的頁塊中去,只保持了邏輯上的連續性

現在假設每個頁大小為4kb,邏輯位址32位,按位元組編址,我們的分頁管理系統應該是個什麼樣的呢?

首先記憶體被我們分成了4kb乙份份的大小

那麼頁內位址就是12位,還剩下20位的位址來給我們選擇對映到那個頁面

20位用3b就可以儲存,如果採用對其,4b可能會比較好,那我們就得到了1mb個頁,這麼多邏輯頁差不多得有4mb存放這個對映系統

存放這些對映關係的話需要1k頁頁表

說實話可能有點大了,每次執行都得把這麼多頁表帶進來。

所以可以換乙個思路,可以用一張頁表乙個總目錄,也就是我們得頂級頁表

1k張頁表是十位,4kb,只有5張

頁表起始位址和頁表長度放在pcb中

虛擬記憶體

為什麼引入虛擬記憶體

虛擬記憶體大小

虛擬記憶體解決什麼問題,虛擬記憶體帶來什麼問題

解決作業執行時必須全部裝入記憶體的問題,記憶體過小的問題

運用了區域性性原理,只裝入一部分,另一部分在記憶體外,假裝裝入了

需要以下硬體支援

一定記憶體外存

頁表中斷

位址變換

虛擬儲存器容量由cpu定址位數決定

作業系統 程序管理

程序 申請資源和排程資源的基本單位,乙個程序就是乙個程式的乙個執行過程。是乙個動態的概念,在不同的作業系統中,會有不同的程序出現。程式 靜態概念,是指令和資料的集合,可長期儲存。程序與程式對應關係 乙個程式可以對應乙個程序或者多個程序 乙個程序可以對應乙個程式,或者一段程式 程序由程式,資料集合,程...

作業系統 程序管理

1.程序描述 2.程序狀態 2.2 程序狀態變化模型 2.3 程序掛起模型 2.4 程序控制 3.執行緒 4.ipc 5.程序互斥與同步 乙個程式在乙個資料集合上的一次動態執行過程。程式 演算法 資料結構 與程式的區別 併發concurrency 一段時間內有多個程序執行 並行parallelism...

作業系統 程序管理

當多個作業並處於記憶體中時,同乙個作業中沒有前趨關係的程式段或者不同作業的程式段可以並行執行。程式併發執行的特徵 程式併發導致的不可再現性 由於程式的併發執行,失去了封閉性,其計算結果與併發程式推進的速度有關,從而失去了程式的可再現性,也就是說,程式經過多次執行後,雖然執行時的環境和初始條件相同,但...