Unix文件系統 當今的Unix文件系統(Unix File System, UFS)起源於Berkeley Fast File System。和所有的文件系統一樣,Unix文件系統是以塊(Block)為單位對磁盤進行讀寫的。一般而言,一個塊的大小為512Byte或者4KB。文件系統的所有 ...
鎖是操作系統中實現進程同步的重要機制。 基本概念 臨界區 Critical Section 是指對共享數據進行訪問與操作的代碼區域。所謂共享數據,就是可能有多個代碼執行流並發地執行,並在執行中可能會同時訪問的數據。 同步 Synchronization 是指讓兩個或多個進程 線程能夠按照程序員期望的方式來協調執行的順序。比如,讓A進程必須完成某個操作后,B進程才能執行。互斥 Mutual Excl ...
2019-04-09 17:38 0 1291 推薦指數:
Unix文件系統 當今的Unix文件系統(Unix File System, UFS)起源於Berkeley Fast File System。和所有的文件系統一樣,Unix文件系統是以塊(Block)為單位對磁盤進行讀寫的。一般而言,一個塊的大小為512Byte或者4KB。文件系統的所有 ...
XV6操作系統是MIT 6.828課程中使用的教學操作系統,是在現代硬件上對Unix V6系統的重寫。XV6總共只有一萬多行,非常適合初學者用於學習和實踐操作系統相關知識。 MIT 6.828的課程網站是https://pdos.csail.mit.edu/6.828/。XV6操作系統有官方文檔 ...
本文將會詳細介紹Xv6操作系統中虛擬內存的初始化過程。 基本概念 32位X86體系結構采用二級頁表來管理虛擬內存。之所以使用二級頁表, 是為了節省頁表所占用的內存,因為沒有內存映射的二級頁表可以不用分配地址來存儲。在這個二級頁表結構中,每個頁的大小為4KB,每個頁表的大小也為4KB,每個頁表項 ...
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字節 ...
0x00背景 最近在看操作系統上的書 然后選了本知乎推薦的xv6 https://th0ar.gitbooks.io/xv6-chinese/content/content/chapter0.html 我們從這幾個問題入手 操作系統作用是什么? 內核的作用 ...
Exercise1 源代碼閱讀 1.內存管理部分: kalloc.c vm.c 以及相關其他文件代碼 kalloc.c:char * kalloc(void)負責在需要的時候為用戶空間、內核棧、頁表頁以及緩沖區分配物理內存,將物理地址轉為虛擬地址返回,物理頁大小為4k。void ...
在包括XV6的絕大部分操作系統都是多個任務交錯執行的。交錯的一個原因是多核硬件:多核計算機的多個CPU核心獨立執行計算,如XV6的RISC-V處理器。多個CPU核心共享物理內存,XV6利用這種共享來維護所有核心都會讀寫的數據結構。而這種共享會導致一個CPU在讀取某數據結構時,可能有另一個CPU正在 ...
像這種教學目的操作系統(例如XV6 Minix)是不能小看的。 比如上古傳說Linus Torvalds大神在上Minix操作操作系統課時突發奇想! 在芬蘭的赫爾辛基大學用Minix操作平台建立了一個新的操作系統的內核,他把它叫做Linux。 我也希望走走人家大神當年走的路 ...