实验名称:进程运行轨迹的跟踪与统计
实验日期:2021/05/20
班级:物联网193
姓名:龚涵之
学号:1930110699
1、掌握 Linux 下的多进程编程技术;
2、通过对进程运行轨迹的跟踪来形象化进程的概念;
3、在进程运行轨迹跟踪的基础上进行相应的数据统计,从而能对进程调度算法进行实际的量化评价,更进一步加深对调度和调度算法的理解,获得能在实际操作系统上对调度算法进行实验数据对比的直接经验。
1、硬件环境是 IA-32(x86) 架构的 PC 机(在实验楼的环境中就是右侧的窗口)
2、主要软件环境是 Bochs + gcc + 你最喜欢的编辑器 / IDE + 你最喜欢的操作系统 + Linux 0.11 源代码
本次实验包括如下内容:
1、基于模板 process.c 编写多进程的样本程序,实现如下功能: + 所有子进程都并行运行,每个子进程的实际运行时间一般不超过 30 秒; + 父进程向标准输出打印所有子进程的 id,并在所有子进程都退出后才退出。
2、在 Linux0.11 上实现进程运行轨迹的跟踪。 + 基本任务是在内核中维护一个日志文件 /var/process.log,把从操作系统启动到系统关机过程中所有进程的运行轨迹都记录在这一 log 文件中。
3、在修改过的 0.11 上运行样本程序,通过分析 log 文件,统计该程序建立的所有进程的等待时间、完成时间(周转时间)和运行时间,然后计算平均等待时间,平均完成时间和吞吐量。可以自己编写统计程序,也可以使用 python 脚本程序—— stat_log.py(在 /home/teacher/ 目录下) ——进行统计。
4、修改 0.11 进程调度的时间片,然后再运行同样的样本程序,统计同样的时间数据,和原有的情况对比,体会不同时间片带来的差异。
1、修改process.c
2、log文件 修改int/main.c文件
3、修改printk.c
4、修改fork.c
5、修改sched.c
6、修改exit.c
将process.c挂载到hdc上然后导入/usr/root/中
sudo ./mount-hdc
cp process.c ./hdc/usr/root/
然后运行
./run
gcc -o process process.c
./process 即可查看日志文件
sync 关闭模拟器
挂载到hdc后,可以在var/process.log查看日志文件
编写stat_log.py 然后为其增加权限
sudo chmod +x ./stat_log.py
分析结果:./stat_log.py process.log 22
时间片调度
修改sched.h
再次编译
./run
再次用stat_log.py查看process.log
process.c修改成功并且成功运行,process.log日志文件建立成功,能向日志文件输出信息,调度算法修改成功,实验成功完成。
通过本次实验掌握了 Linux 下的多进程编程技术,通过对进程运行轨迹的跟踪深入理解了进程的概念,在进程运行轨迹跟踪的基础上进行相应的数据统计,对进程调度算法进行实际的量化评价,进一步加深了对调度和调度算法的理解,获得了能在实际操作系统上对调度算法进行实验数据对比的直接经验。
学习时间 573分钟
操作时间 99分钟
按键次数 715次
实验次数 11次
报告字数 3235字
是否完成 完成