哲学家就餐-操作系统_第1页
哲学家就餐-操作系统_第2页
哲学家就餐-操作系统_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、衡阳师范学院操作系统 题目哲学家就餐问学生姓名文润学号专业班级计算机科学与技术1402指导教师王玉奇完成时间2016.11.29 PAGE PAGE 3目录 HYPERLINK l _TOC_250006 一、设计要求2实验目的:2设计要求:2 HYPERLINK l _TOC_250005 二、运行环境2 HYPERLINK l _TOC_250004 三、设计思想及流程2设计思想:2流程图:4主要数据结构:5 HYPERLINK l _TOC_250003 四、运行结果5 HYPERLINK l _TOC_250002 五、设计心得6 HYPERLINK l _TOC_250001 六、参

2、考资料6 HYPERLINK l _TOC_250000 七、程序清单7一、设计要求实验目的:理。设计要求:哲学家有N 互斥使用算法的程序实现。二、运行环境操作系统:Windows 编程语言:Java 语言编译软件:Eclipse三、设计思想及流程设计思想:对问题分析可知,目前问题的瓶颈在于:死锁。死锁的发生必须满足以下四个必要条件:程因请求资源而阻塞时,对已获得的资源保持不放。不剥夺条件: 不能去抢别人的刀叉。循环等待条件:若干进程之间形成一种头尾发生死锁。N PAGE PAGE 4流程图:开始开始输入哲学家人数N否饥饿Y刀叉是否干净NYN刀叉是否干净Y哲学家就餐结束 PAGE PAGE 9

3、主要数据结构:rousseau10002态和餐具的使用状态;定义函数rousseauleft:使哲学家右边的餐具就绪Rousseauself:使哲学家左边的餐具就绪Rousseaueat:使哲学家的就餐状态改变;四、运行结果程序初始界面运行结果界面五、设计心得通过课程设计的训练,我进一步学习和掌握 对程序的设计和编会有很大的帮助的,我要好好利用。通过课程设计的训练,我进一步学习和掌握 对程序的设计和编会有很大的帮助的,我要好好利用。有关程序内容,也就是对它的程序改进了一番,并有创新。但是我感够完善。以后我会继续努力,大胆创新,争取能编写出投射着自己思手能力的重要性。我会在以后的学习中更加努力

4、自己,提高自己,让自己写出更好更完善的程序,为以后的编程打好基础!六、参考资料1宗大华,宗涛,陈吉人著. 操作系统. 人民邮电出版社,2009。2陆丽娜,杨麦顺著. 计算机操作系统. 高等教育出版社,2015.3李芝兴,杨瑞龙著. Java 程序设计. 清华大学出版社,2016七、程序清单package jiucan;import java.util.Scanner;import java.lang.NullPointerException;public class zhexuejiapublic static int rousseau=new int10002;/*rousseaux0 中存

5、储哲学家就餐状态(1,0存储刀叉是否干净(1,0rousseaux1 中*/public static int n,m;/n个数,mnpublic static Scanner input=new Scanner(System.in);public static void rousseauright(int i)rousseau(i+1)%m1=0;/不干净,将刀叉擦干净;System.out.print(第+(i+1)%m+1)+把刀叉是脏的,第+(i+1)+哲学家将刀叉擦干净n);public static void rousseauself(int i)rousseaui1=0;/干净,

6、将自己的刀叉擦干净;System.out.print(第+(i+1)+把刀叉是脏的,第+(i+1)+个哲学家将刀叉擦干净n);public static void rousseaueat(int i)rousseaui0=0;/状态变为已吃;n-;/家人数减 1;rousseau(i+1)%m1=1;rousseaui1=1;System.out.print(第+(i+1)+个哲学家就餐,第+(i+1)%m+1)+(i+1)+把刀叉变脏n);public static void main(String args)System.out.print(输入哲学家人数(0代表结束:n); n=inpu

7、t.nextInt();/ 读取从键盘输哲学家的人数;while(n!=0)m=n;/mnfor(int i=0;in;i+)rousseaui0=1;rousseaui1=0;/将所有哲学家的就餐状态设置为饥饿;/将所有刀叉的状态设置为干净;int i=0;/0while(n!=0)i=i%m;/ 实 现 哲 学 家 序 号 的 循 环 ; if(rousseaui0=1)/首先判断当前的哲学家是否饥饿;if(rousseau(i+1)%m1=1)/如果哲学家饥饿,判断右手边的刀叉是否干净;rousseauright(i);elseif(rousseaui1=1)/如果哲学家饥饿并且右手边的刀叉干净;判断自己的刀叉是否干净;roussea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论