操作系统原理实验报告

2019-01-19 12:13

操作系统原理 实验报告

学 院: 信息与电子工程学院 专 业:计算机科学与技术 班 级: 计算机 学 号: 姓 名:

浙江科技学院 2010-2011学年 第2学期

操作系统原理实验报告 2010-2011学年 第2学期

实验1 进程管理

一、实验目的

1. 弄清进程和程序的区别,加深对进程概念的理解。 2. 了解并发进程的执行过程,进一步认识并发执行的实质。 3. 掌握解决进程互斥使用资源的方法。

二、实验内容

1. 管道通信

使用系统调用pipe( )建立一个管道,然后使用系统调用fork( )创建2个子进程p1和p2。这2个子进程分别向管道中写入字符串:“Child process p1 is sending message!”和“Child process p2 is sending message!”,而父进程则从管道中读出来自两个子进程的信息,并显示在屏幕上。

2. 软中断通信

使用系统调用fork( )创建2个子进程p1和p2,在父进程中使用系统调用signal( )捕捉来自键盘上的软中断信号SIGINT(即按Ctrl-C),当捕捉到软中断信号SIGINT后,父进程使用系统调用kill( )分别向2个子进程发出软中断信号SIGUSR1和SIGUSR2,子进程捕捉到信号后分别输出信息“Child process p1 is killed by parent!”和“Child process p2 is killed by parent!”后终止。而父进程等待2个子进程终止后,输出信息“Parent process is killed!”后终止。

三、实验要求

1. 根据实验内容编写C程序。 2. 上机调试程序。

3. 记录并分析程序运行结果。

第 1 页 共 16 页

操作系统原理实验报告 2010-2011学年 第2学期

四、程序说明和程序流程图

1. 管道通信即发送进程以字符流形式将大量数据送入管道,接收进程可从管道接收数据,二者

利用管道进行通信。无论是SQL Server用户,还是PB用户,作为C/S结构开发环境,他们在网络通信的实现上,都有一种共同的方法——命名管道。由于当前操作系统的不惟一性,各个系统都有其独自的通信协议,导致了不同系统间通信的困难。尽管TCP/IP协议目前已发展成为Internet的标准,但仍不能保证C/S应用程序的顺利进行。命名管道作为一种通信方法,有其独特的优越性,这主要表现在它不完全依赖于某一种协议,而是适用于任何协议——只要能够实现通信。

第 2 页 共 16 页

操作系统原理实验报告 2010-2011学年 第2学期

2.

第 3 页 共 16 页

操作系统原理实验报告 2010-2011学年 第2学期

五、程序代码

1.

#include void main( ) { int i, r, p1, p2, fd[2]; char buf[50], s[50];

pipe(fd); /* 父进程建立管道 */

while ((p1=fork())==-1); /* 创建子进程P1,失败时循环 */ if (p1==0) /* 由子进程P1返回,执行子进程P1 */ { lockf(fd[1], 1, 0); /* 加锁锁定写入端 */

sprintf(buf, \ printf(\

write(fd[1], buf, 50); /* 把buf中的50个字符写入管道 */ sleep(5); /* 睡眠5秒 */

lockf(fd[1], 0, 0); /* 释放管道写入端 */ exit(0); /* 关闭P1*/ }

else /* 从父进程返回,执行父进程 */

{ while ((p2=fork())==-1); /* 创建子进程P2,失败时循环 */ if (p2==0) /* 从子进程P2返回,执行子进程P2 */ { lockf(fd[1], 1, 0); /* 锁定写入端 */

第 4 页 共 16 页


操作系统原理实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:14电气EDA实验指导书(1)

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

马上注册会员

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