- 1、本文档共44页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
天津科技大学操作系统实验报告
2015-2016学年第一学期
专 业:计算机科学与技术
班 级:
学 号:
姓 名:
日 期:
实验一 Windows多线程
【开发语言及实现平台或实验环境】
C++/C#
Microsoft Visual Studio 6.0/ Microsoft Visual Studio .NET
【实验目的】
(1) 进一步理解操作系统的并发性;
(2) 了解Windows线程创建方法,并通过查阅资料理解各参数的含义;
(3) 了解多线程程序设计方法,并进行简单应用。
【实验要求】
(1) 逐程序进行简要分析、运行各程序并仔细阅读注释;
(2) 查阅MSDN或其他资料,掌握相关系统调用使用方法和参数含义;
(3) 完成实验报告。
【实验结果与分析】
(1)1-1.cpp程序
运行1-1.cpp结果:
将main函数中注释掉的Sleep语句让其可用,运行结果为:
分析原因:
Sleep(0)的作用为语句可观察线程1和主线程并发执行。输出结果“main thread is running /thread1 is running”。没有添加的线程1运行结束只输出“main thread is running”。
(2)1-2.cpp程序
运行1-2.cpp结果:
分析原因:
1-2.cpp文件使用的是时间片轮转方法调度的主线程、线程1、线程2.因此不需要sleep语句就可将主线程调度。因为在两个线程中存在共享变量,因此执行结果出现不可再现性。
(3)1-3.cpp程序
运行1-3.cpp结果:
将main函数中注释掉的Sleep语句让其可用,运行结果为:
将两个子函数中注释掉的Sleep语句让其可用,运行结果:
分析原因:
加入两个sleep(1)后,有可能到thread1 is sell tickets:时间片就停了,tickets没--,还可以运行thread2 is sell tickets:tickets—也就是说tickets变为0,返回再运行thread1 is sell tickets时就卖0号票了。
【实验思考及总结】
………………………
(1)加入循环,使得两个进程可以交替执行。
(2)Sleep是阻塞线程函数。它会在当前语句阻塞一段时间,参数是以1/1000秒为单位的。
(3)线程也有父子关系。父进程退出后子进程也会退出。
(4)不可再现性:两个进程同时迈出同一部步,两个进程中存在共享变量。
.
实验二 Windows线程同步机制
【开发语言及实现平台或实验环境】
C++/C#
Microsoft Visual Studio 6.0/ Microsoft Visual Studio .NET
【实验目的】
(1) 了解Windows线程同步机制;
(2) 了解互斥体,并通过查阅资料理解互斥体对象的使用方法;
(3) 了解事件,并通过查阅资料理解事件对象的使用方法;
(4) 了解关键区,并通过查阅资料理解关键区对象的使用方法;
(5) 了解信号量,并通过查阅资料理解信号量对象的使用方法;
(6) 利用Windows线程同步机制,模拟生产者消费者问题。
【实验要求】
(1) 逐程序进行简要分析、运行各程序并仔细阅读注释;
(2) 查阅MSDN或其他资料,掌握相关系统调用使用方法和参数含义;
(3) 完成实验报告。
【实验结果与分析】
(1)2-1(mutex).cpp 程序
运行2-1(mutex).cpp 结果:
将两个子函数中注释掉的Sleep语句让其可用,运行结果:
(2)2-2(event).cpp 程序
运行2-2(event).cpp 结果:
将两个子函数中注释掉的Sleep语句让其可用,运行结果:
(3)2-3(critical_section).cpp 程序
运行2-3(critical_section).cpp 结果:
将两个子函数中注释掉的Sleep语句让其可用,运行结果:
分析原因:
2-1(mutex).cpp 、2-2(event).cpp、2-3(critical_section).cpp的处理方式相同,不会出现销售出0号票的情况原因相同:
修改之前,在指定暂停的时间Sleep(1000)内,thread1和thread2随机售票,出现多种情况;将两个子函数中注释掉的Sleep(1)语句让其可用后,thread1和thread2交替售票,即thread1在其暂停的时间Sleep(1)内,thread2获得了对共享对象hMutex的所有权,开始售票,同理当thr
您可能关注的文档
- 初中信息技术选择题flash部分汇总(考试答案).doc
- 典型故障案例分析.doc
- 动画制作关键帧动画.doc
- 劳经章节重点.docx
- 化学平衡图像文档.doc
- 化学文献检索期末复习整理.doc
- 化学平衡常见图像分析.docx
- 世界地理概况练习题.doc
- 北交15春铁路运输自动化第三次作业.doc
- 北师大版四年语文下册第七八单元强化提纲.doc
- 河南省巩义市市直高中2024年高三下学期第六次检测生物试卷含解析.pdf
- 河南省驻马店市泌阳县2023-2024学年七年级下学期4月月考数学试题(含答 完整版72096053.pdf
- 甘肃省庆阳市镇原县庙渠初级中学2024年初一上册期中地理在线测验完整版.pdf
- 观《长津湖之水门桥》观后感500字(精选10篇) .pdf
- 维修电工培训资源包 维修电工国家职业技能标准(初、中、高级).pdf
- 版八年级上学期期末教学质量检测历史试题(含答案) .pdf
- 电工(高级技师)理论知识模考试题与参考答案.pdf
- 计算机网络期末考试试题及答案个人复习.pdf
- 第四单元 基础卷(原卷+答案)五年级上册语文单元双练 2023-2024学年统编.pdf
- 湘教版美术三年级下学期考试.pdf
文档评论(0)