package cn.Douzi.PhiEat; /** * 表示筷子的类 */ public class Chopstick{ /** * 表示筷子是否可用 */ private volatile boolean available = true; private int id; public Chopstick(){ } public Chopstick(int id){ this.id = id; } public boolean isAvailable(){ return availab…
package cn.Douzi.ProductConsume; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class ProCon { static int LEN = 3; static public int PROTIME = 1500; static public int CONTIME = 1000; static public int totalData…
package cn.Douzi.ReadWriter; import java.util.Scanner; public class ReadWrite { static public int count = 0; //读者数量 static public int wcnt = 0; //写者数量 static public int REATIME = 1500; //读者休眠时间 static public int WRITIME = 1000; //写者休眠时间 static public…
哲学家就餐问题是1965年由Dijkstra提出的一种线程同步的问题. 问题描述:一圆桌前坐着5位哲学家,两个人中间有一只筷子,桌子中央有面条.哲学家思考问题,当饿了的时候拿起左右两只筷子吃饭,必须拿到两只筷子才能吃饭.上述问题会产生死锁的情况,当5个哲学家都拿起自己右手边的筷子,准备拿左手边的筷子时产生死锁现象. 解决办法: 拿筷子之前判断两支筷子是否有人使用,都无人使用时才能拿起筷子. 不能独占一支筷子,造成死锁. import java.util.concurrent.ExecutorSe…
本文主要内容: 信号量的实现 利用信号量解决哲学家用餐问题 利用信号量解决生产者消费者问题 一.信号量的实现 1.1 信号量结构 typedef struct { int value; struct process * list } semaphore; value代表当前信号量可以使用的数量,list代表当前信号量上所等待的进程. 1.2 P操作实现 P(semaphore * s) { s.value--; ) { add current process to s.list; block()…
JAVA课程设计 利用所学习的JAVA知识设计一个五子棋小游戏 1.团队名称.团队成员介绍(菜鸟三人组) 杨泽斌[组长]:201521123049 网络1512 叶文柠[组员]:201521123059 网络1512 李绍乐[组员]:201521123058 网络1512 2.git地址 http://git.oschina.net/yzb123456/kechengsheji 3. 项目git提交记录截图 4.项目功能架构图与主要功能流程图 流程图: 功能架构图: 5.项目运行截图 界面: 运…
一.基础配置 ============================================================== 1.Java课程设计---Eclipse基本环境配置 2.Java课程设计---WindowBuilder插件安装 3.Java课程设计---安装Mysql及管理工具 4.Java课程设计---解压版Mysql安装 5.Eclipse Debug 调试步骤及注意事项 注意:mysql安装 在3和4选择其中一种即可,解压版安装成功率较高,对于初学者安装版msy…
首先说一下什么是哲学家进餐问题,这是操作系统课程中一个经典的同步问题, 问题如下:如上图,有6个哲学家和6根筷子(那个蓝色部分表示哲学家,那个紫色长条部分表示筷子),他们分别被编了0~5的号!如果某个哲学家想要进餐的话,必须同时拿起左手和右手边的两根筷子才能进餐!哲学家进餐完毕之后,就放下手中拿起的两根筷子!这样其他哲学家就能拿这些筷子进餐了! OK,这样就可能存在一个死锁问题,比如0号哲学家拿了0号筷子,1号哲学家拿了1号筷子!如此往复,最终的结果就是每个哲学家都只拿了1根筷子,每个人都无法进…
1.实验原理   由Dijkstra提出并解决的哲学家进餐问题(The Dinning Philosophers Problem)是典型的同步问题.该问题是描述有五个哲学家共用一张圆桌,分别坐在周围的五张椅子上,在圆桌上有五个碗和五只筷子,他们的生活方式是交替地进行思考和进餐.平时,一个哲学家进行思考,饥饿时便试图取用其左右最靠近他的筷子,只有在他拿到两只筷子时才能进餐.进餐完毕,放下筷子继续思考. 2.实验内容: 显示出每个哲学家的工作状态,如吃饭,思考.连续运行30次以上都未出现死锁现象.…
https://download.csdn.net/download/fire_to_cheat_/10221003 上面是课程设计的代码,下载需要一些积分. 1.作业调度 2.磁盘调度 常见的磁盘调度算法大致分为以下5类: FCFS.SSTF.SCAN.CSCAN.FSCAN 程序实现了上述5类调度算法. 其中,当前磁道和要求服务的磁道均由系统随机产生. 程序入口是main主函数,在程序一开始由request()函数产生随机的要求服务的磁盘序列.然后由用户选择算法FCFS.SSTF.SCAN.…