操作系统实验4
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统
实验报告
学号:
姓名:
提交日期:
成绩:
内蒙古大学计算机学院
实验四进程管理
一、实验目的
1. 加深对进程概念的理解,明确进程和程序的区别;
2. 进一步认识并发执行的实质;
3. 分析进程争用资源的现象,学习解决进程互斥的方法;
二、实验内容
1. 进程的创建;
2. 进程的控制;
3. 进程并发执行结果分析;
三、主要实验步骤
1. 编制一段程序,使用系统调用fork()创建两个子进程,在此程序运行时,系
统中就有一个父进程和两个子进程在活动。让每一个进程在屏幕上显示一个字符:父进程显示字符a,子进程分别显示字符b和子符c。试观察、记录并分析屏幕上进程调度的情况。若在程序中使用系统调用nice()来改变各进程的优先级,会出现什么现象?
(1)使用vi创建forktest.c源文件
(2)编写程序
(3)保存程序并退出
(4)使用gcc编译源文件生成可执行文件forktest
(5)执行文件,输入./forktest回车
(6)结果分析
2. 编制一段程序要求父进程创建子进程,在子进程中分别用exec函数与system
函数执行“dir -a”。并分析其区别。
3. 分析以下程序框架,修改并上机运行后回答下列问题。
#include
#include
#include
V oid main()
{①
pid=fork();
②
if(pid==0){
........
sleep(3);
..........
printf("ddd\n");
exit(0);
}
else
{
............
sleep(7);
...........
printf("aaa\n");
wait(0);
printf("bbb\n");
}
printf("ccc\n");
}
(1)可能有几种输出结果并写出?并加以简单说明。
(2)编程修改程序执行顺序,强制父进程结果先于子进程输出.
gcc -Wall –g –o test test.c回车。
(3)编程修改程序如何使“ccc”输出两次?
(4)讨论printf("ccc\n");分别放在程序中①、②位置时的输出结果并说明原因。
四、自主实验内容
1. 按照上面所给出的步骤进行实验,记录实验结果,撰写实验报告。