您的当前位置:首页操作系统实验三

操作系统实验三

2022-02-06 来源:爱问旅游网


计算机操作系统实验报告

实验内容:实验类型:指导教师:专业班级:姓 名:学 号:实验地点:

P、V原语的模拟实现 验证型 毕国堂

东6E507

实验时间:2017/10/23

一、实验目的

1. 理解信号量相关理论 2. 掌握记录型信号量结构 3. 掌握P、V原语实现机制

二、实验内容

1. 输入给定的代码

2. 进行功能测试并得出证正确结果

三、实验要求

1. 分析signal和wait函数功能模块

 Signal函数

在进行资源增加时,首先判断增加的资源是否存在,如果不存在则报错并结束函数;如果存在则将需要增加的资源数量加一,然后再判断增加后的资源数是否大于0,如果大于0则表示之前等待队列为空,没有需要分配的进程;如果增加后的资源不大于0,表示之前等待队列中存在进程,则将队首的进程取出并将资源分给该进程。  Wait 函数

在执行wait函数时,先判断请求的资源和进程是否存在,如果不存在则报错提示;如果存在则将对应资源的资源数减一,然后判断减少后的资源数是否小于0,如果小于0,表示该资源等待队列为空,可直接将资源分配给请求的进程;如果不小于0则表示之前资源的等待队列不为空,则将请求的进程插在等待队列最后。 2. 画出signal和wait函数流程图

3. 撰写实验报告

四、实验设备

1. PC机1台安装visual c++ 6.0 五、测试

1. 首先将所有的资源分配完

2. 这时再请求资源时就会出现等待现象

3. 此时增加一个资源s0,则进程1对s0的等待结束直接获取资源s0

4. 当再增加资源s0、s1时则进程1也结束对资源s1的等待,并且s0资源

为有空闲状态

六、实验思考

1. 如何修改wait操作,使之能一次申请多个信号量?

wait函数传入一个进程号和多个资源名,在wait函数中使用循环依

次进行资源分配或将进程加入对应资源等待队列。

2. 该设计和实际的P、V操作有什么异同点?

该设计的p、v操作中资源时不可再生的资源分配给某个进程后资源不能释放,只能通过增加资源来增加资源的数量。相同点在于对资源的分配规则基本一致。

因篇幅问题不能全部显示,请点此查看更多更全内容