资源简介
计算机操作系统模拟实现
进程管理模拟:实现操作系统进程管理功能,如实现进程的控制(进程创建,状态转换、进程撤销),进程并发执行。
文件管理模拟:实现文件系统的管理,如目录管理,创建文件,打开文件,读写文件,删除文件等功能。
内存管理模拟:实现内存的三种请求分页算法
设备管理模拟:实现设备的分配回收等功能。
代码片段和文件信息
package file;
import java.awt.*;
import java.io.*;
import javax.swing.*;
import javax.swing.tree.*;
public class VirtualDisk extends JPanel implements Serializable{
private static final long serialVersionUID = 1L;
private byte[][] content=new byte[128][64];
private boolean[] flag=new boolean[128];
private JButton[] button=new JButton[128];
private Color color;
private VirtualFileModel treeModel;
public VirtualDisk(){
setBorder(BorderFactory.createtitledBorder(
BorderFactory.createEtchedBorder()“模拟硬盘“));
setLayout(new GridLayout(168));
for(int i=0;i<128;i++){
flag[i]=false;
add(button[i]=new JButton());
button[i].setPreferredSize(new Dimension(55));
for(int j=0;j<64;j++)
content[i][j]=-1;
}
color=button[0].getBackground();
//磁盘的第0、1块磁盘块存放文件分配表
//第2块磁盘块存放根目录
//所以他们为系统占用
flag[0]=flag[1]=flag[2]=true;
button[0].setBackground(Color.green);
button[1].setBackground(Color.green);
button[2].setBackground(Color.green);
content[0][0]=1;
createRootDirectory();
serializeToDisktxt();
}
private void serializeToDisktxt() {
objectOutputStream out;
try{
out=new objectOutputStream(new FileOutputStream(“src/file/disk.txt“));
out.writeobject(this);
out.writeobject(null);
}catch(FileNotFoundException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
private void createRootDirectory() {
char[] direName=new char[]{‘R‘‘O‘‘T‘};
for(int i=0;i<3;i++)
content[2][i]=(byte)direName[i];
content[2][3]=(byte)VirtualFile.EXETENSION_DIRECTORY_FILE;
content[2][5]=2;
content[2][6]=0;
content[2][7]=8;
//说明:一开始目录文件只有控制部分 8字节长度
}
public void createFile(VirtualFile parentVirtualFile child){
int pIndex=parent.getFileControl()[5];//父文件的起始盘块号
//父目录文件的长度
int pLength=parent.getFileControl()[6]*128+parent.getFileControl()[7];
for(int i=3;i<128;i++){
if(flag[i]==false){
child.setStartBlockNum(i);//设置起始盘块号
child.setFileLength(8);//设置初始文件长度
parent.setFileLength(pLength+1);//父目录文件长度增1 并记录子文件的起始盘块号
content[pIndex][7]+=1;
content[pIndex][pLength]=(byte)i;
byte[] control=child.getFileControl();//得到新建文件的文件控制
for(int j=0;j<8;j++) //把文件控制写入磁盘
content[i][j]=control[j];
flag[i]=true;
button[i].setBackground(Color.orange);
break;
}
}
serializeToDisktxt();
}
public void deleteFile(DefaultMutableTreeNode parentDefaultMutableTreeNode choseNode){
//更新视图
treeModel.removeNodeFromParent(choseNode);
//更新存放子文件的磁盘块
VirtualFile file=(VirtualFile)choseNode.getUserobject();
//如果要删除的是目录文件,那么它的所有自文件应该一并删除
if(file.getFileExtension().equals(“d“)){
deleteAllFileUnderThis(file.getFileControl()[5]);
}
int start=file.getFileControl()[5];
flag[start]=false;
button[start].setBackground(color);
for(int i=0;i<64;i++)
content[start][i]=-1;
//更新存放父文件的磁盘块
VirtualFile parentFile=(VirtualFile)parent.getUserobject()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 301 2019-04-21 11:48 操作系统模拟\.classpath
文件 0 2019-04-21 17:02 操作系统模拟\.me
文件 985 2019-04-21 17:02 操作系统模拟\.me
文件 561 2019-04-21 17:02 操作系统模拟\.me
文件 1 2019-04-21 17:02 操作系统模拟\.me
文件 57 2019-04-21 17:02 操作系统模拟\.me
文件 1 2019-04-21 17:02 操作系统模拟\.me
文件 81 2019-04-21 17:02 操作系统模拟\.me
文件 488 2019-04-21 17:02 操作系统模拟\.me
文件 42 2019-04-21 17:02 操作系统模拟\.me
文件 623 2019-04-21 17:02 操作系统模拟\.me
文件 58 2019-04-21 17:02 操作系统模拟\.me
文件 73 2019-04-21 17:02 操作系统模拟\.me
文件 62 2019-04-21 17:02 操作系统模拟\.me
文件 97 2019-04-21 17:02 操作系统模拟\.me
文件 194 2019-04-21 17:02 操作系统模拟\.me
文件 69 2019-04-21 17:02 操作系统模拟\.me
文件 69 2019-04-21 17:02 操作系统模拟\.me
文件 129 2019-04-21 17:02 操作系统模拟\.me
文件 371 2019-04-21 17:02 操作系统模拟\.me
文件 441935 2019-04-21 17:02 操作系统模拟\.me
文件 20 2019-04-21 17:02 操作系统模拟\.me
文件 32 2019-04-21 17:02 操作系统模拟\.me
文件 20 2019-04-21 17:02 操作系统模拟\.me
文件 240 2019-04-21 17:02 操作系统模拟\.me
文件 0 2019-04-21 17:02 操作系统模拟\.me
文件 11 2019-04-21 17:02 操作系统模拟\.me
文件 12 2019-04-21 17:02 操作系统模拟\.me
文件 15 2019-04-21 17:02 操作系统模拟\.me
文件 0 2019-04-21 17:02 操作系统模拟\.me
............此处省略152个文件信息
相关资源
- 2019校园招聘算法笔试题
- 操作系统概念OSC答案.rar
- Winio3.0完整版_支持64位操作系统
- 软件工程课程设计 有64个题目
- 算术表达式求解 数据结构课程设计报
- 中科大数据结构与数据库课件
- 计算机操作系统2009-2015考研真题
- EOS操作系统文件系统功能完善
- 《操作系统》-简答题.DOC
- 迷宫问题课程设计报告
- 北邮操作系统第二次实验报告
- CAD 球阀阀体 cad课程设计
- 数字秒表 课程设计
- 操作系统实验报告-先来先服务的调度
- Linux设备驱动
- Linux内存分配与回收
- 请求调页存储管理系统的模拟实现
- 软件开发平台课程设计已做好的文档
- 停车场 数据结构课程设计源代码
- 嵌入式多任务实现课程设计
- 操作系统考研复习重点大全65页
- 基于51单片机的打地鼠游戏
- 基于单片机的节日彩灯控制器设计
- 操作系统银行家算法两个
- 广工操作系统课程设计文档+代码+可执
- 最新数字电子课程设计电子密码锁的
- 网络工程课程设计报告 网络系统规划
- 数字逻辑课程设计——数字锁
- 微机原理课程设计--温度测试系统/A
- 数据库课程设计——物业管理系统
评论
共有 条评论