实验日期:2022年6月4日
班级:软嵌201
姓名:王思宇
学号:2030110749
掌握虚拟文件系统的实现原理; 实践文件、目录、文件系统等概念
linux-0.11
在 Linux 0.11 上实现 procfs(proc 文件系统)内的 psinfo 结点。当读取此结点的内容时,可得到系统当前所有进程的状态信息。例如,用 cat 命令显示 /proc/psinfo 的内容,可得到:
cat /proc/hdinfo total_blocks: 62000; free_blocks: 39037; used_blocks: 22963; ... copy procfs 及其结点要在内核启动时自动创建。
相关功能实现在 fs/proc.c 文件内。
1.修改include/sys/stat.h文件
2.修改namei.c文件
3.修改init/main.c文件
4.修改fs/read_write.c文件
5.新增/fs/proc.c文件
6.修改fs/Makefile文件
7.运行
如果要求你在 psinfo 之外再实现另一个结点,具体内容自选,那么你会实现一个给出什么信息的结点?为什么?
答:如果再实现另一个结点,我想会选内存使用的信息情况,因为内存是整个系统中最重要的资源,系统的运行要靠内存的支持,能及时了解内存的使用情况是有意义的。
一次 read() 未必能读出所有的数据,需要继续 read(),直到把数据读空为止。而数次 read() 之间,进程的状态可能会发生变化。你认为后几次 read() 传给用户的数据,应该是变化后的,还是变化前的? + 如果是变化后的,那么用户得到的数据衔接部分是否会有混乱?如何防止混乱? + 如果是变化前的,那么该在什么样的情况下更新 psinfo 的内容?
答:如果再实现另一个结点,我想会选内存使用的信息情况,因为内存是整个系统中最重要的资源,系统的运行要靠内存的支持,能及时了解内存的使用情况是有意义的。
对于proc文件还有点不太理解,需要多加练习
学习时间 67分钟
操作时间 30分钟
按键次数 823次
实验次数 2次
报告字数 2204字
是否完成 完成