对于我们初学者有点难度
题目三 内存管理的设计与实现
通过模拟操作系统的分页存储管理方式的内存分配回收的实现,用一C程序来实现分页机制。首先物理地址和虚拟地址均为32位,页面大小为4KB,实现以下函数:
1)init函数
分配4MB作为物理内存,建立物理内存的空闲页链表freelist,调用pagealloc函数从物理分配一个页面作为页表pagetable。
2)pagealloc函数
从空闲内存分配一个页面
3)pagefree函数
释放一个页面
- va2pa函数
返回虚拟地址va所在的物理地址,如果该地址没有对应的物理地址,返回-1
- pa2va函数
返回物理地址pa对应的虚拟地址,如果该地址没有对应的虚拟地址,返回-1
- rva函数
从虚拟地址va读取1个字节的内容,如果该地址没有被映射,显示错误信息,退出。否则返回该字节的内容
7)wva函数
向虚拟地址va写1个字节的内容,如果该地址没有被映射,则分配该地址的页面,建立映射。