资源简介

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$Myframe$1.class
     文件        2179  2010-12-30 01:19  操作系统课程设计\src\course\CourseAttemper$Myframe.class
     文件        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个文件信息

评论

共有 条评论