第2次实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西南科技大学
计算机实验报告
课程名称:计算机操作系统综合设计
实验名称:实验二P、V原语的模拟实现(验
证型)
机型或机位:PC机
学号:20123266
学生姓名:付晓
班级:信安1205
指导教师:陈立伟老师
评分:
实验日期:2014 年11 月30日(13周周日晚)
1、实验目的
●理解信号量相关理论;
●掌握记录型信号量结构;
●掌握P、V原语实现机制。
2、实验题目和软(硬)件设计
●《P、V原语的模拟实现》
软件:VC++编译器,win xp系统;
硬件:PC机一台
操作步骤如下:
A. 在vc++上构建工程,并建立相应头文件和源文件,
然后输入给定代码:
basic.h 和pv.cpp(详见课件所提供参考代码)
B. 进行功能测试并得出正确结果:
◆实验中提供了5个信号量(s0-s4)和20个进程(pid 0-19)。
在程序运行过程中可以键入down命令,up命令和
showdetail命令显示每个信号量的状态。具体输入解释如
下:
down 获取信号量操作(P操作)。
参数: 1 sname 2 pid 。
示例:down(s1,2) 。进程号为2的进程申请名字为s1的
信号量。
这是删除s0信号量中的0号进程,此时进程1占用该信
号量
◆up 释放信号量操作(V操作)。
参数1 sname。
示例:up(s1)。释放信号量名字为s1的信号量。
这是删除s1信号量中的4号进程,此时进程5占用该信号量
◆showdetail 显示各信号量状态及其等待队列。
这是删除s3信号量的两个进程
直到最后,为0号进程申请信号量,再释放0号进程
exit 退出命令行。
c.代码执行的模块流程图如下:
开始
执行函数initerror()函数和变量初始化函数INIT()
3、实验体会
● 实验思考: 如果修改down 操作,使之能一次申请多个信号量? Findflag==true&&cmdstr==”exit ” 否 是 执行创建或删除函数 结束
该设计和实际的P、V操作有什么异同点?
✓该设计并没有具体的资源划分和等待,但是同实际的PV操作的等待资源规则和调用资源的规则是一样
的;