【3】儲存管理
3.1 計算機中的儲存器
暫存器儲存器
高速緩衝區
輔助儲存器
處理器能直接訪問暫存器
主儲存器
高速緩衝區
通常的暫存器
指令暫存器 =通用暫存器
=控制暫存器
用來存放作業系統的程式
資料管理資訊以及作業系統與硬體的介面資訊等我稱之為系統區
除系統區外其餘的主存空間可以存放使用者的程式和資料成為使用者區
3.2重定位
3.2.1絕對位址和邏輯位址
把主存空間的位址編號稱為主儲存器的絕對位址與其位址相對應的主存空間稱為實體地址空間
使用者程式使用的位址稱為邏輯位址
於邏輯基位址對應的儲存空間稱為邏輯位址空間
3.2.2 重定位
把邏輯位址轉換成絕對位址的工作稱之為重定位或者位址轉換
重定位的方式有兩種
靜態重定位
動態重定位
1 靜態重定位
在裝入乙個作業時
把作業中的指令位址和資料位址全部轉換成絕對位址,由於位址轉換工作是在作業執行前集中一次完成的
所以在作業執行過程中無需在進行位址轉換工作(在絕對位址的值上加法就行
)2 動態重定位
在作業執行過程中,由硬體的位址轉換機構動態地進行位址轉換
在執行指令時只要把邏輯位址與基址暫存器中的值相加就可以得到絕對
位址,這種定位方式只在指令執行過程中進行的成為動態cdx
3動態重定位的硬體支撐
動態重定位是由軟體和硬體的相互配合來實現的
硬體設定乙個基址暫存器
當儲存管理為作業分配了乙個主存區域後
裝入程式原封不動的把作業裝到所分配的區域中
然後把主存區域的起始位址存入基址暫存器中
3.3單使用者聯絡儲存管理
1 儲存空間的分配
作業系統站了一部分儲存器空間
其餘剩下的主儲存器空間都分配乙個作業使用
任何時候主儲存器中最多只用乙個作業
採用這種方式管理
處理器設定了乙個界限暫存器
暫存器中內容為當前用個使用者使用的主儲存器區域的起始位址
2 如何實現儲存保護
因為每次只允許乙個作業裝入主儲存器
因此不必考慮作業在儲存器中移動問題可以採用靜態重定位的方式進行位址轉換
如果絕對位址在規定的範圍內
則可執行
否則產生乙個
位址越界的中斷事件讓作業系統處理
達到儲存保護的目的
儲存保護:為了防止各儲存區域的程式相互干擾
必須對它們採取保護措施
成為儲存保護+
3.4固定分割槽儲存管理
、1儲存器的分配
把主儲存器中可分配的使用者區域先劃分若干個連續區
每個連續區稱為乙個分割槽
一旦劃分好後
分割槽個數確定
每個分割槽可以裝入乙個作業
但是不允許搓個作業放在乙個分割槽中
這種管理方式適用於多道程式設計系統
2如何實現儲存保護
處理器設定了一對暫存器
成為上限暫存器和下限暫存器
下限位址
<=等於絕對位址
<
上限位址 條件不成立 否則產生位址越界中斷事件
3如何提高主存空間的利用率
1 根據經常出現的作業的大小和數量來劃分分割槽,盡可能使各個分割槽被充分利用
2 劃分分割槽時候按照分割槽的大小,低位址部分都是較小的分割槽
高*****大 各個分割槽按照大小次序存放在分割槽分配表中
至少順序查詢這個表
就能夠找到滿足作業要求內最小的分割槽
減少閒置空間
保留大空間利於大作業的裝入
3按照作業隊主存空間的需求排成多個作業佇列
3.5 可變分割槽儲存管理
1可變分割槽儲存管理的劃分
在作業要求裝入主儲存器時
根據作業需要的主儲存器空間的大小和當時主儲存器空間使用情況來決定是否為作業分配乙個分割槽
根據作業實際需求來劃分的
分割槽的個數也不是預先確定的
而是與裝入作業數決定的
2 可變分割槽儲存管理是如何實現主存的分配
在系統初始化中
主存除了作業系統做占用的部分外
整個使用者區都是乙個大空間
可以按照作業
需要的大小順序分配空閒區
直到不夠分配為止
3常用的分配演算法
1最先適應分配演算法
每次分配時總是順序查詢空閒區表,找到第乙個能滿足作業長度要求的空閒區,分割這個找到的空閒區一部分分給作業,另一部分仍為 空閒位
這種分配演算法容易產生碎片
2最優勢適應分配演算法
按照作業要求從所有的空閒區中挑選乙個能滿足作業要求的最小空閒區,這樣可以保證不去分割乙個更大的分割槽
3最壞使用分配演算法
總是挑選乙個最大的空間區,分割一部分給作業使用,使剩下的部分不至於太小
仍可供分配使用,採用最壞使用分配演算法、
可以空閒區長度以遞減順序排序,表中第乙個登記項所對應的空閒區總是最大的
同樣在收回乙個分割槽時
必須吧空閒區表調整
成按空閒區長度的遞減順序排列登記。
4硬體的位址轉入按機構以及位址轉入的實現
可變分割槽管理一般採用動態重定位方式裝入作業,每讀一條指令都要變化一次位址
需要硬體支援-基址暫存器 限長暫存器 以及一些加
法,比較線路等。當作業占用處理器執行時
程序排程便把該作業所佔分割槽的起始位址送入基址暫存器
把作業所佔分割槽的最大位址
送到限長暫存器。取出一條指令後絕對位址若滿足
基址暫存器內容
<=絕對位址
<=
限長暫存器內容,否則產生位址越界中斷事件
基址暫存器內容+偏移值
=邏輯地位址
5利用移動技術提高主存空間的利用率
如果有兩個空間區分別 20k 來了乙個新的作業 需要
30k
利用移動技術能吧這兩個空間合併成乙個空間放下作業
1 集中分散的空閒區
2使於作業動態擴充主存
3.6 頁式儲存管理
上面集中管理都是連續空間
1分頁和分塊
==就是把儲存器分為若干大小相等的區,每個區就是乙個塊,對應的,在程式中 邏輯位址進行分頁其大小和每個塊一致
2儲存器分配
==進行儲存器分配的時候 總是以塊為單位進行分配 乙個作業的資訊有多少頁 裝入主存就給他分配多少塊,分配給作業的儲存塊可以使不連續的,即作業資訊可以按頁分散在主存空閒塊中
3頁表的構造以及怎樣利用頁表進行位址轉換
每個被裝入主存的作業都有一張頁表
可以指出該作業邏輯位址中頁號所占用的主存塊號之間的對應關係
頁表的長度由作業所佔頁數決定
行號對應頁號
行中記錄的是主存中的塊號
頁式儲存管理也是動態重定位的方式裝入作業
作業執行時由硬體的位址轉換機構來完成從邏輯位址到絕對位址的轉換工作
在作業執行的過程中
處理器每執行一條指令都要讓位址轉換器按照邏輯位址中的頁號差得到該頁對應的塊號
再按頁位址換算成絕對位址
絕對位址 = 塊號*塊長
+頁內位址
抖動/顛簸 在多道作業執行時 由於作業在主存中的頁面不足 致使頁面需要頻繁的調進 調出 使
cpu時間大量的耗費在調進調出上正常運算工作效率急劇下降 造成系統的顛簸或抖動
4 頁式儲存管理的分配
分頁式儲存管理吧貯存期的可分配區按頁面大小分成若干塊
分配主儲存器空間按照塊為單位
可用一張主儲存器分配表來記錄已分配
的塊和尚未分配的塊
以及當前剩餘的空閒快
由於塊的大小是固定的
所以可以用一張
位示圖來構建成主儲存器分配表
進行主儲存器分配時,先查空閒快數能否滿足作業要求
若不能滿足
則作業不能裝入
若能滿足
找出對應的塊號
塊號 = 字型大小 *字長
+位號5頁式儲存的**
當乙個作業執行執行結束
則應**作業所佔的主儲存器塊
根據歸還的塊號計算該塊在塊點陣圖中對應的位置
將占用標誌清為0
把歸還塊加入到空閒快數中
字型大小 = i/字長 位號
= i mod
字長 (除以字長取餘)
作業系統概論
作業系統 operation system,縮寫為os 是管理計算機系統資源 控制程式執行 改善人機介面和應用軟體提供支援的一種系統軟體。定義 把乙個程式在乙個資料集上的一次執行稱為乙個程序 process 程序是動態的。在現代作業系統中,把使用者的乙個計算問題或乙個應用問題作為乙個程序,把該程序中...
作業系統概論
作業系統的三個基本型別是 批處理作業系統 分時作業系統和實時作業系統。批處理作業系統的主要缺點是 缺少互動性允許多個使用者以互動方式使用計算機的作業系統稱為 允許多個使用者將多個作業提交給計算機集中處理的作業系統稱為 計算機系統能及時處理過程 控制資料並做出響應的作業系統稱為 分時作業系統 批處理作...
作業系統概論
計算機系統是能夠按照人的要求接收和儲存資訊,能對資訊進行處理並提供所需結果,其結果 輸出資訊 取決於所接受的資訊 輸入資訊 及相應的處理方法。1.學習過程 原先在學習計算機四級的開始中,邊學習過一部分相關的作業系統的知識,這次也算是一步簡單的複習吧。在本次學習過程中,了解了先前沒有看過的細節的知識部...