操作系统实验4

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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. 按照上面所给出的步骤进行实验,记录实验结果,撰写实验报告。

相关文档
最新文档