原文:XV6源代码阅读-虚拟内存管理

Exercise 源代码阅读 .内存管理部分: kalloc.c vm.c 以及相关其他文件代码 kalloc.c:char kalloc void 负责在需要的时候为用户空间 内核栈 页表页以及缓冲区分配物理内存,将物理地址转为虚拟地址返回,物理页大小为 k。void kfree char v 接收一个虚拟地址,找对对应的物理地址进行释放。xv 使用空闲内存的前部分作为指针域来指向下一页空闲内存 ...

2019-06-09 16:26 0 690 推荐指数:

查看详情

XV6操作系统代码阅读心得(四):虚拟内存

本文将会详细介绍Xv6操作系统中虚拟内存的初始化过程。 基本概念 32位X86体系结构采用二级页表来管理虚拟内存。之所以使用二级页表, 是为了节省页表所占用的内存,因为没有内存映射的二级页表可以不用分配地址来存储。在这个二级页表结构中,每个页的大小为4KB,每个页表的大小也为4KB,每个页表项 ...

Wed Apr 10 23:17:00 CST 2019 0 1288
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
XV6操作系统代码阅读心得(三):锁

锁是操作系统中实现进程同步的重要机制。 基本概念 临界区(Critical Section)是指对共享数据进行访问与操作的代码区域。所谓共享数据,就是可能有多个代码执行流并发地执行,并在执行中可能会同时访问的数据。 同步(Synchronization)是指让两个或多个进程/线程能够 ...

Wed Apr 10 01:38:00 CST 2019 0 1291
windows虚拟内存管理

内存管理是操作系统非常重要的部分,处理器每一次的升级都会给内存管理方式带来巨大的变化,向早期的8086cpu的分段式管理,到后来的80x86 系列的32位cpu推出的保护模式和段页式管理。在应用程序中我们无时不刻不在和内存打交道,我们总在不经意间的进行堆内存和栈内存的分配释放,所以内存 ...

Wed Oct 25 04:55:00 CST 2017 0 1041
Xv6代码阅读报告之进程调度

Xv6代码阅读报告-Topic3 @肖剑楠 20111013223 Xv6代码阅读报告-Topic3 1. 序 2. 上下文切换 ...

Tue Nov 11 03:49:00 CST 2014 0 2408
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
虚拟内存计算、管理和使用

一般来说虚拟内存大概设为内存大小的两倍,也就是1G内存设2G虚拟。但这也是内存普遍稀缺时代的说法。如果内存大多数时候能满足要求,虚拟内存(分页文件)保留1~4G也就足够了,大了反而是累赘。所以如果你用的是普通的个人电脑,虚拟内存这种事电脑自动决定就好。 如果强行把虚拟内存与理内存的比例调高 ...

Sun Mar 22 06:59:00 CST 2020 0 684
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM