操作系统实验er(4)
实验四 操作系统中的经典线程同步问题
一、实验目的
1、加深对线程的理解、掌握Windows中线程的操作。 2、掌握死锁产生的原因。
3、掌握信号量、互斥量、事件、临界区等同步对象的使用。
二、实验理论基础及教材对应关系
1、进程和线程的关系。 2、线程间的同步和通信。
3、本实验内容主要对应于教材第2章中关于线程的各节、第3章中关于死锁的各节。
三、实验内容与步骤
1、运行实验程序“Reader_Writer.exe”,出现如下界面:
2、交替点击“创建读者线程”和“创建写者线程”按钮,出现如下界面:
3、观察第二步的实验现象,多次试验,可总结为:
(1)、当有“读者”的绿灯亮时,其余的“读者”灯的状态
是 、其余的“写者”灯的状态是 。
(2)、当有“写者”的绿灯亮时,其余的“写者”灯的状态是 、其余的“读者”灯的状态是 。 这说明“读者”间的关系是 、“读者”之间的关系是 、“读者-写者”之间的关系是 。(填相容、互斥) 4、打开工程文件“Reader_Writer”,查找下列函数的用法:
(1) AfxBeginThread();创建线程。ResumeThread();让线程恢复运行。 (2) CreateMutex();创建互斥量。ReleaseMutex();删除互斥量。 (3) CreateSemaphore();创建信号量。ReleaseSemaphore()删除信号量。 (4) WaitForSingleObject();等待同步对象。 (5) CloseHandle();关闭内核对象的句柄。
5、运行“Dining.exe”应用程序,观察线程间“死锁”时的状态。
6、创建一个“Console”应用程序,在main()函数中创建4个线程,线程的工作就是向屏幕输出几个字符后,就自己结束掉。
四、实验材料的提交与成绩评定
1、本实验的实验报告一份(电子版或纸质版一份,具体形式由任课教师确定,格式参考学院统一实验报告)
2、实验源程序一份,请表明题号(电子版)
备注:做下一次实验之时提交上一次实验的材料,由各班学习委员以班为单位收集并上交任课教师。
3、实验成绩总分为10分,由指导老师根据学生实验表现和实验材料进行评定,本门课程结束后实验平均成绩(实验总成绩/实验次数)按照10%的比例记入期末考试总成绩。
实验五 死锁避免—银行家算法的实现
一、实验目的
1、掌握死锁产生的原因和必要条件。 2、掌握银行家算法的实现
二、实验理论基础及教材对应关系
1、处理机调度与死锁。
2、死锁的产生与预防。 3、银行家算法。
三、实验内容与步骤
1、创建C语言工程项目,按照教材上的有关说明,定义相应的数据结构。 int AllocMatrix[5][4] // 已经分配资源矩阵 int RequestMatrix[5][4] // 需求矩阵 int AvailResource[4] // 可用资源向量 int TryProcess[5] // 尝试序列 2、给各个数据结构设定合适的初始值。
按照教材课后习题22的内容给上述数据结构设定初始值。 如:int AllocMatrix[5][4]={ {0,0,3,2}, {1,0,0,0}, {1,3,5,4}, {0,3,3,2}, {0,0,1,4}
};
// 已经分配资源矩阵
注意:步骤1、2可同时进行,即利用C语言中的定义变量就可同时初始化的方式进行数值初设。
3、依据银行家算法的描述依次进行资源的试探性分配,直至成功或失败,成功则说明当前状态是安全的;失败后,还应该将资源回到初始状态,并进行另一次试探;只有所有的试探都失败了,才能说明当前状态是不安全的。
通常,这种试探性算法采用递归的方法是很合适的,程序也是很简洁的。 代码片段:
if( AvailResource[0] >= RequestMatrix[k][0] && AvailResource[1] >= RequestMatrix[k][1] && AvailResource[2] >= RequestMatrix[k][2]
for(int i=0;i<4;i++)
int SearchSecurity(int level) //递归函数 {
if(level == 4){ } else{ }
……
SearchSecurity(level+1); // 有条件递归调用自己
……
AvailResource[i] -= AllocMatrix[k][i];
// 恢复资源
&& AvailResource[3] >= RequestMatrix[k][3])//若资源能使进程ProcessID结束
} 其余由大家自行完成。
四、实验材料的提交与成绩评定
1、本实验的实验报告一份(电子版或纸质版一份,具体形式由任课教师确定,格式参考学院统一实验报告)
2、实验源程序一份,请表明题号(电子版)
备注:做下一次实验之时提交上一次实验的材料,由各班学习委员以班为单位收集并上交任课教师。
3、实验成绩总分为10分,由指导老师根据学生实验表现和实验材料进行评定,本门课程结束后实验平均成绩(实验总成绩/实验次数)按照10%的比例记入期末考试总成绩。
…… 此处隐藏:317字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




