可视化仿真实现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、系统仿真、进程管理、内存管理、JAVA编程
可视化仿真实现Linux2.6进程管理与内存管理
一、实践目的与意义
为了检验自己一学期的操作系统课程的学习情况与掌握程度,以及将该课程知识用编程语言描述的技能,所以本次选择“可视化仿真实现Linux2.6进程管理与内存管理”的题目进行操作系统课程设计。
该课程设计对于理解操作系统中进程管理与内存管理的知识有着重要作用,同时,管理手段采用Linux2.6内核的规则,可借此机会检验自己的编程水平与Linux核心代码的阅读水平。
二、实践任务与合作
根据Linux2.6 进程管理与内存管理原理,仿真实现作业及进程并发环境、MMU 地址变换、进程原语、页表生成与页面调度算法、三级作业调度过程及算法(需作业调度到指令集,至少实现三态转换)、页面分配与回收算法、进程同步互斥、进程死锁检测与撤销算法,并将实现原理过程通过可视化方式呈现。
为了实现以上任务目标,我们进行了如下分工:
组长(陈扬):
系统整体框架的构思与搭建
程序设计规范的撰写
三级调度过程及算法
JCB、PCB的设计
死锁检测与撤销算法
页表生成
可视化方式呈现过程
进程同步互斥的实现
进程与进程原语的设计实现
组员(梁嘉文):
CPU部件的仿真
内存空间的仿真实现
MMU地址变换
页面设计实现
页面调度算法
页面分配与回收算法
可视化方式呈现过程