日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

操作系统课设--虚拟内存

發布時間:2025/3/21 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统课设--虚拟内存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

山東大學操作系統課設lab7

  • 實驗七 虛擬內存(lab7)
    • 實驗目的
    • 實驗環境
    • 實驗思路
    • 關鍵源代碼注釋以及程序說明
    • 調試記錄

實驗七 虛擬內存(lab7)

實驗目的

在未實現虛擬內存管理之前,Nachos在運行一個用戶進程的時候,需要將程序運行所需所有內存空間一次性分配。虛擬內存實現將突破物理內存限制。本實驗核心任務為根據理論學習中涉及的兌換技術,設計并實現用戶空間的虛擬內存管理。

實驗環境

虛擬機下Ubuntu Linux 16.04 LTS系統,nachos-3.4內核管理模塊和MIPS CPU軟件模擬模塊,代碼在lab7文件夾下面實現。

實驗思路

我已經完全忘記了大二下學期學的虛擬內存是什么了,連概念都不記得,去查了一下才記起來和虛擬內存相對應的是物理內存。看了這個網頁,https://blog.csdn.net/qq_40840459/article/details/81054164
大概知道物理內存是平時我們理解的內存,就是一般都會從硬盤里把數據拿進來用,因為內存速度比硬盤快很多。但是有時候內存不夠用,就要用上硬盤,所以虛擬內存其實是占用硬盤中的空間,不過是和真正內存對應起來的,有建立索引,每次不夠用了,就可以把現有的這些換出去放到硬盤里先存著,把想要的page換進來。這樣換來換去,反反復復,就很少的內存空間可以對應很多的硬盤空間,相當于有很多虛擬內存可以使。我差不多是這樣理解。
有一個很重要的步驟是交換。在發生缺頁錯誤時,才需要交換。因為內存中可能會存在大量我們不常訪問的數據占空間,真正的內存不夠用的時候,需要把物理內存通過虛擬地址當成內存換進來。就其實內存能容納的地方并沒有變多,也沒有變少,只是因為可以交換,所以可以把舊的換出去,新的換進來,就可以認為我們多了很多虛擬內存。

關鍵源代碼注釋以及程序說明

本實驗思路來自如下網頁:
https://wenku.baidu.com/view/9383d57a5acfa1c7aa00ccd6.html
主要是看machine文件夾里的translate.h和translate.cc吧,這應該就是如何去物理內存里找頁的方法。有虛擬內存、物理內存這樣的屬性。
初始如下:

需進行修改:
添加一種類型PageType,包括該頁中代碼、初始化數據、未初始化數據、用戶棧。
新定義了兩個屬性,一個是該頁在文件中塊偏移量inFileAddr,一個是當前頁存儲的數據類型type。

在lab6里有在progtest.cc聲明過一個BitMap類,用來記錄內存中物理頁的分配情況。之前是為了多用戶并行,才需要設置全局變量來控制程序。這里的交換頁同樣是全局問題,故也需要在progtest.cc里聲明一個全局變量BitMap。以下是lab6的變量設置:

將userprog文件夾里的文件拷貝到lab7中,添加新變量,SwapBitMap和SwapFile。

在AddrSpace里添加4個私有屬性,
保存指向用戶文件的指針OpenFile;
當下正在執行的用戶文件的NoffHeader;
頁置換用FIFO算法,添加virtualMem數組和p_vm指針,virtualMem存儲的是按進入內存的先后順序排列的當前占用內存空間的虛頁,p_vm指針指向數組中當前將要被換出的那個位置。

在addrspace.h和addrspace.cc中添加方法

調試記錄


可以看出,我的96行是空行,怎么會報錯呢?
忘記make了。
報錯,是中間有一個void和方法名沒有空格。語法錯誤。
修改sort.c里的數組長度,避免打印過多,初始值是1024。

重新對test進行編譯
再對lab7-8編譯
結果正確。


《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的操作系统课设--虚拟内存的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。