- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三相关说明 说明:(1)实验相关ppt内容选自《操作系统课程设计》的核心实验,本实验为互斥同步实验,通过学生模拟线程对资源的竞争进一步加强对同步与互斥的理解。 (2)在该实验中,学生初次接触操作系统函数库,导致学生在实现原理时候无从下手,建议从一个具体实例来进行讲解。 实验三:互斥与同步实验 提纲 提纲 实验目的 理解原子操作、同步、互斥、信号量、临界区等基本概念。 掌握进程同步与互斥原理。 掌握经典同步算法模型:生产者与消费者模型、读写者模型、哲学家就餐模型等。 提纲 实验内容 一、实验说明 (1)API介绍 (2)测试数据介绍 (3)生产者和消费者模型 (4)读写者模型 二、实验内容 (1)生产者消费者模型实验 (2)读写者模型实验 (3)哲学家就餐模型实验 一、实验说明 API介绍(1) (1)等待指定的一个或全部的对象(*lpHandles)完成作业,或等待超过指定的时间。 DWORD WaitForMultipleObjects( DWORD nCount, // 句柄的数量 CONST HANDLE *lpHandles, // 指向句柄数组的指针 BOOL fWaitAll, // 等待标志位 DWORD dwMilliseconds // 超时间隔(以毫秒为单位) ); API介绍(2) (2)创建一个信号量。 HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, // 指定一个LPSECURITY_ATTRIBUTES结构,该结构通常指定安全属性 LONG lInitialCount, // 设置信号量的初始计数 LONG lMaximumCount, // 信号量的最大计数 LPCTSTR lpName // 指定信号量对象的名称 ); API介绍(3) (3) 关闭指定句柄的对象。 BOOL WINAPI CloseHandle( HANDLE hObject // 要关闭的对象的句柄 ); API介绍(4) (4) 增加信号量(hSemaphore)的值,类似于PV操作中的V。 BOOL ReleaseSemaphore( HANDLE hSemaphore, // 要操作的信号量对象的句柄 LONG lReleaseCount, // 以当前为基础,信号量对象要增加的的值 LPLONG lpPreviousCount //信号量变化前值的指针 ); API介绍(5) (5)创建一个线程,指定以C运行库的形式运行,而CreateThread()以Win32调用方式创建线程。 uintptr_t _beginthreadex( void *security, // 指向一个SECURITY_ATTRIBUTES结构,用来标识其返回的句柄能否被其子线程继承 unsigned stack_size, // 新线程的栈的大小 unsigned ( *start_address )( void * ), // 新线程的起始地址 void *arglist, // 向新线程传递的参数列表 unsigned initflag, // 新线程的初始状态 unsigned *thrdaddr // 指向一个32位的变量,改变量用来保存线程标识符 ); 测试数据 生产者与消费者模型:本实验将使用以下四类不同的数据集合,来表示四个生产者生产的元素。 第一类数据:大写字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z。 对应实验源码中的source0.txt 第二类数据:数字:0 1 2 3 4 5 6 7 8 9。 对应实验源码中的source1.txt 第三类数据:汉语拼音字母:b p m f d t n l g k h j q z zh ch sh r z c s y w ao ei u v ai ei ui ao ou iu ie ve er an en in un 对应实验源码中的source2.txt 第四类数据:符号:~ ! @ # $ % ^ * ( ) _ + - =, 对应实验源码中的source3.txt 生产者和
文档评论(0)