ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

操作系统课程设计:Linux系统调用/基于模块的文件系统/Linux驱动/统计Linux系统缺页的次数/进程线程通信 整合

2022-01-30 12:58:00  阅读:203  来源: 互联网

标签:文件 课程设计 题目 编译 内核 模块 Linux 缺页


目录

一、可选题目

题目1:新增Linux系统调用

采用编译内核法,在Linux中增加一个系统调用。
要求:
(1)系统调用实现的功能:计算一个数字的三次方,并打印出来。
(2)另外写一个程序进行调用。

题目2:实现基于模块的文件系统

修改ext3或ext4的源代码,实现新的文件系统。
要求:
(1)复制ext3或ext4的源代码,修改Makefile文件,使用模块编译方式,需要重新编译Linux内核。
(2)可以动态加载和卸载新的文件系统。
(3)至少需要修改文件系统的名称,最好能对文件写操作向系统后台打印出信息。

题目3:新增Linux驱动程序

增加一个驱动程序(使用内存模拟设备),使用模块编译方式。
要求:
(1)可以动态加载和卸载新的驱动。
(2)通过程序或命令行使用该驱动。
(3)至少能通过该驱动保存256MB的数据,还能将这些数据读取出来。
(4)要重新编译Linux内核,可模仿ramdisk的实现方式。

题目4:统计Linux系统缺页的次数

通过在Linux内核中自建变量,并利用/proc文件系统作为中介的方法,统计系统缺页的次数。
要求:
(1)在内核中实现缺页次数统计;
(2)编译并安装新内核;
(3)新建内核模块,并加载到新内核,通过/proc实现用户态下查看缺页次数。

题目5:进程/线程通信

利用进程/线程间通信编写程序实现阅览室问题,实现多个读者进程注册、阅读、注销的过程,假设阅览室共有5个座位。
要求:
(1)使用信号量机制和共享存储区机制来实现多个进程/线程之间的通信,同时实现注册与注销的互斥操作。
(2)注册操作要求读者进程填写个人手机或其他身份信息;
注销操作要求读者撤销填写的个人信息。

二、操作顺序

题目1与题目4存在的共同点是:在进行内核的编译之前需要修改内核中的文件。题目2、题目3、题目4存在的共同点是:需要编译内核,在编译完成的新内核进行模块的编译。而题目5完全不涉及内核。
整合的总体流程如下:首先修改内核源码文件中涉及到题目1与题目4的部分。接下来,进行长达1~2小时的编译内核、编译模块与安装新内核。然后,进入新的内核,传入题目2、题目3、题目4涉及到的源代码文件,安装并卸载相应的模块进行测试。最后,编译并测试题目5涉及到的源代码。
题目1涉及到的内核源码的文件包括:
arch/x86/entry/syscalls/syscall_64.tbl
kernel/sys.c
include/linux/syscalls.h
题目4涉及到的内核源码的文件包括:
arch/x86/mm/fault.c
include/linux/mm.h
kernel/kallsyms.c
在修改了这几处文件后,对内核进行1-2小时的编译。进入新的内核,在新的内核中,
题目1涉及到的文件testt1.c
题目2涉及到的文件包括:super.c、sysfs.c、file.c、Makefile。将这4个文件放在同一个目录下,进行模块编译。
题目3涉及到的文件包括:zombotany_blkdev.c、Makefile。将这2个文件放在同一个目录下,进行模块编译。
题目4涉及到的文件包括:readpfcount.c、Makefile。将这2个文件放在同一个目录下,进行模块编译。利用模块的形式,对缺页中断次数进行了测试。
题目5涉及到的文件包括:share.c、read.c。这2个文件不涉及也不调用内核。在这2个文件中,就可以加入题目1设计到的系统调用。例如,可以系统调用,计算当前图书馆内已有人数的三次方。可以用gcc -c share.c -o share.outgcc -c read.c -o read.out直接编译运行。

附录:参考资料

题1

https://blog.csdn.net/weixin_44191535/article/details/106954861

题2

https://blog.csdn.net/qq_17447307/article/details/103649354

题3

https://blog.csdn.net/m0_46362426/article/details/118879627

题4

https://blog.csdn.net/zouguo1211/article/details/90106347

题5

https://download.csdn.net/download/zbx22222314565/14065574

标签:文件,课程设计,题目,编译,内核,模块,Linux,缺页
来源: https://blog.csdn.net/qq_46640863/article/details/122751766

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有