基于JavaGUI实现的操作系统课程设计(实现Linux2.6进程管理与内存管理)

目录
摘要 1
一、实践目的与意义 2
二、实践任务与合作 2
三、程序结构说明 2
四、裸机硬件仿真设计 3
(一)CPU设计 3
(二)内存设计 3
(三)硬盘设计 4
(四)地址线数据线 4
五、通用数据结构设计 4
(一)页表设计 4
(二)PCB设计 5
(三)JCB设计 5
(四)系统全局变量 6
六、模块设计说明 7
(一)作业管理 7
(二)进程管理 8
(三)页面管理 11
(四)调度算法 13
(五)界面模块 14
七、参考文献 14
附件1:程序文件及结构说明 15
附件2:类图说明 16
三、程序结构说明
本系统的结构设计参考了操作系统课本的设备管理章节,从最底层向上可分为:硬件、硬件驱动、系统管理模块、系统内核、UI界面。同时,由于对于硬件部分的仿真本身就包含了存入、读取的功能,所以将硬件与硬件驱动进行合并。在系统管理模块部分,分为:作业管理、进程管理、页面管理三部分。在系统内核部分,系统提供了系统的全局变量与系统的操作类,用来将其下的三个模块进行整合。再向上,即JAVA所提供的UI交互界面,可以方便用户使用该系统。
程序的总体结构设计如图所示。
在这里插入图片描述

四、裸机硬件仿真设计
(一)CPU设计
CPU硬件中包含计时器与MMU。在程序设计时,需要将两者分开,设计三个类,CPU类“cpu”,计时器类“timer”,MMU硬件类“mmu”。timer与MMU只在cpu类中存有唯一一个实例,即可体现出计时器与MMU包含于CPU的概念。任何对计时器与MMU的调用,都需要通过cpu类中的实例来进行,而不能够直接访问。
CPU类的定义为:
public class CPU
{
public static CPU cpu=new CPU();
public Timer ti;
public MMU mm;
}
CPU的结构及内容:
1、地址寄存器PC
2、PSW程序状态寄存器
3、IR(指令寄存器)
4、页基址寄存器CR3
5、在时间片结束时执行完的指令数量already_run
(二)内存设计
内存大小为32KB,故可根据该要求设计memory类,该类有一个总大小为32KB的对象数组,为short类型,因为系统要求地址线与数据线为16位,所以在该系统的设计时,统一使用short类型数据。需要注意:内存memory类为文件的映射,因此,在该类被实例化之前,其构造函数需要进行从文件到对象的映射,即读取文件内容,并根据文件内容初始化该实例。内存硬件类memory只是简单地对硬件进行模拟仿真,不需要过多复杂的操作,只需要提供两个基本操作即可,即数据的存入与取出。但是,数据的存入与取出都需要通过地址线与数据线。
内存类的定义为:
public class Memory
{
public static Memory memory=new Memory();
private byte []data=new byte[32*1024]; //32KB=32768B
}
内存总大小为32KB,规定:前16KB为内核区,后16KB为用户区
内核区存储的内容:核心栈+系统内核,进程所有PCB信息
综上所述,内存的组成结构为:
核心栈+系统内核(1页)、PCB池(31页)、用户区(32页)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sheziqiong/article/details/130778098