操作系统 实 验 报 告课程名称操作系统实验课程编号0906553实验项目名称进程的同步学号2011061324年级2011姓名张耀专业计算机科学与技术学生所在学院计算机科学与技术指导教师印桂生实验室名称地点21B276 哈尔滨工程大学计算机科学与技术学院第五讲 进程的同步一、实验概述1
实验名称进程的同步2
实验目的(1)使用 EOS —的信号量,编程解决生产者消费者问题,理解进程同步的意义; (2) 调试跟踪 EOS 信号量的工作过程,理解进程同步的原理;(3)修改 EOS 的信号量算法,使之支持等待超时唤醒功能(有限等待),加深理解进程同步的原理
实验类型验证型和设计型实验4
实验内容(1)准备实验;(2) 使用 EOS 的信号量解决生产者-消费者问题;(3) 调试 EOS 信号量的工作过程;创建信号量等待释放信号量等待信号量(不阻塞)释放信号量(不唤醒)等待信号量(阻塞)释放信号量(唤醒)(4) 修改 EOS 的信号量算法
二、实验环境(1)OSLab 集成实验环境;(2)EOS 操作系统;(2)C 语言
三、实验过程1
设计思路和流程图1main 函数开始创建 Mutex对象创建 Empty信号量对象创建 Full 信号量对象创建生产者线程创建消费者线程等待生产者线程和消费者线程结束关闭句柄main 函数结束Producer 函数开始生产完毕
等待 Empty 信号量对象等待 Mutex 对象生产一个产品,占用一个缓冲区循环向后移动缓冲区指针释放 Mutex 对象释放 Full 信号量对象等待 500毫秒Producer函数结束Consumer 函数开始消费完毕毕
等待 Full 信号量对象等待 Mutex对象消费一个产品,清空一个缓冲区循环向后移动缓冲区指针释放 Mutex对象释放 Empty 信号量对象前10个产品
等待 2000毫秒等待100毫