资源简介
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个文件信息
相关资源
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- 局域网聊天程序,群聊。私聊。发文
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- u-blox_Android_GNSS_Driver_v3.10驱动源码+中
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- 基于JSP的校友信息管理系统(添加数
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
- java Servlet投票实例
- 操作系统作业 (pv,作业管理,等5个
评论
共有 条评论