资源简介
java 编写的操作系统课程设计 比较不错的例子 有图形页面 包括文件管理 设备管理 存储管理 进程管理和cpu单元
代码片段和文件信息
package course;
import memory.*;
import cpu.*;
/**
*该类既是描述进程的实体又是进程的管理者,通过它我们才能够
*创建进程
*
*@version 1.0
*@author Hinker from Hebei University
*/
public class Course {
public PCB pcb;
/*
*createCourse()仅负责根据所给的程序段创建一个进程实体
*如果不能创建成功(申请不到PCB或内存)抛出一个创建进程失
*败(CreateCourseFailedException)异常
*/
public static Course createCourse(String program)
throws CreateCourseFailedException{
PCB apcb;
int memory_size;
int[] memory;
/*如果申请PCB如果不能成功抛出CreateCourseFailedException异常*/
apcb=MemoryPanel.applyPCB();
if(apcb==null)throw new CreateCourseFailedException();
/*veriable_Num代表程序中定义的变量的个数*/
int veriable_Num=getProgramVeriableNum(program);
/*memory_size代表创建进程所需的内存空间它包括两部分(程序区和数据区)*/
memory_size=program.length()/3+veriable_Num;
/*申请内存如果失败返回null而如果成功MemoryPanel.applyUnit()
*将返回一个只包含两个整型值的一维数组前一个代表内存的首地址
*后一个代表分配内存的大小
*/
memory=MemoryPanel.applyUnit(memory_size);
/*如果申请内存失败就将前面申请的PCB归还给系统同时
*抛出CreateCourseFailedException异常
*/
if(memory==null){
MemoryPanel.callbackPCB(apcb);
throw new CreateCourseFailedException();
}
/*将作业调入内存*/
int jobEnd=memory[0]+(program.length()/3);
for(int i=memory[0]Program_point=0;i int orderLocation=3*Program_point;
String order=new String(““);
for(int j=0;j<3;j++)
order+=program.charAt(orderLocation+j);
MemoryPanel.writeUserArea(order i);
}
/*初始化进程控制块*/
apcb.sign=“系统默认进程名“;
/*初始化程序段和数据段在内存中的起始地址和结束地址*/
apcb.M_start=memory[0];
apcb.M_end=memory[0]+memory[1]-1;
apcb.dTable=new DataTable();//初始化数据在内存的索引表;
/*初始化数据区并在索引表中备份数据(包括变量名称和它的内存地址)*/
for(int i=1;i if(program.charAt(i)==‘=‘)
apcb.dTable.addTableItem(program.charAt(i-1) jobEnd++);
/*PC指针指向程序的首地址*/
apcb.PC=memory[0];
apcb.state=0;//初始化进程状态为就绪态
apcb.PSW=CPU.NONE_INTERMIT;//初始化程序状态寄存器为无中断
Course course=new Course();
course.pcb=apcb;
return course;
}
/**
*允许用户在创建进程时指定进程名
*/
public static Course createCourse(String programString name)
throws CreateCourseFailedException{
Course course=createCourse(program);
if(course==null)return null;
course.pcb.sign=name;
return course;
}
private static int getProgramVeriableNum(String program){
DataTable d=new DataTable();
for(int i=1;i if(program.charAt(i)==‘=‘)
d.addTableItem(program.charAt(i-1) 0);
return d.getVeriablrIndexCount();
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-01-03 12:20 操作系统课程设计\
目录 0 2011-01-03 12:20 操作系统课程设计\src\
目录 0 2011-01-03 12:20 操作系统课程设计\src\course\
文件 2316 2010-12-30 01:19 操作系统课程设计\src\course\Course.class
文件 2844 2010-12-30 01:19 操作系统课程设计\src\course\Course.java
文件 713 2010-12-30 01:19 操作系统课程设计\src\course\CourseAttemper$1.class
文件 2271 2010-12-30 01:19 操作系统课程设计\src\course\CourseAttemper$Myfr
文件 2179 2010-12-30 01:19 操作系统课程设计\src\course\CourseAttemper$Myfr
文件 5567 2010-12-30 01:19 操作系统课程设计\src\course\CourseAttemper.class
文件 7380 2010-12-30 01:19 操作系统课程设计\src\course\CourseAttemper.java
文件 387 2010-12-30 01:19 操作系统课程设计\src\course\CreateCourseFailedException.class
文件 294 2010-12-30 01:19 操作系统课程设计\src\course\CreateCourseFailedException.java
文件 10 2010-12-30 01:19 操作系统课程设计\src\course\_desktop.ini
目录 0 2011-01-03 12:20 操作系统课程设计\src\cpu\
目录 0 2011-01-03 12:20 操作系统课程设计\src\cpu\clock\
文件 1191 2010-12-30 01:19 操作系统课程设计\src\cpu\clock\SecondSystemClock$1.class
文件 3239 2010-12-30 01:19 操作系统课程设计\src\cpu\clock\SecondSystemClock.class
文件 1805 2010-12-30 01:19 操作系统课程设计\src\cpu\clock\SecondSystemClock.java
文件 3267 2010-12-30 01:19 操作系统课程设计\src\cpu\clock\SystemClock.class
文件 2452 2010-12-30 01:19 操作系统课程设计\src\cpu\clock\SystemClock.java
文件 10 2010-12-30 01:19 操作系统课程设计\src\cpu\clock\_desktop.ini
文件 1078 2010-12-30 01:19 操作系统课程设计\src\cpu\CPU$1.class
文件 5329 2010-12-30 01:19 操作系统课程设计\src\cpu\CPU.class
文件 5288 2010-12-30 01:19 操作系统课程设计\src\cpu\CPU.java
文件 10 2010-12-30 01:19 操作系统课程设计\src\cpu\_desktop.ini
目录 0 2011-01-03 12:20 操作系统课程设计\src\equipment\
文件 1339 2010-12-30 01:19 操作系统课程设计\src\equipment\EquipmentManagePanel$1.class
文件 1147 2010-12-30 01:19 操作系统课程设计\src\equipment\EquipmentManagePanel$2.class
文件 4636 2010-12-30 01:19 操作系统课程设计\src\equipment\EquipmentManagePanel.class
文件 3976 2010-12-30 01:19 操作系统课程设计\src\equipment\EquipmentManagePanel.java
文件 703 2010-12-30 01:19 操作系统课程设计\src\equipment\VirtualEquipment$EquipmentBusyException.class
............此处省略49个文件信息
相关资源
- 条件随机场(CRF)的Java源代码实现最
- 基于android的饮食识别系统
- JAVA核心技术卷2 源代码
- jsp 网上办公系统论文
- ssm开发java web版本的妖气山视频网站系
- JSP汽车租赁系统java
- java web 购物网站前后端实现+毕业设计
- Java超级玛丽39583
- 阿里巴巴java开发手册-2020最新嵩山版
- 基于javase汽车销售管理系统含数据库
- JavaEE(J2EE)课程设计,MyEclipse工程,
- JSP+Servlet+Javabean+Mysql 网上书店管理系
- java马里奥毕业设计
- mysql8.0jdbc驱动.zip
- JAVA支付宝支付接口.rar
-
java Swing 读取xm
l并导出Excel密码:qi - org.apache.commons.codec包
- java实现客户端上传图片到ftp服务器,
- Goldendict_1.6.2_中文破解版
- 仿闲鱼 jsp+servlet
- Java经典入门教程pdf完整版31282
- java员工表增删该查完整代码+orcle数据
- Java编程思想第4版,文字版,非扫描版
- TFIDF算法java实现
- Java+MySQL火车站售票系统
- JavaWeb 入门级项目实战 -- 文章发布系
- 计算机专业毕业论文+英文文献+文献翻
- web/java/jsp实现发送手机短信验证码和
- 简单仓库管理系统 基于java+SQLserver2
- 图书管理系统毕业设计+源码-java
评论
共有 条评论