进程创建控制-实验报告
内蒙古师大计算机与信息工程学院 《操作系统》课程实 验 报告 实习题目 操作系统原理实验 进程得创建控制实验 指导教师 玉柱 职 职
称 称 副教授 学生姓名 王雪婷 学 学
号 201 411050 53 日
期 1 16- 12— —7
实现工具 Telnet 实现环境 Linux 实习内容(功能、目标) 通过编写一段程序,使用系统调用fork( )函数创建两个子进程,第一个子进程输出 brother1,第二个子进程输出 brother2,父进程输出 father,从而体会进程间得并发特征。
实现得思想、方法与技术(含数据结构、算法) 使用 c 语言进行编写,利用分叉函数生成子进程,子进程生成之后在子进程中调用 sleep( )函数,调整父进程及子进程得并发执行过程。
1。
Fork()
(1) 功能:创建一子进程;
(2) 返回值
0:
从进程返回;
〉0: 从父进程返回,返回值为子进程得进程标识号;
—1:
创建失败返回。
2. Exit()
(1)功能:终止调用进程(结束进程);
(2)说明:
结束进程后,要通知父进程;
(父进程中wait 调用读取相应信息) 3 。
Wait()
(1)
功能:控制父进程与子进程同步;
(2)
返回值
-1:出错返回;
n:正确返回子进程得ID;
0:其它、 4. sleep(n)
(1) 功能:当前进程睡眠n秒钟;
(2) 使调用进程进入睡眠队列。
主要代码 注释 #include<stdio.h〉 #include<stdlib、h> main() {
int p1,p2;
while((p1=fork())==-1);
if(p1==0)
{
printf("brother1\n");
exit(0);
sleep(5);
}
else
{
while((p2=fork())==-1);
if(p2==0)
{
printf(”brother2\n”);
exit(0);
sleep(0);
}
wait(0);
printf("father\n");
} } // 创建子进程1 //如果p1就是0,执行子进程 1 中得内容 //否则将创建子进程 2 结果分析(含实现中出错原因分析) 第一次编写完成之后运行出现了图 1 得情况(因图片放入该页面会出现文字越界现象,所以图片放在了最后一页),经过查找发现程序中使用了exit( )函数但就是没有使用头文件〈stdlib、h〉;当添加完头文件之后,运行出现了图 2 现象,表明实验成功,但就是想起老师上课时说进程上 cpu就是随机得,所以测试了四组,但就是结果都
图 3
上一篇:速度检测实验报告