Nachos的内存管理模块升级
Nachos的内存管理模块升级3.4.1 上机实践具体要求
【背景描述】
目前Nachos实现的内存管理模块中,没有实现真正的虚拟内存,内存分配基于的单个用户程序,系统能够运行的用户程序大小也是有限制的,必须小于模拟的物理内存空间大小,否则出错。现代操作系统对内存管理的要求是支持多道程序,并且程序可用空间应是无限即需实现虚拟内存,还要有存储保护机制。
【实践要求】
本实习项目希望通过修改Nachos系统平台的底层源代码来实现以下目标:
1. 在Nachos中修改目前的内存分配方式,使得多个线程可以同时存在于内存之中,这些线程可以按照“优先级”的方式进行调度。
2. 编写一个虚拟的“分页式”存储管理机制,也就是说不需要实现真正的分页管理,只需要建立并维护一个内存页表,页面大小为4K,当生成新的用户线程时,可以通过检索页表来为用户线程分配可用的页面号。
3. (可选)在实现内存页表管理的基础上,进一步实现“缺页中断”,这也是虚拟的,也就是说编写一个测试函数,这个测试函数可以作为监测线程运行,它会提示发生了缺页中断,然后检查内存页表并根据适当的缺页中断处理策略选择一个可以被替换的内存页面,只需要记录被替换的页面号即可。
求大神帮忙,急急急