基于JavaGUI实现的操作系统课程设计(实现Linux2.6进程管理与内存管理) 课程报告+任务书+实验报告+源码

目录

摘要

一、实践目的与意义

二、实践任务与合作

三、程序结构说明

四、裸机硬件仿真设计

(一)CPU设计

(二)内存设计

(三)硬盘设计

(四)地址线数据线

五、通用数据结构设计

(一)页表设计

(二)PCB设计

(三)JCB设计

(四)系统全局变量

六、模块设计说明

(一)作业管理

(二)进程管理

(三)页面管理

(四)调度算法

(五)界面模块

七、参考文献

附件1:程序文件及结构说明

附件2:类图说明

可视化仿真实现Linux2.6进程管理与内存管理

摘要

为了检验自己的操作系统课程的学习情况与掌握程度,以及将该课程知识用编程语言描述的技能,本次小组选择“可视化仿真实现Linux2.6进程管理与内存管理”的题目进行操作系统课程设计。该课程设计对于理解操作系统中进程管理与内存管理的知识有着重要作用,同时,管理手段采用Linux2.6内核的规则,可借此机会检验自己的编程水平与Linux核心代码的阅读水平。

系统模拟仿真了Linux2.6系统,并实现了作业及进程并发环境、MMU 地址变换、进程原语、页表生成与页面调度算法、三级作业调度过程及算法(需作业调度到指令集,至少实现三态转换)、页面分配与回收算法、进程同步互斥、进程死锁检测与撤销算法,并将实现原理过程通过可视化方式呈现。

按照计算机理论,在程序框架上,将系统分为硬件、驱动程序、系统管理模块、UI界面四个模块。

在硬件层面,系统根据题目需要,设计了CPU、内存、外存(硬盘)、地址线数据线四个硬件,CPU中还包含计时器与MMU。CPU负责进程指令的执行与数据的传递,计时器负责发出中断与系统时间的计算,MMU负责系统中地址的变换。内存与外存是系统中的存储设备,所有作业、进程以及页面的管理都以这两个硬件为基础进行设计。

系统管理模块分为作业管理、进程管理与页面管理。作业管理模块是基于CPU与硬盘硬件的系统模块之一。该模块的功能是为作业的创建、存入、删除以及作业的调入检测提供相关的支持。作业管理模块在java工程中写在JobModule.java文件中,同时该类被Control.java调用。

进程管理模块是基于CPU与内存的系统模块之一。该模块的功能是为作业调入后转换成的进程提供管理功能。进程管理是整个系统设计中最为复杂的部分,其包括低级调度管理、中级调度管理、高级调度管理、进程链表等功能。进程管理模块在java工程中写在ProcessModule.java文件中,同时该类被Control.java调用。

页面管理是负责系统中对于页面存入、读取、对换、换入换出功能的管理模块。在页面管理中,该模块与其他模块的信息交换全部都通过Page类来进行。当有页面换入、换出请求发出时,该模块先将页面信息写入Page类的对象,再将该对象传出,当其他模块收到该对象时,也可以对该对象进行操作,以减少操作的复杂度。页面管理模块在java工程中写在PageModule.java文件中,同时该类被Control.java调用。

系统的UI界面为java程序直接提供给用户进行操作的界面,通过该界面,用户可以方便快捷的使用所有系统功能并知晓系统所有功能模块以及硬件设备的实时信息。

综上所述,该系统很好地实现了课程设计的所有要求,同时,还提供生动形象的UI界面,方便用户进行操作管理。


可视化仿真实现Linux2.6进程管理与内存管理

一、实践目的与意义

为了检验自己一学期的操作系统课程的学习情况与掌握程度,以及将该课程知识用编程语言描述的技能,所以本次选择“可视化仿真实现Linux2.6进程管理与内存管理”的题目进行操作系统课程设计。

该课程设计对于理解操作系统中进程管理与内存管理的知识有着重要作用,同时,管理手段采用Linux2.6内核的规则,可借此机会检验自己的编程水平与Linux核心代码的阅读水平。

二、实践任务与合作

根据Linux2.6 进程管理与内存管理原理,仿真实现作业及进程并发环境、MMU 地址变换、进程原语、页表生成与页面调度算法、三级作业调度过程及算法(需作业调度到指令集,至少实现三态转换)、页面分配与回收算法、进程同步互斥、进程死锁检测与撤销算法,并将实现原理过程通过可视化方式呈现。

为了实现以上任务目标,我们进行了如下分工:

组长(陈扬):

系统整体框架的构思与搭建

程序设计规范的撰写

三级调度过程及算法

JCB、PCB的设计

死锁检测与撤销算法

页表生成

可视化方式呈现过程

进程同步互斥的实现

进程与进程原语的设计实现

组员(梁嘉文):

CPU部件的仿真

内存空间的仿真实现

MMU地址变换

页面设计实现

页面调度算法

页面分配与回收算法

可视化方式呈现过程

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于Java面向对象程序设计课程报告 .word教育资料基于Java语言的简易坦克大战游戏设计课程报告摘 要:    本课程设计使用Java语言开发了一个简单坦克大战小游戏,主要采用面向对象程序设计 思想来完成程序的需求分析,概念及逻辑设计,系统的详细实现等过程。    游戏主要实现了游戏场景的构造,坦克及子弹类的初始化,敌我坦克对战,游戏存盘及 读档等功能。关键词:    Java;    面向对象;    敌我坦克对战;    引言坦克大战是一个经典的单机对战游戏,其在青少年中非常流行,目前游戏开发商对 其不断改进,已从简单的单机手游扩充为大型的网络对战游戏,但其基于面向对象程序 设计思想仍未变。本设计是为检验面向对象程序设计课程的知识运用而进行的实践,其 主要目的是采用面向对象的思想,独立完成程序的各个过程,并在实践中应用学到的关 于Java类与对象,接口,包,异常处理,多线程,事件处理及各类流的处理等知识。1. 系统分析1.1系统可行性分析 在技术上,本系统的坦克大战是基于Java语言设计,并在Eclipse软件上具体实现的。J ava语言是一种跨平台,适合于分布式计算环境的面向对象编程语言,具有简洁,安全, 面向对象,动态,体系结构中立,可移植,高性能,多线程,解释执行,分布式等特性 。Java现在主要用在WEB开发,手机游戏及一些平台游戏的开发,因为其具有良好的跨平 台性,在各类电子产品上应用非常广泛。本系统使用Swing,GUI,Socket,面向对象设 计等技术实现,这些技术已非常成熟,广泛应用于各类程序开发,故现在使用这些技术 是可行的。在实用性上,坦克大战为一款经典射击游戏,其前身为1985年日本游戏公司 在任天堂FC(FamilyComputer)平台上开发的红白单机游戏,游戏以坦克战斗及保卫基 地为主题,凭借流畅的游戏体验,不错的游戏视觉效果风靡全世界。直到今天,仍有游 戏商家以其为模型开发出3D网络对战版坦克大战,可见其具有广大的市场效益。本系统 运用Java跨平台编程语言,在PC上重新实现这一经典游戏,探究其设计思路与实现方法 ,并且设计了关卡模式,新增了游戏存盘,读档功能,使游戏玩法更加丰富。因此,本 系统具有一定的实用性。1.2系统需求分析 凭着由于系统为简易的单机对战射击游戏故游戏必须具有以下功能:    1) 有图形游戏界面,使用户看得到游戏给出的反馈。2) 有人机交互功能,用户可以操作指定的游戏元素。3) 坦克可以上下左右四个方向任意行走,且不可超出游戏设定边界。4) 敌方坦克必须明显区别于我方坦克,且可以随机移动,随机打出炮弹。5) 我方坦克可在控制下四个方向任意移动,且可按不同速率发射炮弹。6) 敌方坦克之间不能重叠,我方坦克与敌方坦克也不能重叠。7) 炮弹与坦克的碰撞检测,且炮弹超出边界的检测。8) 加入声音,图片等资源,使游戏具有良好体验性。9) 菜单栏选项,可以选择新游戏,退出游戏,存档游戏,读取游戏,并可以查看帮助信息 。2.系统概要设计2.1 系统结构设计坦克大战游戏主要实现玩家参加游戏的整个过程,用户打开游戏,将出现 游戏初始界面,用户可点击菜单栏选择游戏模式和帮助文档。若玩家选择游戏菜单,将 出现四个选项:    新游戏(N)、退出游戏(E)、存盘退出(C)和继续游戏(S),选择新游戏则玩家开始游戏, 选择存盘退出将保存游戏记录并退出,选择继续游戏则读取保存记录玩家继续上次游戏 。    帮助菜单将帮助玩家了解游戏的相关操作。整个游戏流程如图1所示:    是否判断胜负负程序开始初始化游戏帮助新游戏-省略部分- 题,通过持续的努力,也学习到了很多知识,例如在设计坦克在行进中正确发射炮弹的 问题,开始时自己设计的坦克发射的炮弹总是方向不正确,或是在发出后落在行驶的坦 克后面;    还有就是坦克的碰撞检测,如何解决坦克相互的"穿越"问题。这些问题,我通过在网上 查资料,然后自己修改程序代码,然后一次次的调试,最终这些问题都得到了解决。坦 克大战游戏虽然已设计完毕,但程序只具备了一些基本的功能,程序仍很简陋,游戏还 有很大改进空间,如可在游戏界面中加入"墙壁"、"河流"等障碍物,多添加一些游戏关 卡,设置游戏的难度等级等等。    这些都需要我在以后的学习中不断完善。参考文献[1] 刘秀芳,刘仲鹏. 基于ASP.NET的商品交易网站设计与实现[J].黑龙江科技信息,XXXX年来所有关心帮助过 我的各位授课老师表示由衷的敬意和感谢,感谢四年来给予我很多关心和帮助的同学们 ,我衷心的祝福我的朋友们以后的人生道路越来越宽广。word教育资料 达到当天最大量API KEY 超过次数限制 ----------------------- 基于Java面向对象程序设计课程报告全文共4页,当

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小马软件开发定制

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值