前言:
1.認識各種儲存部件
暫存器、記憶體、磁碟
暫存器、快取記憶體、記憶體、磁碟快取、磁碟
主存:儲存程序執行時的程式和資料
暫存器:速度最快,**昂貴容量不大,一般以字為單位,只要存放指令一次操作的資料就夠了 。
快取記憶體:速度快、存放部分記憶體資料、硬體自動處理
一種速度比記憶體快的儲存裝置,一般同暫存器一樣整合在cpu中。
存放記憶體的部分拷貝,把常用的資料放這裡可以提高速度。
將短時間內經常訪問的部分資料從記憶體放到快取記憶體中,減少cpu訪問記憶體的時間,是基於程式區域性性。
快取記憶體一般不能被程式直接更改,而由硬體自己處理對記憶體資料的拷貝。
磁碟快取:記憶體的一部分,將頻繁使用的一部分磁碟資料資訊預讀入在磁碟快取,減少磁碟讀寫時間。
2.儲存器管理:
容量雖不斷擴充,仍不能滿足現代軟體和使用者的需要,是一種寶貴、緊俏的資源;
多層次處理,協調cpu與儲存裝置的速度差距;
重點是記憶體管理,對其有效的管理直接影響儲存器的利用率、系統效能。
儲存器資源的分配和**
位址變換(邏輯位址與實體地址的對應關係維護)
儲存共享和保護
虛擬儲存的排程演算法
多道程式環境下,程式執行必須為之先建立程序。
建立程序的第一件事:將程式和資料裝入記憶體。
1.程式的裝入和鏈結
(1)程式進記憶體的一般過程:
編譯compiler:編譯程式:將使用者源**編譯成若干個目標模組。
(2) 1)位址的概念
u 邏輯位址(相對位址,虛位址)
使用者的程式經過彙編或編譯後形成目標**,目標**中的指令位址是相對位址。
n 一般首位址為0,其餘指令中的位址都相對於首位址來編址。
不能用邏輯位址在記憶體中讀取資訊
u 邏輯位址(相對位址,虛位址)
u 實體地址(絕對位址,實位址)
n 記憶體中儲存單元的位址。
n 實體地址可直接定址被執行。
將使用者程式中的邏輯位址轉換為執行時由機器直接定址的記憶體實體地址的過程。
2)程式裝入中的位址處理
絕對裝入(邏輯位址=實體地址)
邏輯位址
à重定位à 實體地址
u 編譯程式生成的「目標**」就是」裝入模組」
,邏輯位址直接從某個位址r處增長,裝入模組直接裝入記憶體位址r處。
u 實體地址由誰生成?
u 一般由編譯或匯程式設計序給出;
u 或由程式設計師賦予(要求程式設計師熟悉記憶體使用情況)
u 缺點:過於依賴硬體結構, 只適用早期針對硬體直接程式設計、單道環境下。
靜態重定位裝入
n 位址對映在程式執行之前進行,重定位後實體地址不再改變。
u 優點:不需硬體支援,可以裝入有限的多道程式
u 缺點:軟體裝入一次完成,乙個程式通常需要占用連續的記憶體空間,程式裝入記憶體後不能移動。也不易實現共享。
動態執行時重定位裝入
n 實際執行中往往會需要程式在記憶體中的各位置移動,即經常需要重定位到不同的實體地址上。這種執行時移動程式要求位址變換要快速,實現時一般依靠硬體位址變換機構——乙個重定位暫存器。
n 程式裝入記憶體時,可多次重定位到不同位置。且可以不立即把裝入模組中的相對位址轉換為絕對位址,而是把這種位址轉換推遲到程式真正要執行時才進行。
更適用於部分裝入
3)不同的程式鏈結裝入方式(使用記憶體的時機)
裝入執行前,生成可執行檔案時進行的。
將多個目標模組及所需庫函式鏈結成乙個整體,以後不再拆開。
由乙個目標模組開始裝入,若又涉及外部模組呼叫事件,裝入程式再找出相應的外部目標模組,並將它裝入記憶體,還要修改目標模組中的相對位址。
比靜態鏈結好在**?
(1) 靜態鏈結好的程式,修改部分模組後,需重新鏈結成可裝入程式。動態方式則便於修改和更新。
(2) 便於實現共享。靜態的n個程式都需要乙個模組時,需要進行n次拷貝。
裝入時動態鏈結的問題
許多情況下,事先不知道某應用程式本次執行需要哪些模組,只能全部裝入,裝入時全部鏈結在一起,效率低。
優點:程式執行裝入的內容少了,加快了裝入過程,而且節省大量的記憶體空間。
第四章 第一節
乙個組合語言程式從寫出到最終執行的簡要過程 編寫 編譯 連線 執行 編寫 使用文字編輯器 如記事本 nodepad ultraedit等 用組合語言編寫彙編源程式。編譯 使用組合語言編譯程式 masm.exe 對源程式檔案中的源程式進行編譯,產生目標檔案。連線 使用連線程式 link.exe 對目標...
作業系統複習 第四章 第一節 儲存管理
一 儲存管理的基本概念 1.儲存器層次結構 2.儲存管理的任務 位址再定位 儲存共享與儲存保護 虛擬記憶體 3.位址空間 二 程式的裝入 1.程式裝入技術 從外存裝入記憶體 2.靜態位址再定位 3.動態位址再定位 缺點 三 記憶體分配儲存管理方式 1.單道連續儲存管理 單道程式環境 2.分割槽儲存管...
第四章 第一節 效率本質
學習是投資回報率最高的行為 拒絕學習的原因總結有以下幾點 1 不知道學習後有什麼收穫 2 沒有收穫,就不知道收穫有多好 多大 3 既然不了解學習的好處,就沒有動力學習 得出結論 學習乙個新東西,首先需要了解學習後能給自己帶來什麼樣的改變,可激發自己的學習興趣,增強自己的學習動力 作者對學習帶來的收穫...