实验报告书
学生姓名高雪
学号
班级计10A-2 2011 —2012 学年第一学期
2021-8-19 第2页/共12页
2021-8-19 第3页/共12页
5.signal()
signal()函数是允许调用进程控制软中断信号的处理。
6.pipe()函数
pipe函数用于创建一个管道
五、编译与执行过程截图
1.进程的创建
执行后出现acb和abc两种不同情况
2.进程的控制
〔1〕加锁情况:
2021-8-19 第4页/共12页
( 2 )没有加锁的情况
3.进程的软中断通信
2021-8-19 第5页/共12页
4.进程的管道通信
六、实验结果与分析
1.进程的创建:
实验一为进程创建,由以上截图可以看到产生了不同的结果,即acb和abc。
最初只有acb一种情况,反复执行之后,会出现abc。
原因很简单,就是因为进程的特性:并发性。
进程之间是并发执行的,并发只说一段时间内同时进行。
第一个输出一定是a,因为a在bc之外优先执行,而在执行bc的时候,2者会随机出现,多数情况会是acb,假设想更快的见到abc,可以讲c语句变长,如改为this is c child.这样进程需要的时间就稍长,后一个会先出现了。
但宏观来看,还是并行的。
2. 进程的控制
实验二为进程控制,分为不加锁和加锁的情况,产生的结果不同,在不加锁的情况下,还有由于进程的执行具有并发性这个特征,因此会产生字符交叉的情况,即某一个进程在自己的时间片当中使用处理机,但是当时间片结束,还没有完成,但也必须由下一个进程接管处理机,因为它就进入了阻塞的状态。
多个进程反复出现,所以就出现了输出的字符交叉的情况。
但是,当我们对进程加锁后,就说明只能由该程序占用处理机,必须这些完这段程序才能执行下一段,因为不会出现交叉的情况,这个就是锁的作用。
2021-8-19 第6页/共12页
2021-8-19 第7页/共12页
2021-8-19 第8页/共12页
2021-8-19 第9页/共12页
2021-8-19 第10页/共12页
2021-8-19 第11页/共12页
2021-8-19 第12页/共12页。