GeekOS操作系统Project4

GeekOS-project4

一、项目设计目的

了解虚拟存储器管理设计原理,掌握请求分页虚拟存储管理的具体实现技术。

二、项目设计要求

1.在<~/geekos-0.3.0/src/project4/src/geekos/paging.c>文件中编写代码完成以下函数:
(1) Init_VM()(defined in )函数将建立一个初始的内存页目录和页表,并且安装一个页面出错处理函数。
(2) Init_Paging()函数(定义在src/geekos/paging.c)初始化操作页面调度文件所需的所有数据结构。就如前面说到的,Get_Paging_Device()函数指定分页调度文件定位在哪一个设备和占用磁盘块的地址范围。
(3) Find_Space_On_Paging_File()函数应该在分页调度文件里面找到一个空闲的足够大的页空间。它将返回这个大块的索引,或者当没有合适的空间就返回-1。
(4)Free_Space_On_Paging_File()函数将释放由Find_Space_On_Paging_File()函数在分页调度文件里所分配的的磁盘块。
(5)Write_To_Paging_File()函数将把存储在内存的一页数据写出到分页调度文件里。
(6)Read_From_Paging_File()函数将读取分页调度文件里的一页数据到内存空间。
2.在<~/geekos-0.3.0/src/project4/src/geekos/uservm.c>文件中编写代码完成以下函数:
(1) Destroy_User_Context()释放进程所占用的所有内存和其它资源。
(2) Load_User_Program()装载可执行文件到内存里,创建一个就绪的用户地址空间,功能类似于分段系统的实现。
(3) Copy_From_User()从一个用户缓冲区复制数据到一个内核缓冲区。
(4) Copy_To_User()从一个内核缓冲区复制数据到一个用户缓冲区。
(5)Switch_To_Address_Space()利用它装载相应页目录和LDT来切换到一个用户地址空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值