操作系統-記憶體換入

来源:https://www.cnblogs.com/mengd/archive/2020/04/01/12616137.html
-Advertisement-
Play Games

操作系統為了讓用戶使用,進行分段,但是效率不行,所以引出了分頁,後來應該分段也應該分頁,所以使用了虛擬記憶體,分段分頁的核心就是虛擬記憶體,而要實現虛擬記憶體,就需要進行記憶體的換入和換出 1. 段頁同時存在 2. 用戶眼中的記憶體 3. 用換入、換出實現‘大記憶體’ 在用戶眼中0 4G就是特別大的記憶體,相當於 ...


操作系統為了讓用戶使用,進行分段,但是效率不行,所以引出了分頁,後來應該分段也應該分頁,所以使用了虛擬記憶體,分段分頁的核心就是虛擬記憶體,而要實現虛擬記憶體,就需要進行記憶體的換入和換出

1. 段頁同時存在

2. 用戶眼中的記憶體

3. 用換入、換出實現‘大記憶體’

在用戶眼中0-4G就是特別大的記憶體,相當於一個倉庫,在倉庫里有各種貨,而物理記憶體相當於店面,店面小隻能擺一些貨,當有人需要貨A,就從倉庫里取(虛擬記憶體)放到櫃臺上(物理記憶體),有人需要貨B,貨A放回倉庫,在從倉庫里取貨B放到櫃臺上,只要速度足夠的快,櫃臺上就一直都有你想要的貨

4. 請求調頁

  1. 當程式訪問地址,看頁表發現缺頁,說明一段代碼沒有在頁表中,不能取指執行,所以一缺頁程式就不能執行下去,需要調頁,此時進行中斷,先執行其他的進程
  2. 產生了中斷,就要執行中斷處理程式,也就是頁錯誤處理程式
  3. 頁錯誤處理程式需要到磁碟中找到這一頁程式,使用某個演算法
  4. 找到之後需要在物理記憶體中找一個空閑頁,需要把這一頁從磁碟上讀進來,這就是請求調頁,換入,已經從磁碟上換入了
  5. 接下來把這個映射做好,對應的頁表中,此時中斷處理結束,
  6. 繼續執行中斷那個時候發生的指令,從用戶的角度來看,好像什麼事都沒有發生過

例題

5. 一個實際系統的請求調頁



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 做下對文件複製操作相關的筆記: /// <summary> /// 文件幫助類 /// </summary> public class FileHelper { /// <summary> /// 複製一個目錄下所有文件到一個新目錄下 /// </summary> /// <param name=" ...
  • Xamarin.Forms讀取並展示Android和iOS通訊錄 TerminalMACS客戶端 本文同步更新地址: https://dotnet9.com/11520.html https://terminalmacs.com/861.html 閱讀導航: 一、功能說明 二、代碼實現 三、源碼獲取 ...
  • 對閉包的理解 1.對於成員變數和局部變數:成員變數就是方法外部,類的內部定義的變數;局部變數就是方法或語句塊內部定義的變數。局部變數必須初始化。 形式參數是局部變數,局部變數的數據存在於棧記憶體中。棧記憶體中的局部變數隨著方法的消失而消失。成員變數存儲在堆中的對象裡面,由垃圾回收器負責回收。 成員變數它 ...
  • 首先創建一個asp.net core web應用程式 第二步 目前官方預置了7種模板項目供我們選擇。從中我們可以看出,既有我們熟悉的MVC、WebAPI,又新添加了Razor Page,以及結合比較流行的Angular、React前端框架的模板項目。 空項目模板 Program.cs using S ...
  • 控制條控制項: progressBar 不能按照你程式的進程自動變化,需認為計算,調整變化量 private void progressBar1_Click(object sender, EventArgs e) { this.progressBar1.Maximum = 100;//設置進度條最大長 ...
  • 前幾天發佈了 "抄抄《CSS 故障藝術》的動畫" 這篇文章,在這篇文章里介紹瞭如何使用Win2D繪製文字然後配合BlendEffect製作故障藝術的動畫。本來打算就這樣收手不玩這個動畫了,但後來又發現性能不符合理想。明明只是做做Resize動畫和用BlendEffect混合,為什麼性能會這麼差呢? ...
  • 上一篇發出之後,大家在我的微信公號文章下麵留言很熱烈,大部分朋友都把懷疑點放在了HyperRAM時序配置上,覺得很大概率是HyperRAM的數據訪問出了問題導致了LCD顯示異常,這個懷疑是非常合情合理的,那麼從高效定位問題的角度,我們接下來應該怎麼做? ...
  • 摘要 Linux現在已經是大部分草根站長不可缺少的一部分,想要維護好你的網站就必須懂得常用的linux命令,這個可以加快你對伺服器的維護,運營;同時Linux在嵌入式系統開發中有不可替代的優勢,越來越多的年輕人已經青睞Linux環境下嵌入式功能的開發。 常用指令 ls 顯示文件或目錄-l 列出文件詳 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...