操作系统课程设计实践报告文档格式.doc
- 文档编号:13032889
- 上传时间:2022-10-03
- 格式:DOC
- 页数:51
- 大小:1.30MB
操作系统课程设计实践报告文档格式.doc
《操作系统课程设计实践报告文档格式.doc》由会员分享,可在线阅读,更多相关《操作系统课程设计实践报告文档格式.doc(51页珍藏版)》请在冰豆网上搜索。
每当有车子从停车场驶出,看看便道上有没有等待停车的车子,如果有就允许在等待队列最前端的车子进来停车,若便道上没有车子等待的话,停车场空车位增加。
**总体设计**
**程序流程图**
**具体设计**
定义car:
packagecom.ly;
publicclassCar{
}
停车场管理系统OS的实现:
packagecom.ly.os;
importjava.util.ArrayList;
importjava.util.Scanner;
publicclassOS{
staticBooleanmutex;
//用来做互斥锁
staticBooleanfull;
//判断是否为满
staticBooleanempty;
//判断是否为空
staticfinalintNUMBER=50;
//车库的总容量
staticintnowNumber;
//车库当前的汽车数目
staticintcomeNumber=60;
//设定入库的线程数目
staticintleaveNumber=45;
//设定出库的线程数目
staticArrayList<
Integer>
comeThread;
//要入库的线程集合
leaveThread;
//要出库的线程集合
staticScannersc=newScanner(System.in);
//接受输入字符的类
/**
*让一辆车进入车库,占一个空车位,是消费者
*/
staticpublicvoidcome(){
if(mutex==false&
&
full==false){
mutex=true;
//重要!
!
在执行时要先上锁,执行完后再解锁
nowNumber++;
intn=(int)(Math.random()*(comeThread.size()));
//得到0~size-1的随机数
comeThread.remove(n);
//随机挑选一个线程来占用资源,进入车库。
同时减少了一个入库的线程
mutex=false;
//解开互斥锁
}
elseif(mutex==true){
System.out.println("
存在互斥锁,无法进行操作"
);
elseif(full==true){
车库满了,无法入库"
if(nowNumber==NUMBER){//入库操作结束后,判断是否已经满了
full=true;
}
*让一辆车离开车库,释放一个空车位,是生产者
staticpublicvoidleave(){
empty==false){
nowNumber--;
intn=(int)(Math.random()*(leaveThread.size()));
leaveThread.remove(n);
//随机挑选一个线程来释放资源,离开车库
els
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 实践 报告