原文:XV6操作系統代碼閱讀心得(四):虛擬內存

本文將會詳細介紹Xv 操作系統中虛擬內存的初始化過程。 基本概念 位X 體系結構采用二級頁表來管理虛擬內存。之所以使用二級頁表, 是為了節省頁表所占用的內存,因為沒有內存映射的二級頁表可以不用分配地址來存儲。在這個二級頁表結構中,每個頁的大小為 KB,每個頁表的大小也為 KB,每個頁表項的大小為 字節,一個頁表包含 個頁表項。一級頁表表項存儲的是二級頁表的地址,二級頁表表項存儲的是對應的物理地址。 ...

2019-04-10 15:17 0 1288 推薦指數:

查看詳情

XV6操作系統代碼閱讀心得(三):鎖

鎖是操作系統中實現進程同步的重要機制。 基本概念 臨界區(Critical Section)是指對共享數據進行訪問與操作代碼區域。所謂共享數據,就是可能有多個代碼執行流並發地執行,並在執行中可能會同時訪問的數據。 同步(Synchronization)是指讓兩個或多個進程/線程能夠 ...

Wed Apr 10 01:38:00 CST 2019 0 1291
XV6代碼閱讀-虛擬內存管理

Exercise1 源代碼閱讀 1.內存管理部分: kalloc.c vm.c 以及相關其他文件代碼 kalloc.c:char * kalloc(void)負責在需要的時候為用戶空間、內核棧、頁表頁以及緩沖區分配物理內存,將物理地址轉為虛擬地址返回,物理頁大小為4k。void ...

Mon Jun 10 00:26:00 CST 2019 0 690
XV6操作系統代碼閱讀心得(五):文件系統

Unix文件系統 當今的Unix文件系統(Unix File System, UFS)起源於Berkeley Fast File System。和所有的文件系統一樣,Unix文件系統是以塊(Block)為單位對磁盤進行讀寫的。一般而言,一個塊的大小為512Byte或者4KB。文件系統的所有 ...

Fri May 31 18:17:00 CST 2019 0 812
XV6操作系統代碼閱讀心得(一):啟動加載、中斷與系統調用

XV6操作系統是MIT 6.828課程中使用的教學操作系統,是在現代硬件上對Unix V6系統的重寫。XV6總共只有一萬多行,非常適合初學者用於學習和實踐操作系統相關知識。 MIT 6.828的課程網站是https://pdos.csail.mit.edu/6.828/。XV6操作系統有官方文檔 ...

Wed Mar 27 04:01:00 CST 2019 1 1213
操作系統總結(一)——虛擬內存

1.操作系統內存管理(虛擬內存) 1.1 虛擬內存的概念 操作系統為每個進程分配獨立的一套虛擬地址,這就是虛擬內存虛擬內存是一個抽象概念,它為每個進程提供了一個假象,即每個進程都在獨占地使用主存,每個進程看到的內存都是一致的,稱為虛擬地址空間。虛擬內存在主存中只保存活動區域,並根據需要在磁盤 ...

Tue Nov 09 06:12:00 CST 2021 0 158
XV6代碼閱讀-文件系統

Exercise1 源代碼閱讀 文件系統部分 buf.h fcntl.h stat.h fs.h file.h ide.c bio.c log.c fs.c file.c sysfile.c exec.c 1.buf.h:對xv6中磁盤塊數據結構進行定義,塊大小為512字節 ...

Mon Jun 10 00:33:00 CST 2019 0 746
操作系統內存管理之虛擬內存

9.1 背景 虛擬地址空間:進程在內存中存放的邏輯視圖。如圖所示。 虛擬內存:是一種內存管理技術,它會使程序自己認為自己擁有一塊很大且連續的內存,然而,這個程序在內存中不是連續的,並且有些還會在磁盤上,在需要時進行數據交換 。 允許隨着動態內存分配,堆向上生長;允許隨着子程序的不斷調用 ...

Mon Aug 06 00:18:00 CST 2018 0 1057
xv6操作系統學習筆記

0x00背景 最近在看操作系統上的書 然后選了本知乎推薦的xv6 https://th0ar.gitbooks.io/xv6-chinese/content/content/chapter0.html 我們從這幾個問題入手 操作系統作用是什么? 內核的作用 ...

Sun Aug 06 08:53:00 CST 2017 0 1413
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM