-
模拟进程调度的课程设计中,采用了生产者-消费者模型并附带报告
资源介绍
实验一 生产者-消费者模型模拟进程调度
一、实验任务
1、在WINDOWS 2000环境下,创建一个控制台进程,此进程包括4个线程:2个生产者线程和2个消费者线程。
2、用信号量机制解决进程(线程)的同步与互斥问题。
二、实验目的
1.掌握基本的同步互斥算法,理解生产者和消费者模型。
2.了解Windows 2000/XP中多线程的并发执行机制,线程间的同步和互斥。
3.学习使用Windows 2000/XP中基本的同步对象,掌握相应的API。
三、实验要求
1.生产者消费者对缓冲区进行互斥操作。
2.缓冲区大小为10,缓冲区满则不允许生产者生产数据,缓冲区空则不允许消费者消费数据。
3.生产者消费者各循环操作50次。
四、设计思路和采取的方案
1.利用windows提供的API函数CreateSemaphore()创建信号量对象;
CreateThread()创建线程;
WaitForSingleObject()执行P操作;
ReleaseSemaphore()执行V操作;
WaitForMultipleObjects()主进程等待线程的结束等函数进行设计。
2.在Windows中,常见的同步对象有:信号量(Semaphore)、互斥量(Mutex) 。
使用这些对象都分为三个步骤,一是创建或者初始化;
接着请求该同步对象,随即进入临界区,这一步对应于互斥量的上锁;最后释放该同步对象,这对应于互斥量的解锁。这些同步对象在主进程中创建,在其子线程中都可。