2014 级本科《操作系统》实验报告(实验 3)
学生姓名 曾帅 学号 1143710412 院系 软件学院
任课教师 范国祥 实验 TA XXX
实验地点 软件学院三楼实验室 实验时间 2016 年 05 月 26 日 星期四
实验题目 进程管理 实验学时 3 学时
实验目的:
掌握 Linux 下的多进程编程技术;
通过对进程运行轨迹的跟踪来形象化进程的概念;
在进程运行轨迹跟踪的基础上进行相应的数据统计, 从而能对进程调度算法进行实际的量化评价,
更进一步加深对调度和调度算法的理解, 获得能在实际操作系统上对调度算法进行实验数据对比的直接
经验。
实验内容及要求:
(1) 基于模板“ process.c”编写多进程的样本程序,实现如下功能:
所有子进程都并行运行,每个子进程的实际运行时间一般不超过 30秒;
父进程向标准输出打印所有子进程的 id,并在所有子进程都退出后才退出 。
(2) 在 Linux 0.11 上实现进程运行轨迹的跟踪。基本任务是在内核中维护一个日志文件 /var/
process.log,把从操作系统启动到系统关机过程中所有进程的运行轨迹都记录在这一 log 文件中。
(3) 在修改过的 Linux0.11 上运行样本程序,通过分析 log 文件,统计该程序建立的所有进程的等
待时间、完成时间(周转时间)和运行时间,然后计算平均等待时间,平均完成时间和吞吐量。可以自
己编写统计程序,也可以使用 python 脚本程序 “stat_log.py ”进行统计。
(4) 修改 Linux0.11 进程调度的时间片,然后再运行同样的样本程序,统计同样的时间数据,和原
有的情况对比,体会不同时间片带来的差异。
实验过程描述、结果及思考:
简要描述实验过程(含操作步骤及看到的结果) 。
( 1) 在ubuntu下,利用系统提供的进程控制函数 fork 、wait 系统调用编写多进程程序 process.c,编译
运行,分析运行结果,之后开始修改 linux0.11 内核。
( 2) 在init/main.c 中的 main() 中添加创建日志文件 /var/process.log的语句。 需要在把 log文件关联到文件
描述符 3,0 1 2分别是 stdin stdout和stderr,按照如下方式修改:
( 3) 向kernel/printk.c 中添加日志打印功能,将以下代码添加到原文件中:
评论1
最新资源