本实验通过C++编程实现操作系统的经典问题——生产者与消费者模型,采用多线程技术模拟资源生产和消费过程,探讨同步机制及线程间通信方法。
实验内容:① 用户指定要生成的进程及其类别,并将其放入就绪队列。
② 调度程序从就绪队列中选取一个就绪进程进行运行,如果该进程因申请资源而被阻塞,则将它移至相应的等待队列。调度程序随后继续调度下一个处于就绪状态的进程。当某个进程结束时,系统会检查对应的等待队列,并激活其中的各个进程以进入就绪队列。最后,完成执行的进程会被加入到over链表中。这一过程将持续进行直到所有就绪队列中的任务都被处理完毕。
③ 实验程序询问用户是否要继续运行?如果选择“是”,则返回步骤①重新开始;否则实验将结束并退出。
实验目的:通过模拟生产者与消费者之间的关系,加深对两者之间相互作用及其原理的理解,并由此增进对于进程同步问题的认识。