欢迎来到天天文库
浏览记录
ID:42220225
大小:368.90 KB
页数:15页
时间:2019-09-10
《虚拟存储管理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《Linux操作系统实验二》:虚拟存储实验文档32060624linux实验小组2005年5月15H星期五32060624王克(组长)32060518杜可斌32060532徐瑞32060621张劲一,实验目的2二,实验实现过程21.内核函数pedagogictime的实现21」实验理论准备21.2具体实现及其源码21.3实验改进和实验心得62.pedagogictime测试函数的实现72.1实验理论准备72.3测试用例及测试结果72.4实验改进和实验心得73.缺页用户函数pgfault的实现73.1实验理论准备73.2具体实现及英源码(附详细注释)83.3实
2、验测试123.4实验心得14三.实验的总结14四.实验小组成员感受14•32060624王克14•32060518杜可斌14•32060532徐瑞15•32060621张劲15三.参考资料15一,实验目的学习Linux如何实现虚拟存储。与体系结构无关的通用存储模型是所有Linux虚拟存储实现的基础,但是任何特定的实现都依赖于特定的硬件平台。本实验集中于i386的实现。我们进行该次试验主要为了达到以下目的:1.学习存储管理程序的设计及其代码编写细节2.修改虚拟存储代码以检测系统缺页错误的发生频率3.学习Linux系统调用的相关知识,包括学习如何产生一个系统调用
3、以及怎样通过往内核中增加一个新函数从而在内核空间中实现对用户空间的读/写。二,实验实现过程1.内核函数pedagogictime的实现1.1实验理论准备1)参考kernel/time.c的sys_gettimeofday2)学习编制自己的系统调用的方法3)学习.syscallNO的定义及其使用1.2具体实现及其源码1)编写内核函数pedagogictimea)编辑sys.c文件#cd/usr/src/linux-2.6.11.2/kernel#visys.cb)在文件最后添加内核函数pedagogictime:asmlinkageintsys_pedagog
4、ictime(structtimeval*tv){lf(tv){Structtimevalktv;Do_gettimeofday(&ktv);If(copy_to_user(tv,&ktv,sizeof(ktv)))Return-EFAULT;Return0;附例图:國RedHatLinux-YlrareVorkstationHomeRedHatLinux-return-EFAULT;return0;}default:error=-EINUAL;break;yreturnerror;}lasmlinkageintsys_pedagogictime(struc
5、ttimeua1兴tu)6、pcdagogictime.longsysmycall由于我们使用的2.6.11.2最新的linux内核,所以它的入口表的形式与书上的有所不同。附图:£■8^3RedHatLinux-VlvareVorkstationHomeRedHatLinuxlongsys_faduise64_64longsys_ni_sysca11/*sys_userver*/.longsys_mq.open•longsys_mqunlink・longsys_mqtimedsend.longsys_mqtimgdrECEiv巳•longsys_mqnotify.longsys_mqg7、^tsetattr・longsys_nisysca11•longsys_waitid•longsys_ni_sysca11・1ongsys_add_key•longsys_mbind.longsys_get_mempolicy・longsys_set_mgmpo1icy•longsys_request_key•longsys_keyct1.longsys_pedagogictimg•longsys_myca11/*Z80*//*reservedforkexec*//*285*//*available*/sysca1l_table_size=(.-sys_ca8、1l_table)修改相应的头文件:#cd/usr/
6、pcdagogictime.longsysmycall由于我们使用的2.6.11.2最新的linux内核,所以它的入口表的形式与书上的有所不同。附图:£■8^3RedHatLinux-VlvareVorkstationHomeRedHatLinuxlongsys_faduise64_64longsys_ni_sysca11/*sys_userver*/.longsys_mq.open•longsys_mqunlink・longsys_mqtimedsend.longsys_mqtimgdrECEiv巳•longsys_mqnotify.longsys_mqg
7、^tsetattr・longsys_nisysca11•longsys_waitid•longsys_ni_sysca11・1ongsys_add_key•longsys_mbind.longsys_get_mempolicy・longsys_set_mgmpo1icy•longsys_request_key•longsys_keyct1.longsys_pedagogictimg•longsys_myca11/*Z80*//*reservedforkexec*//*285*//*available*/sysca1l_table_size=(.-sys_ca
8、1l_table)修改相应的头文件:#cd/usr/
此文档下载收益归作者所有