- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统实2指导电子课件
* * * * * * * * * * * * * * * * * * 北京交通大学计算机学院 翟高寿 北京交通大学计算机学院 翟高寿 * * 北京交通大学计算机学院 翟高寿 主讲教师:翟高寿(副教授) 联系电话:010(办) 电子邮件:gszhai@bjtu.edu.cn 制作人:翟高寿 制作单位:北京交通大学计算机学院 《操作系统实验指导》 * * 北京交通大学计算机学院 翟高寿 教学要求 待续 一、完成四个必做实验课题,并通过课程作业网站提交相应完整的实验课题电子版打包文件,至少包含实验报告、源程序和可执行系统(截至结束周周日)。 二、实验报告应给出实验目的、实验设计、 源程序清单和说明、算法及关键数据结构设计、实验问题回答、实验过程中间结果屏幕截图、疑难解惑及经验教训[含他人专解]。 1、页面置换算法(1-4周) 2、线程同步机制(5-8周) 3、内存管理器(9-12周) 4、文件系统模拟(13-16周) 实验相互检查学习融入报告 * * 北京交通大学计算机学院 翟高寿 教学要求 续完 三、电子版目录结构要求: 1、以自己的学号姓名和课题编号、课题简称为一级目录名,飞02线程同步机制 2、目录组织结构示例 飞02线程同步机制 |-- 实验报告文档.doc |--无同步控制的线程并发运行|--源程序子目录+可执行文件 |--Windows同步线程并发运行|--源程序子目录+可执行文件 ∟Peterson同步线程并发运行|--源程序子目录+可执行文件 * * 北京交通大学计算机学院 翟高寿 线程同步机制 * * 北京交通大学计算机学院 翟高寿 线程同步机制实验目的 通过观察共享数据资源但不受控制的两个线程的并发运行输出结果,体会同步机制的必要性和重要性。然后利用现有操作系统提供的同步机制编程实现关于该两个线程的有序控制,同时要求根据同步机制的Peterson软件解决方案尝试自己编程实现同步机制和用于同一问题的解决,并基于程序运行时间长短比较两种同步机制。 * * 北京交通大学计算机学院 翟高寿 线程同步机制课题基本要求1 基于给定银行账户间转账操作模拟代码作为线程执行代码,在主线程中创建两个并发线程,编程实现并观察程序运行结果和予以解释说明。 利用Windows互斥信号量操作函数解决上述线程并发问题,并分析、尝试和讨论线程执行体中有关信号量操作函数调用的正确位置。 * * 北京交通大学计算机学院 翟高寿 线程同步机制课题基本要求2 根据同步机制的Peterson软件解决方案尝试自己编程实现线程同步机制和用于上述线程并发问题的解决,并基于程序运行时间长短将其与基于Windows互斥信号量的线程同步机制的效率展开比较。其间,可规定线程主体代码循环执行1000000次。 * * 北京交通大学计算机学院 翟高寿 共享数据资源的并发线程代码示例 int nAccount1 = 0, nAccount2 = 0; //主线程创建的全局变量 int nLoop = 0; int nTemp1, nTemp2, nRandom; do { nTemp1 = nAccount1; nTemp2 = nAccount2; nRandom = rand(); nAccount1 = nTemp1 + nRandom; nAccount2 = nTemp2 - nRandom; nLoop++; } while ((nAccount1 + nAccount2) = = 0); printf(循环次数为%d\n, nLoop); 银行账户间转账操作模拟 * * 北京交通大学计算机学院 翟高寿 Windows线程编程知识1 线程函数原型及框架 DWORD WINAPI ThreadExecutive(LPVOID lpParameter) { int *pID = (int*)lpParameter; …… return 0; } #include windows.h * * 北京交通大学计算机学院 翟高寿 Windows线程编程知识2 线程创建函数原型 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags,
文档评论(0)