操作系统实验1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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页

相关文档
最新文档