操作系统实验1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告书
学生姓名高雪
学号
班级计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页