1407070225--郭飞--(二)进程的控制实验

2020-08-09 18:31

天津城建大学计算机与信息工程学院

操作系统实验报告

班级: 软件二班 学号 1407070225 姓名: 郭飞 时间: 2016年5月6 日

实验二 进程管理 (二)进程的控制实验

一、实验目的

1、掌握进程另外的创建方法

2、熟悉进程的睡眠、同步、撤消等进程控制方法

二、实验内容

1、用fork( )创建一个进程,再调用exec( )用新的程序替换该子进程的内容

2、利用wait( )来控制进程执行顺序

三、实验过程

进入LINUX系统。打开虚拟机,在vi中编写程序,在终端输入文件名,执行指令,得出运行结果。

1.运行程序:

天津城建大学计算机与信息工程学院

操作系统实验报告

班级: 软件二班 学号 1407070225 姓名: 郭飞 时间: 2016年5月6 日

2.运行实验结果:

四、回答问题

(1)可执行文件加载时进行了哪些处理?

可执行文件加载时首先是创建一个新进程的fork系统调用,然后用于实现进程自我终止的exit系统调用;改变进程原有代码的exec系统调用;用于将调用进程挂起并等待子进程终止的wait系统调用;获得进程标识符的getpid系统调用等处理过程。

(2)什么是进程同步?wait( )是如何实现进程同步的?

a.我们把异步环境下的一组并发进程因直接制约而互相发送消息、进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。

b.首先程序在调用fork()建立一个子进程后,马上调用wait(),使父进程在子进程调用之前一直处于睡眠状态,这样就使子进程先运行,子进程运行exec()装入命令后,然后调用wait(0),使子进程和父进程并发执行,实现进程同步。

五、实验总结

通过进程创建和进程控制两节课实验,让我们掌握了进程的基本概念及其含义,了解了系统是怎样创建进程的,首次调用新进程时,其入口地址在哪,应该开始从哪执行;搞明白可执行文件加载时进行的那些处理,进一步深刻认识到进程同步的概念以及wait()实现进程同步的方式方法。

六、参考程序

#include #include main( ) {

天津城建大学计算机与信息工程学院

操作系统实验报告

班级: 软件二班 学号 1407070225 姓名: 郭飞 时间: 2016年5月6 日

int pid;

pid=fork( ); /*创建子进程*/

switch(pid)

{

case -1: /*创建失败*/ printf(\ exit(1);

case 0: /*子进程*/ execl(\ printf(\ exit(1);

default: /* wait(NULL); /* printf(\ exit(0); }

}

父进程*/ 同步*/


1407070225--郭飞--(二)进程的控制实验.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:关于印发《广东省环境监测质量管理规定(试行)》等四项制度的通

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: