- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[键入文字]
操作系统原理
实验报告
学 院:
专 业:
班 级:
学 号:
姓 名:
2011-2012学年 第2学期
PAGE
PAGE 30
目录
TOC 实验1 进程管理 2
实验2 进程通信 9
实验3 存储管理 15
实验4 文件系统 24
实验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管道通信——所涉及的流程图:
实验2软中断信号——所涉及的流程图:
五、程序代码
/*expe1_1.c*/
#include stdio.h
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, Child process P1 is sending messages! \n);
printf(Child process P1! \n);
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); /* 锁定写入端 */
sprintf(buf, Child process P2 is sending messages! \n);
printf(Child process P2! \n);
write(fd[1], buf, 50); /* 把buf中的字符写入管道 */
sleep(5); /* 睡眠5秒,让父进程读 */
lockf(fd[1], 0, 0); /* 释放管道写入端 */
exit(0); /* 关闭P2*/
}
wait(0);
if ((r=read(fd[0], s, 50))== -1)
printf(cannot read pipe! \n);
else printf(%s, s);
wait(0);
if ((r=read(fd[0], s, 50))== -1)
printf(cannot read pipe! \n);
else printf(%s, s);
exit(0);
}
}
/*exp1-2
您可能关注的文档
- XX网络设计方案.doc
- 软件体系结构实验三.doc
- zara-不仅仅是陈列.doc
- 三坊七巷名人故事.doc
- zhiye司机礼仪培训手册.ppt
- 三角函数复习提纲gai.doc
- 三年级科学下册《蚕的生长变化》PPT.ppt
- 安徽省中考语文模拟试题(含答案).doc
- 三箱传动式旋耕机的设计-淮海工学院-(2).doc
- 安全输血管理.ppt
- 2024年中山正规的快照推广方案.docx
- 省级赛课比赛一等奖人音版音乐一年级上册《新年好》课件(内嵌音视频).pptx
- 省级赛课大赛一等奖统编版小学道德与法治五年级上册《古代科技耀我中华》课件.pptx
- 省级赛课比赛一等奖人音版音乐七年级上册《彩色的中国》课件(内嵌音视频).pptx
- 省级赛课比赛一等奖人音版音乐七年级上册《爱我中华》课件(内嵌音视频).pptx
- 省级赛课比赛一等奖人音版音乐一年级上册《咏鹅》课件(内嵌音视频).pptx
- 省级赛课大赛一等奖统编版小学道德与法治五年级上册《中华民族一家亲》课件.pptx
- 省级赛课比赛一等奖人音版音乐七年级上册《走向复兴》课件(内嵌音视频).pptx
- 省级赛课比赛一等奖人音版音乐七年级上册《雷鸣电闪波尔卡》课件(内嵌音视频).pptx
- 省级赛课大赛一等奖统编版小学道德与法治五年级上册《我们神圣的国土》课件.pptx
文档评论(0)