操作系统实验报告_进程同步与互斥

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《进程同步与互斥》实验报告

实验序号:01 实验项目名称:进程同步与互斥学号姓名专业、班

实验地点指导教师时间

一、实验目的

1、掌握基本的进程同步与互斥算法,理解生产者-消费者问题。

2、学习使用Windows 2000/XP中基本的同步对象,掌握相关API的使用方法。

3、了解Windows 2000/XP中多线程的并发执行机制,实现进程的同步与互斥。

4、设计程序,实现生产者-消费者进程(线程)的同步与互斥;

二、实验环境

Windows 2000/XP + Visual C++ 6.0

三、实验内容

以生产者-消费者模型为依据,在Windows 2000/XP环境下创建一个控制台进程,在该进程中创建n个线程模拟生产者和消费者,实现进程(线程)的同步与互斥。

四、设计思路和流程框图

生产者进程的功能:生产东西,供消费者消费;消费者进程的功能:消费生产者生产的东西。生产者生产产品并存入缓冲区供消费者取走使用,消费者从缓冲器内取出产品去消费。在生产者和消费者同时工作时,必须禁止生产者将产品放入已装满的缓冲器内,禁止消费者从空缓冲器内取产品。

五、源程序(含注释)清单

\n" ,BufferPos,Buffer_Critical[BufferPos]);

ReleaseSemaphore(empty_semaphore,1,NULL);

}

else{

printf("Consumer %2d finish consuming product %2d\n ",m_serial,m_thread_request[i]);

}

//离开临界区

LeaveCriticalSection(&PC_Critical[BufferPos]);

}

}

六、测试结果以及实验总结

1、通过实验进一步了解了基本的进程同步与互斥算法,理解生产者-消费者问题

2、掌握了相关API的使用方法。

备注:实验报告文档的名称:姓名_实验编号(例如:张三_1、张三_2);实验报告发送到:*************

相关文档
最新文档