资源简介
计算机操作系统模拟实现
进程管理模拟:实现操作系统进程管理功能,如实现进程的控制(进程创建,状态转换、进程撤销),进程并发执行。
文件管理模拟:实现文件系统的管理,如目录管理,创建文件,打开文件,读写文件,删除文件等功能。
内存管理模拟:实现内存的三种请求分页算法
设备管理模拟:实现设备的分配回收等功能。

代码片段和文件信息
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个文件信息
相关资源
- SpringBoot+H2+mybatis-plus59130
- 登录注册界面.zip48872
- FTP课程设计(服务端+客户端)
- 升腾Win终端系统升级方法新版.doc
- Uninstall_Cortana_WINCLIENT.CN.rar
- 数字华容道
- SSM+Shiro+redis实现单点登陆
- jstl-api-1.2和jstl-impl-1.2
- 高频电子线路课程设计报告收音机
- 直流稳压电源的课程设计、安装及调
- EDA课程设计_密码锁
- 基于MVC模式的会员管理系统
- STM32基于rt_thread操作系统的SDHC卡文件
- 单片机课程设计 篮球计分器
- 国内一家大型软件公司内部的正规软
- 仿windows记事本
- 数据结构课程设计 6 1 彩票系统
- 端口扫描课程设计详细的报告
- 步进电机课程设计(个人设计)
- 校园网络规划与设计课程设计
- 编译原理课程设计:词法语法编译器
- 操作系统 LRU算法 实验报告 及 程序代
-
simuli
nk 课程设计 qpsk - 武汉理工大学 单片机课程设计 16*16点
- [免费]车载CE6.0操作系统
- 数据库VFP课程设计
- GUI银行管理系统
- 分页系统模拟实验 操作系统 课程设
- 模拟段页式虚拟存储管理中地址转换
- 硬件课程设计—流水灯(quartus软件
评论
共有 条评论