本科毕业设计操作系统进程管理演示系统的设计Word下载.docx
- 文档编号:7754066
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:114
- 大小:1.47MB
本科毕业设计操作系统进程管理演示系统的设计Word下载.docx
《本科毕业设计操作系统进程管理演示系统的设计Word下载.docx》由会员分享,可在线阅读,更多相关《本科毕业设计操作系统进程管理演示系统的设计Word下载.docx(114页珍藏版)》请在冰点文库上搜索。
Operatingsystem;
C#;
cocoscodeide
1引言
1.1课题背景
随着科技的不断进步,人类生活中的各个方面都在走向简单,科技能帮助人类更加轻松的完成想要完成的事情。
这涉及到整个人类社会的各个方面,课堂教学就是其中之一。
现如今的课堂教学相较以前,变得更加“形象”。
随着教学理念的改变,以前传统教学模式中,“知识加工”和“问题解决”的思考过程等不可见的环节已经被改变。
教师们开始利用科技技术与相关设备,引入ppt,视频,flash等手段,将不可见的,枯燥的理论加以转换,变为可视的画面[1]。
让学生从关注问题的“答案”,变为理解“答案的生成过程”。
从而增加教学的质量,减少学生的学习压力。
其中,针对教学内容制作的教学辅助演示系统,更是能帮助老师和学生的一种方法。
1.2国内外研究现状
目前在欧美等发达国家,针对教学内容制作的教学辅助演示系统有很多。
如在计算机方面,化学方面,物理方面等。
老师使用相当普及。
在国内,这种专门针对教学内容的辅助演示系统还不是特别多。
如果能加以推广,会更加方便课堂教学[2]。
1.3本课题研究的意义
在高校教学中常常会遇到许多生涩抽象的课程,这些课程的学习往往让学生难以理解,加大教师的教学难度,这种现象在计算机专业尤为明显。
目前在高校教学中往往采用ppt,视频,flash等手段来增加授课效果,使教学过程更加生动形象,但这些并不能完全满足于日常教学,这在操作系统这门学科中尤为突出。
所以开发一个操作系统进程管理演示系统来辅助操作系统教学是很有必要的。
1.4本课题的研究内容和目标
设计一个针对操作系统学科的操作系统进程管理演示系统,以MicrosoftVisualStudio
2013和cocoscodeide为编译器,采用c#和lua语言来进行编译。
系统由5个模块组成,功能如下:
(1)进程控制模块:
进程的创建(可以分为自动创建、手动创建)、进程的撤销、进程状态的变化、进程间的祖先关系、进程对各类资源的使用情况等。
(2)进程调度模块:
需要实现先来先服务、短作业优先、高响应比调度算法。
(3)进程同步模块:
生产者-消费者问题,哲学家进餐问题。
(4)进程通信模块:
实现共享内存、消息队列和管道通信三种通信方式。
(5)死锁避免模块:
实现银行家算法。
系统的特点要求操作界面清晰美观。
使用者操作起来简单,容易上手。
系统的功能要求实用,不繁琐。
2系统分析
2.1可行性分析
对于可行性分析[4],我从技术、经济、使用和法律4个方面着手。
用最小的代价,最短的时间,确定操作系统进程管理演示系统的目标和规模是否可行,是否能解决问题。
2.1.1技术可行性
本系统选择的编译语言是c#和lua。
因为该系统为可视化的界面系统。
所以用c#和lua来编译会比较简单,适合。
这两种语言均为时下最流行的高级程序设计语言之一。
拥有编译简单,方便,可靠,安全,可移植性,灵活等优点。
所以该系统在技术上是可行的。
2.1.2经济可行性
本系统的开发编译器软件是VisualStudio2013和cocoscodeide。
这两个软件在微软的官方网站能够下载到免费的试用版本。
而编译语言也是开放的。
因此,该系统的开发成本基本为零,投入的只有人力成本和硬件成本。
这两者也基本可以忽略不计。
因为本系统没有了平台的限制,所以系统的独立性很高,与其他的系统相比,前期投入的资金和精力较少,让开发变得简单。
能用较小的成本,达到预期中的要求。
而系统对于运行环境没有要求,不会因为软硬件的限制了增加成本,只需要利用现有的计算机设备即可。
所以该系统在经济上是可行的。
2.1.3操作可行性
本系统在操作难易程度上并不复杂,可以说相当简单。
操作界面简洁明了,附有专门的使用说明,使用者能轻松上手,无需专门训练了解。
所以该系统在使用上是可行的。
2.1.4法律可行性
本系统全部采用的是开源软件,可以在网络上轻松获得认证,不管被用于任何用途都不会出现法律问题。
所以该系统在法律上是可行的。
综上所述,操作系统进程管理演示系统在技术、经济、使用、法律4个方面均为可行。
目标和规模已经明确。
该系统的开发是可行的。
2.2需求分析
在系统的可行性分析阶段,已经证明了系统开发平台和系统本身的可行性。
接下来为了明确系统设计的目标,我将对系统进行需求分析。
2.2.1用户需求
高校教学中常常会遇到许多生涩抽象的课程。
这些课程的学习往往让学生难以理解,加大教师的教学难度,这种现象在计算机专业尤为明显。
目前在高校教学中往往采用ppt,视频,flash等手段来增加授课效果,使教学过程更加生动形象,但这些并不能完全满足于日常教学。
操作系统的实际教学中很难用ppt等来直观可视化地演示进程管理各部分的工作原理。
所以,开发一个操作系统进程管理演示系统,通过可视化教学的方式来辅助操作系统教学是很有必要的。
2.2.2性能需求
(1)实用性:
系统要符合用户制定的需求,功能要符合用户的使用习惯和使用要求。
系统界面要简洁,方便,直观。
(2)可维护性:
使用者对系统的功能可以清晰的了解,并简单的使用该系统。
根据需求,在系统上能轻松的进行维护。
并且在功能的设计上还将考虑系统的可扩展性,根据需求的改变增加功能。
(3)安全性:
制作完成的系统要保证系统运行时所用到的各类信息的使用安全。
防止使用人信息泄露。
(4)可移植性:
系统开发结束后,需要能够在时下主流的所有操作系统所构成的环境中正常使用。
2.2.3功能需求
本系统的设计的目的是方便教师的课堂教学,提高课堂的教学效果。
同时,也可以让学生能更好的理解教学内容,帮助学生建立进程管理部分的整体概念,提高学习效率。
具体来说,本系统将会实现以下目标:
需要实现先来先服务、短作业优先、多级反馈队列、时间片轮转、高响应比调度算法。
利用多线程技术编写生产者-消费者问题,哲学家进餐问题、读者-写者问题。
实现银行家算法,能够计算银行家算法。
2.3系统的主要技术分析
2.3.1Lua语言
1993年,巴西里约热内卢天主教大学的三名教授在多日的努力后创造了一门新的编程语言。
这门语言就是时下最为火热的编程语言之一——Lua语言[5]。
Lua是西班牙语里的单词,意思是美丽的月亮。
这正是创造者们对它的期望,希望它成为一门简单,美妙,有趣不乏味的编程语言。
Lua语言设计者的初衷是制作一门大多数人都能使用的脚本语言,它具有良好的嵌入性,方便切入到其他应用程序中。
所以它的设计原则就是四点:
简单,小巧,具有可移植性、编译快速。
语言的实现是运用ANSIC编写的,是将整个C程序库嵌入到所需要的程序中。
Lua语言发展到今天,已经更新了多个版本,版本一直遵循着开源的传统原则,方便了广大的程序员。
Lua语言在多个领域都有着广泛的应用,例如游戏开发、智能机器人、图像图形的处理等等。
其中以游戏开发是最多的一个。
许多著名的游戏,比如魔兽世界的插件、仙剑奇侠传五、愤怒的小鸟、部落冲突等都是使用Lua语言来进行编写的。
配合着相应的游戏引擎,实现所需要的命令。
Lua是一个轻量级脚本语言,也是一种便于嵌入目标程序的语言。
Lua让C/C++编写的代码调用Lua脚本,同时C/C++函数也能够在Lua脚本中调用。
与C/C++代码的交互性,让Lua在应用程序开发中有着广泛的应用基础。
很多应用程序使用Lua作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。
2.3.2MicrosoftVisualStudio
简介
MicrosoftVisualStudio[6](简称VS)是由美国Microsoft公司开发并发布的整合了多种编译语言的编译器。
MicrosoftVisualStudio是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。
所写的目标代码适用于微软支持的所有平台,包括MicrosoftWindows、WindowsMobile、WindowsCE、.NETFramework。
VisualStudio是时下最流行的基于Windows平台的集成开发环境。
随着版本更新,VS已经拥有了多个版本,最新版本为2015版。
MicrosoftVisualStudio2013是Microsoft公司于2013年发布的MicrosoftVisualStudio版本。
新增了许多功能,如下:
(1)代码信息的指示;
(2)团队工作室(TeamRoom);
(3)身份识别;
(4).NET内存转储分析仪;
(5)敏捷开发项目模板;
(6)Git支持单元测试,也支持单元测试之上的测试;
2.3.3进程调度问题简介
进程调度[7]是进程管理中最基本的功能。
它的功能是创建一个新的进程,当一个进程完成工作后将其停止。
或者当一个进程因为某种事件无法运行时将其停止。
还可以负责进程运行时的状态转换。
例如,当一个正在执行的进程因为某个事件导致无法继续运行,则需要将它的状态转换为阻塞状态;
而当合适的事件出现,导致该进程能够运行时,又将该进程的状态转换为就绪状态。
2.3.4生产者-消费者问题简介
生产者-消费者问题[8](producer-consumer)属于进程同步问题。
它描述的问题是:
现有许多生产者(producer)进程正在生产所需要的产品。
又有许多消费者(consumer)进程,它们会去消费掉生产者生产的产品。
如果生产者进程和消费者进程想要同时进行的话,那么在两者之间就必须设置一个拥有许多缓冲区的缓冲池。
生产者进程会将它生产的产品放入其中一个缓冲区中。
而消费者进程会从这个缓冲区拿走它所需要的产品。
尽管所有的生产者进程和消费者进程都是在执行各自的任务。
但是两者之间也有着相对的联系。
因为如果缓冲区是空的,那么消费者进程是无法从中取得产品的;
同时如果缓冲区满了,那么生产者进程也无法向其中投放产品。
2.3.5哲学家进餐问题简介
哲学家进餐问题问题[9](TheDinningPhilosophersProblem)属于进程同步问题,它的发明者叫做Dijkstra。
现有5个哲学家,他们有着一张圆形桌子,并且均匀的坐在桌子边。
他们的生活就是思考和吃饭。
他们两两之间都有一支筷子,当他们拿起身边的两支筷子时,他们就可以吃饭了。
但是,当有一人吃饭时,这人旁边两位就不能吃饭了,因为他们没有筷子。
吃饭完成后,筷子会放回原处。
2.3.6读者-先写问题简介
读者-先写问题[10](Reader-WriterProblem)是指保证一个Writer进程必须与其他进程互斥地访问共享对象的同步问题。
一个数据文件或者记录,可以被多个进程共享。
我们把只要求读这个文件的进程叫做“Reader进程”,其他进程则称为“Writer”。
允许多个进程同时读一个共享对象,因为读操作不会使数据文件变得混乱。
但是不允许一个Writer进程和其他Reader进程或Writer进程同时访问共享对象,因为这种访问会引起混乱。
2.3.7死锁问题简介
死锁[11](Deadlock)是指当有多个进程同时在运行时,进程之间会进行资源的争夺,呈现分庭对峙的情形。
当发生这种对峙时,如果没有其他的外力对其进行干预,进程们将无法继续运行,程序卡死。
引起死锁的原因:
(1)竞争资源。
系统中拥有多种资源,如打印机,公用队列,运行内存,CPU等。
当进程所需要的资源量超出了系统所提供的资源量,就会引起进程争夺资源,产生死锁。
(2)进程间推进顺序非法。
进程在运行的时需要有正确的请求和释放资源的顺序,当这个顺序不正确的时候,就可能引起资源的不足,从而引发死锁。
2.3.7银行家算法简介
银行家算法[12]是由Dijkstra设计完成的算法。
它的作用是监测资源的数量,从而得出结论是否会产生死锁。
该算法早期的作用是作为银行系统现金贷款的发放的计算,所以因此得名。
算法将进程的数据分为若干类型,分别为:
可利用资源(Available)、最大需求矩阵(Max)、分配矩阵(Allocation)、需求矩阵(Need)。
几者的关系为:
需求矩阵[i,j]=最大需求矩阵[i,j]-可利用资源[i,j][13]
2.4系统开发平台
操作系统:
MicrosoftWindows8中文版;
内存:
8G;
硬盘:
1T;
开发软件:
MicrosoftVisualStudio
2013;
cocoscodeide;
开发语言:
c#、lua;
2.5系统运行环境
系统的运行需要硬件的支持。
为了保证本系统能够流畅的目标硬件上可靠,效率的运行,最好保证该系统运行的环境为如下条件:
WindowsXP/7/8;
1G以上;
20G以上;
编译器:
2008以上版本;
cocoscodeide;
3系统总体设计
3.1系统结构设计
3.1.1系统功能描述
需要实现的功能如下:
可以是实现进程的创建(进程名,申请I/O数量,父进程,执行时间,申请内存大小)、进程的创建队列显示、进程状态的显示(活动就绪,静止就绪,活动阻塞,静止阻塞,执行队列)、进程状态之间的互相转换、进程对各类资源的使用情况等。
需要实现先来先服务算法、短作业优先算法、多级反馈队列算法、时间片轮转算法、高响应比调度算法。
利用Lua语言编写生产者-消费者问题,哲学家进餐问题、读者-写者问题。
将问题制作成相应的可视化动画界面,展示三个问题。
例如:
生产者-消费者问题,分别制作一个生产池,缓冲池,消费池,将进程用产品图片代替,通过图片的增减来体现问题的实质。
用相应的可视化界面展示。
例如:
管道通信,在传递信息时,用水通过管道的动画形式显示信息的传送。
实现银行家算法,通过已知的信息,做到判断是否会产生死锁,如果不会产生死锁,显示资源的分配情况。
3.1.2系统功能模块
本系统的功能模块图,请参见图3.1:
图3.1系统功能模块图
3.2系统各功能模块介绍
本系统分为五个模块,分别是进程控制模块,进程调度模块,进程同步模块,进程通信模块,死锁避免模块。
各模块功能服务介绍如下:
(1)进程控制模块
进程控制模块主要是为了让学生知道进程的活动就绪,静止就绪,活动阻塞,静止阻塞,执行队列等几种状态。
实现几种状态间的转换。
①实现进程的创建,进程的内容包括进程名,申请I/O数量,父进程,执行时间,申请内存大小等
②创建的进程会在数据表中显示出来。
③进程处于的活动就绪,静止就绪,活动阻塞,静止阻塞,执行队列状态会显示。
④进程状态之间能根据服务的方式而相应的转换。
进能够显示进程占有资源占总资源的百分比。
(2)进程调度模块
进程调度模块,是为了让学生知道几种调度算法的计算方式。
实现先来先服务算法、短作业优先算法、多级反馈队列算法、时间片轮转算法、高响应比调度算法。
针对相应算法,能够通过进程的到达时间和服务时间计算进程的工作顺序、周转时间、完成时间、代权周转时间。
(3)进程同步模块
根据生产者-消费者问题,哲学家进餐问题、读者-写者问题三个问题的具体概念,设计相应的情景,将问题制作成相应的可视化动画界面,展示三个问题。
1生产者-消费者问题,分别制作一个生产区,缓冲区,消费区,将进程用产品图片代替,通过图片的增减来体现问题的实质。
②设计一张桌子,桌子周围均匀坐有5个哲学家,他们两两之间有一支筷子,当有一个哲学家进餐时将会使用身旁的两支筷子,而邻座的两个哲学家将不能进餐,即不能使用筷子。
(4)进程通信模块
进程通信模块是为了让学生了解进程间的通信方式,通过将三种典型的通信方式简化,变为简单的文字传递形式。
进程通信的三种方式:
共享内存、消息队列和管道通信。
用相应的可视化界面展示,能够简单是说明三者的不同通信方式。
①管道通信,在传递信息时,用水通过管道的动画形式显示信息的传送。
②共享内存,设计一个发送池,共享池和接收池。
发送池发送信息,会出现在共享池中,接收池会从共享池中接收信息。
当共享池为空时,接收池无法接收信息。
(5)死锁避免模块
银行家算法是为了避免系统进程发生死锁
实现银行家算法的计算。
通过已知的信息,做到计算进程顺序,相应资源分配量,判断是否会产生死锁,如果产生死锁,相对应的进程将会显示false。
如果没有产生死锁,所有进程将显示true。
4系统详细设计
前文已经分别介绍了系统的需求分析和系统结构。
并且将系统划分为五个模块,加以区分各个模块的具体功能。
现在所要做的就是确定每个模块具体执行过程,即系统的详细设计。
4.1系统进入选择界面的设计与实现
4.1.1系统开启主界面
操作系统进程管理演示系统拥有多个模块,大部分模块由系统的主界面所连接。
用户可以通过系统主界面进入相应的模块进行操作。
同时,主界面除了和几大功能模块连接,还和系统的帮助和说明模块连接。
用户可以通过主界面进入帮助和说明模块,了解系统的模块构成和使用方法。
主界面如图4.1所示:
图4.1系统主界面
这个模块使用的控件有两种:
button、label[14]。
label的作用是用来制作系统的标题和相关文字说明。
button的作用是用来制作连接各模块的按钮,点击相应的按钮进入相应的模块界面。
操作系统进程演示管理系统主界面控件的主要属性数据如下表4.1:
表4.1系统主界面控件的主要属性数据
控件类型
控件名称
功能
主要属性设置
Label
Mainname
显示系统的名称
Text=操作系统进程演示系统
Button
Zhu1
进程控制的链接按钮
Text=进程控制
Zhu2
进程调度的链接按钮
Text=进程调度
Zhu3
进程同步的链接按钮
Text=进程同步
Zhu4
进程通信的链接按钮
Text=进程通信
Zhu5
死锁避免的链接按钮
Text=死锁避免
Zhu6
Zhu7
帮助界面的链接按钮
Text=帮助
Zhu8
说明界面的链接按钮
Text=说明
本界面主要是将button和相应界面模块连接到一起。
所用的代码主要是模块链接代码,如下:
链接模块的文件名自定义模块名称=new链接模块的文件名();
this.Hide();
//这里是新窗口打开后,将前一个窗口关闭。
自定义模块的名称.Show();
退出按钮的作用是退出打开的系统,代码如下:
Application.Exit();
//结束当前的程序
4.1.2系统说明界面
系统说明界面是为了向使用者说明系统的制作原因和制作目标。
对系统进行相关的解释。
标明制作人和版权问题。
说明界面如图4.2所示:
图4.2说明界面
这个模块使用的控件有三种:
button、listbox、label。
label的作用是用来制作界面的标题。
button的作用是作为返回主界面的按钮,点击按钮返回系统的主界面。
listbox是用来用来显示说明内容。
说明界面控件的主要属性数据如表4.2所示:
表4.2说明界面控件的主要属性数据
Shuo1
Text=系统说明
Button1
返回主界面的链接按钮
Text=返回
Listbox
Listbox1
显示说明内容
4.1.3系统帮助界面
系统帮助界面是为了向使用者说明系统的主要结构和系统的主要结构。
并对系统的操作方法进行讲解,让使用者能够正确使用系统。
帮助界面如图4.3所示:
图4.3说明界面
label的作用是用来制作界面的帮助标题。
listbox是用来用来显示帮助的具体内容。
说明界面控件的主要属性数据如下表4.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科 毕业设计 操作系统 进程 管理 演示 系统 设计