首页
/
每日頭條
/
科技
/
操作系統第九章
操作系統第九章
更新时间:2024-11-22 16:10:11
操作系統 第五章 虛拟内存

清華大學 陳渝老師 操作系統教程

操作系統第九章(操作系統第五章)1

起因
  • 程序規模的增長速度遠遠大于存儲器容量的增長速度
  • 理想中的存儲器
    • 更大、更快、更便宜的非易失性存儲器
  • 實際中的存儲器
  • 在計算機系統中,尤其是在多道程序運行的環境下,可能會出現内存不夠用的情況,怎麼辦?
    • 如果是程序太大,超過了内存的容量,可以采用手動的覆蓋(overlay)技術,隻把需要的指令和數據保存在内存當中
    • 如果是程序太多,超過了内存的容量,可以采用自動的交換(( swapping)技術,把暫時不能執行的程序送到外存中;
    • 如果想要在有限容量的内存中,以更小的頁粒度為單位裝入更多更大的程序,可以采用自動的虛拟存儲技術。
覆蓋技術
  • 目标
    • 實在較小的可用内存中運行較大的程序
    • 常用于多道程序系統,與分區存儲管理配合使用
  • 原理
    • 把程序按照其自身邏輯結構,劃分為若幹個功能上相對獨立的程序模塊,那些不會同時執行的模塊共享同一塊内存區域,按時間先後來運行
      • 必要部分(常用功能)的代碼和數據常駐内存
      • 可選部分(不常用功能)在其他程序模塊中實現,平時存放在外存中,在需要用到時才裝入内存
      • 不存在調用關系的模塊不必同時裝入到内存,從而可以相互覆蓋,即這些模塊共用一個分區
  • 缺點
    • 由程序員來把一個大的程序劃分為若幹個小的功能模塊,并确定各個模塊之間的覆蓋關系,費時費力,增加了編程的複雜度
    • 覆蓋技術從外存裝入内存,實際上是以時間延長來換取空間節省
交換技術
  • 目标
    • 多道程序在内存中時,讓正在運行的程序或需要運行的程序獲得更多的内存資源
  • 方法
    • 可将暫時不能運行的程序送到外存,從而獲取空閑内存空間
    • 操作系統把一個進程的整個地址空間的内容保存到外存中(換出swap out),而将外存中的某個進程的地址空間讀入到内存中(換入swap in)。換入換出内容的大小為整個程序的地址空間
  • 技術實現的問題
    • 交換時機的确定
      • 何時需要發生交換
        • 隻有當内存空間不夠或有不夠的危險時換出
    • 交換區的大小
      • 必須足夠大以存放所有用戶進程的所有内存映像的拷貝
      • 必須能對這些内存影響進行直接存取
    • 程序換入時的重定位
      • 換出後再換入的内存位置一定要在原來的位置上嗎
        • 最好采用動态地址映射方法
  • 覆蓋與交換的比較
    • 覆蓋
      • 發生在運行程序的内部
      • 隻能發生在那些相互之間沒有調用關系的程序模塊之間
      • 程序員必須給出程序内的各個模塊之間的邏輯覆蓋結構
    • 交換
      • 發生在内存中程序與管理程序或操作系統之間
      • 是以内存中的程序大小為單位來進行的
      • 不需要程序員給出各個模塊之間的邏輯覆蓋關系
虛存技術
  • 目标
    • 遇到的問題
      • 在内存不夠的情形下,可以采用覆蓋技術和交換技術,但
        • 覆蓋技術:需要程序員自己把整個程序劃分為若幹個小的功能模塊,并确定各個模塊之間的覆蓋關系,增加了程序員的負擔
        • 交換技術:以進程作為交換的單位,需要把進程的整個地址空間都換進換出,增加了處理器的開銷
      • 解決方法
        • 虛拟内存管理技術(虛存技術)
    • 像覆蓋技術那樣,不是把程序的所有内容都放在内存中,因而能夠運行比當前空間還要大的程序。但做得更好,由操作系統自動來完成,無需程序員的幹涉
    • 像交換技術那樣,能夠實現進程在内存與外存之間的交換,因而獲得更多的空間空閑内存空間。但做得更好,隻對進程的部分内容在内存和外存之間進行交換。
  • 程序局部性原理
    • 指程序在執行過程中的一個較短時期,所執行的指令地址和指令的操作數地址,分别局限于一定區域。
      • 時間局部性
        • 一條指令的一次執行和下次執行,一個數據的一次訪問和下次訪問都集中在一個較短時期内
      • 空間局部性
        • 當前指令和鄰近的幾條指令,當前訪問的數據和臨近的幾條數據都集中在一個較小區域内
  • 基本概念
    • 可以在頁式或段式内存管理的基礎上實現
      • 在裝入程序時,不必将其全部裝入到内存,而隻需要執行的部分頁面或段裝入到内存,就可讓程序開始執行
      • 在程序執行過程中,如果需執行的指令或訪問的數據尚未在内存(稱為卻頁或缺段),則由處理器通知操作系統将相應的頁面或段調入到内存,然後繼續執行程序
      • 另一方面,操作系統将内存中暫時不使用的頁面或段調出保存在外存上,從而騰出更多空閑空間存放将要裝入的程序以及将要調入的頁面
  • 基本特征
    • 大的用戶空間
      • 通過把物理内存與外存相結合,提供給用戶的虛拟内存空間通常大于實際的物理内存,即實現了兩者的分離。
        • 如32位虛拟地址理論上可以訪問4GB,而可能計算機上僅有256M的物理内存,但硬盤用量大于4GB
    • 部分交換
      • 與交換技術相比較,虛拟存儲的調入和調出是對部分虛拟地址空間進行的
    • 不連續性
      • 物理内存分配不連續,虛拟地址空間使用不連續
  • 虛拟頁式内存管理
    • 大部分虛拟存儲系統都采用虛拟頁式存儲管理技術,即在頁式存儲管理的基礎上,增加請求調頁和頁面置換功能
    • 基本思路
      • 當一個用戶程序要調入内存運行時,不是将該程序的所有頁面都裝入内存,而是隻裝入部分頁面,就可啟動程序運行
      • 在運行過程中,如果發現要運行的程序或要訪問的數據不在内存,則向系統發出缺頁中斷請求,系統在處理這個中斷時,将外存中相應的頁面調入内存,使得該程序能夠繼續運行
    • 頁表表項
      • 駐留位
        • 表示該頁是在内存還是在外存。如果該位等于1,表示該頁位于内存當中,即該頁表項是有效的,可以使用:如果該位等于0,表示該頁當前還在外存當中,如果訪問該頁表項,将導緻缺頁中斷;
      • 保護位
        • 表示允許對該頁做何種類型的訪問,如隻讀、可讀寫、可執行等;
      • 修改位
        • 表明此頁在内存中是否被修改過。當系統回收該物理頁面時,根據此位來決定是否把它的内容寫回外存;
      • 訪問位
        • 如果該頁面被訪問過(包括讀操作或寫操作),則設置此位。用于頁面置換算法。
    • 缺頁中斷
      • 缺頁中斷處理過程
        • 1.如果在内存中有空閑的物理頁面,則分配一物理頁幀f,然後轉第4步;否則轉第2步;
        • 2.采用某種頁面置換算法,選擇一個将被替換的物理員幀f,它所對應的邏輯頁幀為q。如果該頁在内存期間被修改過。則需把它寫回外存;
        • 3.到q所對應的頁表項進行修改,把駐留位置為0;
        • 4.将需要訪問的頁p裝入到物理頁面f當中;
        • 5.修改p所對應的頁表項的内容,把駐留位置為1,把物理頁幀号置為f;
        • 6.重新運行被中斷的指令。
    • 後備存儲Backing Store
      • 在何處保存未被映射的頁
        • 能夠簡單地識别在二級存儲器中的頁
        • 交換空間(磁盤或者文件):特殊格式,用于被映射的頁面
      • 概念
        • 一個虛拟地址空間的頁面可以被映射到一個文件(在耳機存儲中)中的某個位置
        • 代碼段
          • 映射到可執行二進制文件
          • 動态加載的共享庫程序段
            • 映射到動态調用的庫文件
        • 其他段
          • 可能被映射到交換文件
    • 虛拟内存性能
      • 為了便于理解分頁的開銷,使用有效存儲器訪問的時間effective memory access time(EAT)
      • EAT = 訪存時間 * 頁表命中幾率 page fault處理時間 * page fault幾率
      • eg
      • - page fault幾率:缺頁幾率 - dirty page幾率:對頁進行寫操作幾率
,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
手機更新會恢複出廠設置嗎
手機更新會恢複出廠設置嗎
手機更新會恢複出廠設置嗎?不會更新系統不會恢複出廠設置,下面我們就來說一說關于手機更新會恢複出廠設置嗎?我們一起去了解并探讨一下這個問題吧!手機更新會恢複出廠設置嗎不會更新系統不會恢複出廠設置所謂手機升級就是更新手機内的操作系統版本。手機裡...
2024-11-22
筆記本電腦i5和i7有什麼區别
筆記本電腦i5和i7有什麼區别
筆記本電腦i5和i7有什麼區别?超線程:超線程意味着每個處理器核心可以處理兩個線程而不是一個,在運行Windows系統及一些兼容軟件時擁有更出色的性能表現通常來說,i5處理器不具備超線程功能,而i7則基本支持,在進行照片、視頻編輯操作時擁有...
2024-11-22
windows7安裝程序正在啟用服務怎麼重啟電腦
windows7安裝程序正在啟用服務怎麼重啟電腦
windows7安裝程序正在啟用服務怎麼重啟電腦?首先進入BIOS中,然後嘗試禁用ACPI方法解決看看,今天小編就來說說關于windows7安裝程序正在啟用服務怎麼重啟電腦?下面更多詳細答案一起來看看吧!windows7安裝程序正在啟用服務...
2024-11-22
專利檢索技巧和資源缺一不可
專利檢索技巧和資源缺一不可
1.黑馬數據庫(付費--免費試用)HimmPat-解決方案式全球專利智能檢索分析平台特點:畫面簡潔,為檢索而生,國内坐四望三的級别。試用期為一個月左右,試用期結束後轉為限制用戶,限制用戶的檢索結果隻能查看前10項。2.智慧芽(付費--免費試...
2024-11-22
室内取暖燈安裝方法
室内取暖燈安裝方法
室内取暖燈安裝方法?把浴霸照明線引到外牆已有的面闆開關上直接并入原有線盒内的火線增加一聯控制即可,這是利用外牆的火線和室内的零線,今天小編就來聊一聊關于室内取暖燈安裝方法?接下來我們就一起去研究一下吧!室内取暖燈安裝方法把浴霸照明線引到外牆...
2024-11-22
Copyright 2023-2024 - www.tftnews.com All Rights Reserved