![](https://csdnimg.cn/release/download_crawler_static/86241298/bg1.jpg)
进程管理实验报告
1.实验目的:
(1)理解进程/线程同步的方法,学会运用进程/线程同步的方法解决实际问题;
(2)了解 windows 系统或 unix/linux 系统下中信号量的使用方法。
2.实验内容
编写一个有关生产者和消费者的程序:每个生产者每次生产一个产品存入仓
库,每个消费者每次从仓库中取出一个产品进行消费,仓库大小有限,每次只能
有一个生产者或消费者访问仓库。要求:采用信号量机制。
3、环境说明
本实验是在 win7 环境下使用 dev 编译器实现的,采用 Win API 的信号量机
制。
4、程序设计说明
该程序根据教材中的消费者生产者问题编写的,使用了教材中提供的框架思
路以及库函数,使用 CreateThread 建立新的线程,使用 CreateMutex 创建
一个互斥信号量,使用 CreateSemaphore 创建信号量,使用 ReleaseMutex 释
放线程的互斥信号量,使用 ReleaseSemaphore 对指定的信号量增加指定的
值,使用 WaitForSingleObject 等待空位,使用 CloseHandle 在操作结束后
关闭线程和信号量。
在这个程序里我设计了三个函数:
Int main()是主函数,其中包含了缓冲区大小的设置,生产者消费者
发出请求等内容以及线程创建等内容
DWORD WINAPI producer(LPVOID lpPara)是生产者等待缓冲区的使用权
并对缓冲区进行操作
DWORD WINAPI consumer(LPVOID lpPara)是消费者等待缓冲区的使用权
并对缓冲区进行操作
该程序模拟生产者消费者问题,首先要设置缓冲区的大小,输入请求资源的
各个进程的信息以及请求时间,并且按照请求时间对各进程进行排序,创建线程,
然后按序依次对缓冲区进行操作,详细设计见源代码。
5、程序运行结果截图:
只有生产者请求,没有消费者请求,请求满足
评论0
最新资源