文件名称:VMA
介绍说明--下载内容均来自于网络,请自行研究使用
虚拟内存管理实验。
在Linux环境下编写一个内核模块,分别实现如下几个函数:
static void mtest_dump_vma_list(void):依次列出当前进程所占用的虚拟内存空间各段的读、写或执行权限。
static void mtest_find_vma(unsigned long addr):查找出虚拟地址addr所在的vma,并通过printk打印该段的起始地址、终止地址和段标志等信息。
static void mtest_find_page(unsigned long addr):找到虚拟地址addr对应的物理地址并打印。
为了测试和使用以上函数,需要在内核模块的初始化函数中创建一个名为mtest的/proc文件。mtest文件绑定的写函数mtest_write允许用户程序写入一串字符串:
如果写入的字符串是listvma则调用函数mtest_dump_vma_list(void);
如果写入的字符串是findvma0xffffffff则调用函数mtest_find_vma(0xffffffff),字符串的后几个字符是传递给函数的参数;
如果写入的字符串是findpage0xffffffff则调用函数mtest_find_page(0xffffffff),同样字符串的后几个字符是参数。-Virtual memory management
在Linux环境下编写一个内核模块,分别实现如下几个函数:
static void mtest_dump_vma_list(void):依次列出当前进程所占用的虚拟内存空间各段的读、写或执行权限。
static void mtest_find_vma(unsigned long addr):查找出虚拟地址addr所在的vma,并通过printk打印该段的起始地址、终止地址和段标志等信息。
static void mtest_find_page(unsigned long addr):找到虚拟地址addr对应的物理地址并打印。
为了测试和使用以上函数,需要在内核模块的初始化函数中创建一个名为mtest的/proc文件。mtest文件绑定的写函数mtest_write允许用户程序写入一串字符串:
如果写入的字符串是listvma则调用函数mtest_dump_vma_list(void);
如果写入的字符串是findvma0xffffffff则调用函数mtest_find_vma(0xffffffff),字符串的后几个字符是传递给函数的参数;
如果写入的字符串是findpage0xffffffff则调用函数mtest_find_page(0xffffffff),同样字符串的后几个字符是参数。-Virtual memory management
(系统自动生成,下载前可以参看下载内容)
下载文件列表
VMA\2011操作系统大作业报告.doc
...\Debug\vc60.idb
...\.....\vc60.pdb
...\Makefile
...\test.c
...\vitural.c
...\Debug
VMA