摘 要
《操作系统》是计算机及其相关专业的一门专业核心课程。本次课程设计主要完成和解决进程同步中的生产者消费者问题,掌握信号的使用方法和P、V操作,实现进程之间同步与互斥,加深对进程同步互斥概念的理解。本设计主要采用Java语言编写,数据结构为Java中独有的LinkedBlockingQueue,即对信号量机制的封装与优化。在初始设计中我们设计了三个进程,即一个生产者进程和两个消费者进程,随机生成产品的数字大小,并在一定程度上规定了生产和消费的速度比。后期通过发散思维,将生产消费速度比随机化,并随机生成了进程数目,即若干生产者与若干消费者,完成了全局的随机化。在模拟的过程中,将各个消费者的数字之和迭代统计输出到Excel中,并用Python处理形成可视化界面并顺利完成课设。
关键词:互斥,阻塞队列,全局随机化,迭代统计输出
目录
摘 要 IV
1 问题描述 1
2 需求分析 2
3 概要设计 3
3.1 思路方法 3
3.2 程序流程图 3
4 详细设计 5
4.1 数据结构 5
4.2 生产者/消费者模式与进程通信 5
4.3 生产者进程详细设计 6
4.4 消费者进程详细设计 7
5 调试分析 8
6 用户手册 9
6.1 使用环境 9
6.2 操作要求与流程 9
7 测试结果 10
7.1 序列1的测试 10
7.2 序列4的测试 12
7.3 序列7的测试 13
7.4 其余序列的测试 15
7.5 HTML页面样例 16
8 设计体会 17
参考文献 18