目录
1 实验名称
进程的同步和互斥
2 实验目的
通过编写程序实现进程的同步和互斥,使学生学会分析进程(线程)竞争资源现象,学习通过信号量解决进程互斥的方法。
3 实验内容
编写C程序,实现多线程模拟生产者、消费者问题,给出测试数据,记录程序运行结果,完成实验报告。要求:
(1)设置存放产品的缓冲区的个数为6个。
(2)信号量机制实现生产者和消费者对缓冲区的互斥访问。
(3)生产者生产产品时,要输出当前缓冲区冲产品的个数和存放产品的位置。
(4)消费者消费产品时,要输出当前缓冲区冲产品的个数和消费产品的位置。
(5)用多线程的并发实现生产者进程和消费者进程的同步。
4 实验原理及流程图
利用信号量机制解决进程(线程)的基本方法。
为使生产者进程与消费者进程能并发执行,在两者之间设置了一个具有 n 个缓冲区的缓冲池:生产者进程从文件中读取一个数据,并将它存放到一个缓冲区中;消费者进程从一个缓冲区中取走数据,并输出此数据。生产者和消费者之间必须保持同步原则:不允许消费者进程到一个空缓冲区去取产品;也不允许生产者进程向一个已装满产品且尚未被取走的缓冲区中投放产品。
1.关系分析