苹果-桔子问题的实现 下载本文

如图所示:该操作中设置了八次调用。下图是前四次的过程当执行father()操作时,缓冲区中有一个苹果。而执行mother()操作时,缓冲区有一个桔子。只有当缓冲区中有桔子或苹果时,才会有daughter()调用,son()调用,如下图第三次调用,若缓冲区有一个苹果,则daughter()操作自动被调用。

图4.3 father()调用图

16

在本次程序运行过程中,由于第八次是father调用,则该进程中消费者儿子与消费者女儿互斥。生产者放入存储缓冲区(盘子)的产品(苹果),被儿子取走后,另一位生产者才能生产(橘子)供女儿消费。当操作完成后,按任意键退出该程序界面。如图所示:

图4.4 father()调用

17

5.设计总结

在此次操作系统课程设计中,我的题目是:苹果—桔子问题的实现。刚拿到这个任务时就感觉到了一种困难和挑战!不知道从何下手开始设计程序,经过三天的思考,才有了一定的眉目。最后在老师和同学的帮助下,终于得出了一套可行的方案。依照策划的设计思想,又过了六天的编写和测试,终于实现了进程的同步功能,虽然整体还有待提高,但总算实现了基本功能,还算满意。

通过此次课程设计我对操作系统原理有了更进一步的了解,学会应用进程同步及P、V原语,相信会对以后的课程设计有很大的帮助作用。也体会了到同学之间的相互合作帮助可以克服一切困难,尤其是在理论联系实际的过程中。

我的同学在设计过程中为我发现许多错误,也帮助我解决了很多问题,在此我衷心的感谢他们。在以后的学习中我会更加注意各个方面的能力的协调发展,培养自己的动手能力和拓宽自己的知识面,逐渐提高自己的专业技能。在课程设计时遇到了很多的问题,在老师的帮助,和对各种资料的查阅中,将问题一个一个的解决了,培养了我自主动手,独立研究的能力,为今后在学习工作中能更好的发展打下了坚实的基础。

总的来说这次试验比较成功,加深我对进程的理解,同时也提高了自己编程能力。编程是个长久的过程,平时要多去动手实践,去提高自己的分析问题、发现问题、解决问题的能力。

18

参考文献

1. 汤子瀛,哲凤屏.计算机操作系统.西安电子科技大学学出版社. 2. 王清,李光明.计算机操作系统.冶金工业出版社. 3. 孙钟秀等.操作系统教程.高等教育出版社. 4. 曾明.操作系统应用教程. 陕西科学技术出版社. 5. 张丽芬,刘利雄.操作系统实验教程.清华大学出版社. 6. 孟静,操作系统教程--原理和实例分析.高等教育出版社. 7. 周长林,计算机操作系统教程.高等教育出版社. 8. 张尧学,计算机操作系统教程.清华大学出版社. 9. 任满杰,操作系统原理实用教程.电子工业出版社.

19