计算机操作系统实验报告
实验内容:实验类型:指导教师:专业班级:姓 名:学 号:实验地点:
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操作中资源时不可再生的资源分配给某个进程后资源不能释放,只能通过增加资源来增加资源的数量。相同点在于对资源的分配规则基本一致。
因篇幅问题不能全部显示,请点此查看更多更全内容