目录。一、课程设计目的 3
二、课程设计要求 3
三、创新思维 4
四、系统环境支持及语言选择 4
五、系统框架构成 5
一)整体框架: 5
二)流程图 6
1.先来先服务算法流程图 6
2.优先级算法 6
六、 系统功能说明 7
一)先来先服务算法的实现: 7
二)静态优先级算法的实现: 7
三)动态优先级算法的实现: 7
四)创建进程的实现: 7
五)阻塞进程的实现: 7
六)唤醒进程的实现: 8
七)撤销进程的实现: 8
八)进程控制的实现: 8
七、用户使用说明 8
八、体会与自我评价 9
在学习操作系统课程的基础上,在对操作系统各部分充分理解的基础上,对操作系统的整体进行一个模拟。本实验进行的进程调度系统的算法采用的是动态和静态优先数优先的调度算法(即把处理机分配给优先数最低的进程)先来先服务算法。通过实践加深对各个部分的管理功能的认识,还能进一步分析各个部分之间的联系,最后达到对完整系统的理解。
同时,可以提高运用操作系统知识解决实际问题的能力;锻炼实际的编程能力、创新能力 、开发软件的能力;还能提高调查研究、查阅技术文献、资料以及编写软件设计文档的能力。
1.进程管理功能以进程调度为主要功能。以进程控制为辅助功能。
2.体现操作系统原理中进程调度算法和进程控制算法。按照操作系统原理设计。
3.结构化设计。设计时构建出模块结构图并存于文件中。模块化实现,对每一功能,每一操作使用模块、函数、子程序设计方法实现。
4.进程以pcb为代表。队列、指针用图示。每一步功能在桌面上能显示出来。
5.系统应具有排错功能,对可能出现的错误应具有排查功能和纠错能力。6.界面自行设计,语言自行选择。(可用c#语言,也可用你会的其他语言,甚至还可用ppt)
7.每人的设计功能都能表现或说明出来。
8.进程以队列法组织,对不同进程调度算法:fifo队列或pri队列或rotate(轮转队列)用同一个进程序列组织,对阻塞队列可设置一个,也可设多个。
9.因为是模拟系统,所以要显示每个功能和操作结果。显示应力求清晰、易读和一目了然(一屏),最好能用汉字,否则可用英语或汉语拼音。
10.操作方便,使用便捷。可视化程度高。
1.时间片进展可以清晰地反应当前进程运行状况。
2.实验报告书用microsoft word编辑,可以按住ctrl键点击链接到指定位置。
3.动态优先级减去等待时间的0.05倍,等待的时间越长越有机会先运行,对进程比较公平。
1)程序编写环境:visualstudio2010c#
2)程序运行环境:windowsxp&windows7
3)程序使用语言:c#
选择先入先出按钮,创建进程成功后自动运行,按照进程创建的顺序执行。如此反复直至全部完成。
选择静态优先级按钮,创建进程成功后自动运行,比较优先级的优先数,优先数低的先运行。如此反复直至全部完成。
选择动态优先级按钮,创建进程成功后自动运行,比较优先级的优先数,优先数低的先运行。同时在就绪队列里优先数每隔一秒减去等待时间的0.05倍,再比较优先级,优先数低的先运行。
如此反复直至全部完成。
创建进程包括标识数、进程名、优先数、状态、已用cpu时间、需要运行时间、等待时间。标识数按从小到大的顺序自动生成,标识名可以自己创建,也可以不写,优先数为1-255之间随机数,第一个创建的进程状态为运行,其余的为就绪状态,需要运行时间为5-30之间随机数,已用cpu时间和等待时间由进程控制。
按照所选算法种类确定阻塞顺序,当选择为先来先服务算法时,每点击阻塞按钮,阻塞进程的顺序为创建时的顺序(包括当前运行进程);当选择为动态(静态)优先级算法时,每点击阻塞按钮,阻塞进程的顺序为当前运行进程然后按照优先数由小到大阻塞。
在有阻塞进程的基础上,按照所选算法种类确定唤醒顺序,当选择为先来先服务算法时,每点击唤醒按钮,唤醒进程的顺序为创建时的顺序;当选择为动态(静态)优先级算法时,每点击唤醒按钮,唤醒进程按照优先数由小到大唤醒。在没有运行进程的基础上,唤醒的第一个进程进入运行队列,其余进入就绪队列。
点击标识数前面的复选框,用户可以自行选择撤销。
点击进程控制,将正在执行的进程插入到就绪队列对队尾。实现执行到就绪的转换。
系统包含两个界面,当在第一个界面点击进入时,自动跳出第二个界面,当点击退出时退出程序;当运行第二个界面点击退出时,自动跳出第一个界面,用户可以自行选择,界面各个按钮执行各自的功能。
通过一个学期的学习,我们认为要学好操作系统这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固知识。特别是作为大学生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。
操作系统作为一个人与计算机通信交流的界面接口,它控制着计算机软件和硬件资源,如何才能使资源得到有效利用,最大效率利用,这主要依靠对算法的精炼程度,这就要求我们不仅要对算法的清晰认识和熟练掌握,也必须要熟练掌握一门编程语言,现在的操作系统基本都是由c++编写的,例如微软的windows或是unix或是linux。可以说编写一个操作系统可以最好的检验一个it人的编程水平。
通过实践的学习,我们意识到学好计算机要重视实践操作,不仅仅是学习c#语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我们会更加注视实践操作,以便自己能更好地学好计算机。
操作系统课程设计报告
西安郵電大學。院系名称 计算机学院。专业名称 软件工程。班级 1104 学生姓名 赵大伟。学号 8位 04113124 指导教师 舒新峰。设计起止时间 2013.11.10 2013.11.20 1 通过观察 分析实验现象,深入理解进程及进程在调度执行和内存空间等方面的特点,掌握在posix 规范中...
操作系统课程设计报告
课程设计。课程名称操作系统。题目名称多级文件系统 2 学生学院计算机学院 专业班级。学号。学生姓名。指导教师。年月日。目录。一 课程设计 6 二 开发工具及环境 6 三 设计内容 6 四 结构图 8 五 部分 9 六 运行截图 11 七 参考文献 15 八 心得体会 15 本课程设计要求设计一个模拟...
操作系统课程设计报告
实验一进程管理。一 实验目的。1 开发一个函数,建立进程控制块和资源控制块结构,并实现相关数据结构的初始化。2 开发一系列操作,由进程调用这些操作,达到控制进程申请或释放各种资源的目的。通过实验理解进程的概念,进程的组成 pcb结构 进程的并发执行和操作系统进行进程管理的相关原语 主要是进程的创建 ...