设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>理工论文 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
Java仿真操作系统要求说明
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  


目 录

1.实践基础要求 1

1.1 裸机硬件仿真设计的基础要求 1

(1)基础硬件部件 1

(2)CPU 与寄存器的仿真设计 1

(3)系统时钟中断仿真 1

(4)作业请求的中断仿真 1

(5)进程调度的中断仿真 1

(6) 输入/输出中断事件仿真 2

(7) 缺页中断事件仿真 2

(8) 用户区内存 2

(9) 内存缓冲区 2

(10) 硬盘交换区仿真 2

1.2 并发作业请求文件(jobs-input.txt)的设计 3

1.3 用户程序指令文件的设计 4

1.4 作业运行及调度详细记录的文件保存 5

1.6 进程控制块 PCB 设计 8

1.7 系统 PCB 表的设计 8

1.8 仿真实现进程控制原语 8

1.9 其他 9

课程设计选题 9

2.1 选题 1:仿真实现作业管理与虚页存储管理(难度系数=4) 9

1



1.实践基础要求

以计算机操作系统原理为指导,利用面向对象程序设计技术仿真 OS 内核的作业管理、连续内存管理、页式虚存管理、进程同步与互斥、Spooling 系统的 API 功能,可视化显示操作系统的工作过程。

1.1 裸机硬件仿真设计的基础要求

(1)基础硬件部件

CPU、内存、时钟中断、输入输出设备中断、地址变换机构(MMU)、外存缓冲区;

◆ 扩展硬件部件:缺页中断;

(2) CPU 与寄存器的仿真设计

◆ CPU 可抽象为一个类,名称:CPU2023。

◆ 关键寄存器可抽象为类的属性,至少包括:程序计数器(PC)、指令寄存器(IR)、  状态寄存器(PSW)等,寄存器内容的表示方式自行设计,需要在实践报告中说明。

需要实现 CPU 现场保护、现场恢复操作,封装为 CPU 类的方法,供进程切换、CPU 模式切换方法调用。

方法函数的名称须统一,入口出口参数自行定义:

◆ CPU-PRO():CPU 现场保护函数;

◆ CPU-REC():CPU 现场恢复函数;

(3)系统时钟中断仿真

计算机系统使用统一时钟计时;

◆ 设计一个时钟线程类,名称:Clock_thread

◆ 该类中设计一个共享属性变量,名称:COUNTTIME,整型,单位:秒(s)  每 1 秒激活该线程计时,COUNTTIME+1 操作。

(4)作业请求的中断仿真

假设计算机每 10 秒(s)查询一次外部是否有新作业的执行请求,在“并发作业请求文件” 中判读是否有新进程请求运行。

◆ 设计一个作业请求查询线程类,名称:JobIn_thread;

◆ 作业请求判读函数,名称:CheckJob():

功能:每 10 秒激活该线程,利用 COUNTTIME 变量判断“并发作业请求文件”是否有新进程请求;如果有,进入后备队列;如果没有,空操作;

(5)进程调度的中断仿真

假设计算机 CPU 在 1 秒(s)发生一次时钟硬件中断;可以执行 1 条指令。

假设进程调度的基础算法均为时间轮转法,在此基础上可以叠加静态或者动态特点,或  者叠加静态或者动态优先权法;或者叠加多级反馈调度算法;

◆ 初始静态时间片大小:Times=3 秒

◆ 设计一个进程调度算法线程类,名称:ProcessScheduling_thread

线程激活时长:1 秒,也就是 1 秒发生一次调度中断信号,每次 Times-1;

◆ 调度时间函数,名称:CheckSchedulingTime():

功能:以初始静态时间片大小为基础单元,根据选题设计具体对时间片大小 Times

1


重新赋值,当 Times=0 时发生进程调度;

◆ 进程调度函数,名称:ProcessScheduling(): 功能:根据所选题目的调度算法实现调度;

(6)输入/输出中断事件仿真

仿真 I/O 中断。分别设计两个线程

◆ InputBlock_thread 类:阻塞队列的唤醒线程。外设输入变量造成进程进入阻塞态,如键盘给变量赋值;

◆ OutputBlock_thread 类:阻塞队列的唤醒线程。外设输出变量造成进程进入阻塞态, 如显示器显示;

(7)缺页中断事件仿真

设计一个线程发出缺页中断,并实现页淘汰算法,页装入操作,完成以后唤醒缺页阻塞  队列中的进程重新进入就绪队列;

◆ 线程类名:PageInterruption-thread 类,一直处于侦听状态,收到缺页请求时被激活;

◆ 页装入操作函数,名称:PageIn()

◆ 页淘汰函数,名称:PageOut( )

(8)用户区内存

假设不考虑 OS 内核所占内存空间

◆ 用户区共 16KB,每个物理块大小 1024B,共 16 个物理块;

◆ 采用页式存储管理。将每个物理块假设为 1 页帧,共 16 页

◆ 逻辑地址(物理地址)共 14 位二进制表示,其中 4 位表示页号,10 位表示页内地址;

◆ 测试数据用十进制表示逻辑地址;

◆ 采用固定分配与局部替换策略,每个用户进程分配内存大小为 4 页(块);用户进程最高并发度为 4;

◆ 地址变换过程(MMU)需要在界面上显示并详细记录过程保存到 ProcessResults-???

-算法名称代号.txt 文件中。???表示数字,为每次运行完成所有进程的总分钟数。例如: 测试输入数据是 input1 中的数据文件,用 LZ(时间片轮转)算法完成机器调度所有作业, 总运行分钟数是 166 秒,保存进程运行输入输出以及调度过程中状态变化、统计数据等所有信息,保存到 ProcessResults-166-LZ.txt 文件,保存到 output1 子文件夹。

(9)内存缓冲区

◆ 内存缓冲区共 4KB,单缓冲,每个物理块大小 1024B,共 4 个物理块;

◆ 所有进程共享,进程通信过程中可能会出现死锁;

(10)硬盘交换区仿真

◆ 选题 1 使用,选题 2 不使用;

◆ 磁盘交换区共 16KB,每个物理块大小 1024B,共 16 个物理块;

◆ 磁盘交换区,每个进程的交换区用文件夹仿真,用“DiskExchangeArea_进程 ID”命

名;

◆ 每个用户进程创建以后分配 4 页(块)磁盘交换区,保存该进程运行时临时变量或函

数返回值的数据;

◆ 每个物理块对应一个文件,物理地址为文件名称;


◆ 每个文件是文本文件,保存物理块内容;

1.2 并发作业请求文件(jobs-input.txt)的设计

◆ 每个作业相当于用户提交给操作系统运行的可执行程序。本实验考虑作业调度、内存  分配回收,进程管理等功能;

◆ 创建 input 子文件夹,保存 jobs-input.txt 以及用户程序指令文件。本次实验有两组测试输入数据,分别放在 input1、input2 子文件中。

input1 子文件:选题 1 的同学使用;

◆ jobs-input.txt 文件格式固定,统一提供,初始 5 个作业。一行代表一个作业请求,学生测试程序时可以增加新作业条目;

◆ jobs-input.txt 文件内容: 作业序号(JobsID)

作业优先级(Priority) 作业请求时间(InTimes)

作业包含的程序指令数目(InstrucNum)

◆ 仿真程序开始运行时,开始按秒计时(不要用系统时间,用自己的计时器计时)。将jobs-input.txt 文件一次性读入一个临时数组。JobInput_thread 类每 10 秒(s)查询临时数组, 根据当前计时器时间,通过判断与作业请求时间(InTimes)(单位为秒)中请求时间的匹配程度,判断该时刻是否有作业请求。如果有,加入作业后备队列,并根据作业编号找到该作业程序指令文件(与 jobs-input.txt 文件在同一目录),并将其内容保存到相应数据结构中。

◆ 在界面上需要设计一个作业实时请求接收按钮,随时接收该时刻产生的新作业并加入  到作业后备队列;

◆ jobs-input.txt 文件举例:

3


1.3 用户程序指令文件的设计

◆ 用户程序指令文件是每个作业要执行的被编译以后的程序指令集合。每个作业的指令类型由本文档给出。

(1)作业程序的结构

作业程序包括 6 类,有语句和函数类型,统一保存在 input1 和 input2 子文件夹中。每个用户程序指令文件名用“作业序号(JobsID)”来命名。具体包括:

指令段编号(Instruc_ID)

用户程序指令的类型(Instruc_State)

用户程序指令访问的逻辑地址(L_Address)

(2)用户程序指令的类型(Instruc_State)

★本试验假设 CPU 执行用户态每段指令,在执行一段机器指令时不可以中断。

★指令段编号(Instruc_ID):作业创建进程以后,进程所执行用户程序段指令序号, 从 1 开始计数。

★根据 Instruc_State 类型,每条指令运行或者唤醒时间(InRunTimes)有确定值,不需要输入;

★用户程序指令的类型(Instruc_State)包括:

0 表示用户态计算操作语句。执行该指令需要运行时间 InRunTimes=1s。

1 表示用户态计算操作函数。执行该指令进程转向执行函数指令,需要 InRunTimes=2s。

表示键盘输入变量语句。发生系统调用,CPU 进行模式切换,运行进程进入阻塞态; 值守的键盘操作输入模块接收到输入变量或输出变量内容,InRunTimes=2s 后完成输入,产生硬件终端信息号,阻塞队列 1 的队头节点出队,进入就绪队列;InputBlock_thread 类在 2s 以后自动唤醒该进程;

屏幕输出显示语句。发生系统调用,CPU 进行模式切换,运行进程进入阻塞态;值守的屏幕显示模块输出变量内容,InRunTimes=2s 后完成显示,产生硬件终端信息号,阻塞队列 2 的队头节点出队,进入就绪队列;OutputBlock_thread 类在 2s 以后自动唤醒该进程;

4 打印操作语句。假设 InRunTimes=1s 以后拷贝打印数据到内存缓冲区,Spooling 系统完成打印任务。发出打印请求的用户作业,在打印数据拷贝到内存缓冲区以后,阻塞队列队

3 头节点出队,进入就绪队列;

5 磁盘文件读操作函数。发生进程调度, 进程进入阻塞态; 同时关中断, 假设

InRunTimes=2s 以后读完文件内容到内存缓冲区,操作系统的读文件模块负责将缓冲区数据拷贝到用户进程 PCB 区域,产生唤醒信号,阻塞队列队 4 的头节点出队,进程进入就绪队列;

6 磁盘文件写操作函数。进程进入阻塞态;同时关中断,假设 InRunTimes=2s 以后写文件数据到内存缓冲区,操作系统的写文件模块负责将缓冲区数据写入磁盘物理块,产生进程   唤醒信号,阻塞队列队 5 的头节点出队,进程进入就绪队列;

(3)用户程序指令访问的逻辑地址(L_Address)

由 input1 子文件、input2 子文件分别给出。用十进制表示。需要设计 MMU 类实现逻辑地址转换为物理地址。

L_Address 表示每个用户进程所访问的逻辑地址,需要计算页号和页内偏移。

MMU 类中需要包含名为 PageTableCreate( )函数,函数入口参数自行定义,实现页表生

成。

★如果按界面上实时作业请求按钮:可以随机在已产生的指令文件中选择一个重新执

行。


举例:

选题 1:input1 文件夹中 1 号作业的程序段指令保存在 1.txt 文件中。2 号、3 号用户作业指令段保存在 2.txt、3.txt 文件中.文件第一行为代号。

1.txt 文件内容如下:

1.4 作业运行及调度详细记录的文件保存

◆ 作业和进程调度模块用单独的线程或计时器实现。需要重点注意的是:不是每次发生时钟中断都要进行进程调度。

◆ 时间片计算:进程调度最小时间片 3s。

◆ 进程调度算法:必须完成的调度算法为静态优先数调度算法(代号 JTYX)。扩展算法在选题要求中给出。

◆ 优先数越小,优先级越高。

◆ 程序要求界面可视化显示作业请求与进程调度过程。同时将调度过程以文件形式保  存。界面显示和文件保存的信息要清晰、完整、可读;

◆ 作业调度、进程调度运行完成以后,运行记录保存到 ProcessResults-???-算法名称代号.txt 文件。???表示数字,为每次运行完成所有进程的总分钟数。例如:测试输入数据是 input1 中的数据文件,用 JTYX(静态优先数调度)算法完成机器调度所有作业,总运行分钟数是 166 秒,保存进程运行输入输出以及调度过程中状态变化、统计数据等所有信息, 保存到 ProcessResults-166-JTYX.txt 文件,该保存到 output1 子文件夹。

保存内容至少包括:进程 ID、作业到达时间、作业运行时间、作业结束时间、作业中每条指令 ID、指令内容、指令状态转换的时间、CPU 寄存器变化情况、进程 PCB 信息等状态变化信息以及进程调度的周转时间等评价类数据。本次实验与 input1、input2 子文件测试数据对应的输出文件夹分别保存 output1、output2。该文件设计需要强调可读性与可分析性。

◆ ProcessResults-???-算法名称代号.txt 文件内容的格式如下:

(1)输出包括 4 段信息,分别为:进程调度事件:内存缓冲区处理事件;井操作事件; 状态统计信息。其中,进程调度事件、状态统计信息是必须的,其他两类事件的记录需要根

5


据选题及申请成绩等级来完成。

(2)进程调度事件信息段的输出信息,每行有时间信息,按照时间顺序,记录发生进程调度事件、进程就绪队列、进程阻塞队列等的状态。

(3)每段输出信息的关键信息加半角中括号[]。批改时会对所有带有中括号的内容进行提取,不加中括号都视为无效信息。

每一行信息的具体格式如下:时间:[关键操作或状态名称:作业或进程信息,]    输出信息格式如下:

作业/进程调度事件:

0:[新增作业:作业编号,请求时间,指令数量]

1:[创建进程:进程 ID,PCB 内存块始地址,内存分配方式]

2:[进入就绪队列:进程 ID:待执行的指令数]

3:[运行进程:进程 ID:指令段编号,指令类型编号,逻辑地址, ]

4:[运行进程:进程 ID:指令段编号,指令类型编号,逻辑地址, ]

5:[运行进程:进程 ID:指令段编号,指令类型编号,逻辑地址, ]

6:[阻塞进程:阻塞队列编号,进程 ID]

7:[缺页中断:进程 ID:PageOut 页号,PageIn 页号]

8:[重新进入就绪队列:进程 ID,待执行的指令数]

9:[阻塞进程:阻塞队列编号,进程 ID]

10:[CPU 空闲]

11:[终止进程 ID]

缓冲区处理事件:

3:[P 操作/V 操作/拷贝入缓冲区/拷贝出缓冲区,4 个动作选择之一]

4:[入缓冲区:进程 ID:指令段编号,磁盘文件读操作:逻辑地址,物理地址,缓冲区地址,交换区物理块地址]

5:[入缓冲区:进程 ID:指令段编号,磁盘文件读操作:逻辑地址,物理地址,缓冲区地址,交换区物理块地址]

6:[P 操作/V 操作/拷贝入缓冲区/拷贝出缓冲区]说明:4 个动作选择之一显示并记录

7:[P 操作/V 操作/拷贝入缓冲区/拷贝出缓冲区]说明:4 个动作选择之一显示并记录

8:[入缓冲区:进程 ID:指令段编号,磁盘文件读操作:逻辑地址,物理地址,缓冲区地址,交换区物理块地址]

9:[P 操作/V 操作/拷贝入缓冲区/拷贝出缓冲区]说明:4 个动作选择之一显示并记录

10:[缓冲区无进程]

结束时间:[进程 ID:作业请求时间+进入时间+总运行时间]

结束时间:[进程                ID:作业请求时间+进入时间+总运行时间] BB1:[阻塞队列 1,键盘输入:进入时间,进程 ID/进入时间,进程 ID/进入时间,进程 ID]


BB2:[阻塞队列 2,屏幕显示:进入时间,进程 ID/进入时间,进程 ID/进入时间,进程 ID] BB3:[阻塞队列 3,打印任务:进入时间,进程 ID/进入时间,进程 ID/进入时间,进程 ID] BB4:[阻塞队列 4,磁盘读文件:进入时间,进程 ID /进入时间,进程 ID/进入时间,进程 ID] BB5:[阻塞队列 5,磁盘写文件:进入时间,进程 ID/进入时间,进程 ID/进入时间,进程 ID]

PPPP:[PageInterruption:进入时间,进程 ID/进入时间,进程 ID/进入时间,进程 ID]

说明:

在“作业/进程调度事件”中,f 符号均为半角西文态符号:

时间:每秒记录一条信息,两条记录的时间可以相同,表示并发操作;

关键操作或状态:包括新增作业、创建进程、第一次进入就绪队列、重新进入就绪队列  阻塞队列、缺页中断、重新进入就绪队列、运行进程、CPU 空闲、终止进程等,输出时请写汉字信息;

记录事件的多少及时间根据选题确定;

作业或进程信息:包括进程 ID,指令编号,指令类型编号等,具体信息见下面的例子, 信息用逗号隔开;

在“状态统计信息”中:当每个进程指令全部执行完成以后计算保存。每一行统计一个  进程信息;

结束时间:指进程运行结束后的时间;

案例:只考虑进程调度事件、状态统计信息截图

7


1.6 进程控制块 PCB 设计

下面是进程相关 PCB 内容,本次课设需要补充与逻辑地址、物理地址、外存物理块相关信息。参照 Linux task_struct 的数据结构内容设计;

进程编号(ProID);值分别为 1,2,3,4,5,6,。。进程优先数(Priority);

进程创建时间(InTimes); 进程结束时间(EndTimes); 进程状态(PSW);

进程运行时间列表(RunTimes); 进程周转时间统计(TurnTimes);

进程包含的指令数目(InstrucNum); 程序计数器信息(PC);

指令寄存器信息(IR);

在就绪队列信息列表(包括:位置编号(RqNum)、进入就绪队列时间(RqTimes));  阻塞队列信息列表 1(包括:位置编号(BqNum1)、进程进入键盘输入阻塞队列时间

( BqTimes1));

阻塞队列信息列表 2(包括:位置编号(BqNum2)、进程进入显示器输出阻塞队列时间

( BqTimes2));

说明:

★系统请求运行的并发进程个数最小值为 5,可以自行设计最大值。

★进程编号(ProID):整数

★进程优先数(Priority):随机生成[1-5]整数优先数,优先数越小,优先级越大;

★进程创建时间(InTimes):由仿真时钟开始计时,整数,假设每条指令执行时间 1s;

★进程结束时间(EndTimes):显示仿真时钟的时间,整数;

★进程运行时间列表(RunTime):统计记录进程开始运行时间、时长,时间由仿真时钟提供;

★进程包含的指令数目(InstrucNum):可自行扩展;

★PSW:保存该进程当前状态:运行、就绪、阻塞;

★指令寄存器信息(IR):正在执行的指令编号;

★程序计数器信息(PC);下一条将执行的指令编号;

1.7 系统 PCB 表的设计

需要设计系统空白 PCB 表,假设系统最大 4个进程并发,可用数组、链表、队列实现。

1.8 仿真实现进程控制原语

按照教材步骤仿真实现原语函数,可以作为 PCB 类的方法,包括: 进程创建:考虑内存分配与回收。

进程撤销:执行完成的进程调用撤销函数;

进程阻塞;I/O 操作产生,可以不考虑对内存缓冲区的 PV 操作


1.9 其他

◆ 课程设计采用的语言为 JAVA ,需要开发环境下运行以及脱离开发环境独立测试运行

2 课程设计选题

2.1 选题 1:仿真实现作业管理与虚页存储管理(难度系数=4)

◆ 及格要求:完成实验基础要求。利用 5 个线程实现进程并发以及输入输出。多任务作业并发环境下,实现页表生成、MMU 地址变换、进程原语、作业调度算法、静态优先级进程调度算法,页面分配与回收算法。

◆ 良好要求:完成及格要求的前题下,实现缺页中断、外存交换区管理、页表再生成与  页面替换 LRU 算法;将内存分配过程、进程调度过程等通过可视化方式呈现。

9


4)保存课设程序被编译为RunProcess.exe 可执行文件;保存一份“材料阅读使用顺序说明文档”

(3) input1子文件夹:保存作业进程请求文件,使用 input1 子

文件夹测试输入数据;每个子文件夹包括jobs-input.txt、用户程序指令文件(如 1. txt 或 2.txt 等),

(4) output1子文件夹:分别对应 input1子文件夹输入作业的ProcessResults-???-算法名称代号.txt 文件。

(5) code 子文件夹:工程文件、源程序等,要求公共变量、函数、函数输入输出变量有详细的注释,




6 课程设计实践报告内容与要求

注意:逻辑结构合理,层次分明,论述清楚,不要放程序代码,核心算法与关键环节处理   用伪码描述。对每个测试结果需要分析说明。

正文:宋体 5 号字,图表需要有编号和名称

封皮(统一格式可下载) 目录

摘要(单独一页,500 字以上,包括目的、完成功能、总结核心设计实现技术、测试结果总结等,需要具体化)

关键词(不超过 5 个,与摘要在一页)

1 实践内容与目标

包括:1.1 实践内容、1.2 实践目标(分条目论述完成了任务、实现函数、模块功能)

2 系统功能与 API 函数说明

包括:描述所设计的系统功能说明,所对应的 API 函数名称; API 函数需要说明函数输入、输出变量说明及调用方法

3 硬件仿真设计

分小标题论述,包括:计算机各硬件部件的仿真设计,要有具体的大小和仿真方法等

4 数据结构与基础操作的抽象与实现

分小标题论述,包括:作业控制块及程序指令集设计、与硬件映射的数据结构设计、OS   原语与核心操作,采用示意图与伪码相结合的方式,不能直接拷贝代码等,注意写清楚自己   有特色的关键处理;

5 程序整体结构及模块功能的实现

分小标题论述,包括;整个软件系统的结构说明,采用示意图、流程图与伪码相结合的  方式说明,不能直接拷贝代码。注意写清楚自己有特色的关键处理;

6 技术问题及解决方案(重点)

分小标题论述,要有具体技术问题描述,发生场景描述,最好配合现场图片;给出具体  解决方案和结果测试截图证据等

7

附件 1:程序文件及结构说明附件 2:类图和顺序图说明

附件 3:带注释的部分核心代码(只需要5 页)

13


  全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
  下一篇文章:模型机硬连线控制器设计
本类最新文章
选择榨汁机的诚实指南 通用回归神经网络在声呐目标分类中 工艺规程制订与并行工程
储油罐的变位识别与罐容表标定 DVD租赁优化方案 车灯线光源的优化设计方案
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!