版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、青岛理工大学操作系统课程设计报告院系: 计算机工程学院 专业: 计算机科学与技术专业 学生姓名: 班级:学号: 题目: 多进程并发与调度仿真环境 起迄日期: 设计地点: 指 导 教 师: 20212021年度 第 2 学期完成日期: 2021 年 7 月 13 日课程设计目的操作系统是现代计算机系统中必不可少的根本系统软件,本课程是工业自动化、自动控制专业的选修课程之一,同时也是从事计算机应用人员必不可少的知识课程。选取最新主流操作系统UNIX、Linux和Windows 2000/NT作为实例介绍操作系统的经典内容和最新开展,同时注意理论联系实际,使学生学会分析研究计算机操作系统的原理、特性
2、,建立操作系统的模块化管理的“硬件相关,应用无关的观点,并初步掌握操作系统内部结构与工作过程以及相关的技术和理论,掌握操作系统是如何管理和控制计算机系统中的所有软件、硬件资源的,以及操作系统是如何为用户提供一个方便灵活、平安可靠的工作环境;通过编程练习来加深对操作系统的理解。学习该课程也是进行复杂操作系统模块设计的训练过程,要求对操作系统的所有模块功能和接口有一个整体的认识和初步的设计能力。进行操作系统课程设计主要是在学习操作系统课程的根底上,在完成操作系统各局部实验的根底上,对操作系统的整体进行一个模拟,通过实践加深对各个局部的管理功能的认识,还能进一步分析各个局部之间的联系,最后到达对完整
3、系统的理解。同时,可以提高运用操作系统知识解决实际问题的能力;锻炼实际的编程能力、创新能力及团队组织、协作开发软件的能力;还能提高调查研究、查阅技术文献、资料以及编写软件设计文档的能力。此题的目的是多进程并发与调度过程,并且分析比拟各种调度算法的性能。根据具体的应用环境来使用响应的算法。二、课程设计内容综合设计多进程并发与调度仿真环境,分析比拟各种调度算法的性能。三、系统分析与设计1、系统分析: 在采用多道程序设计的系统中,往往有假设干个进程同时处于就绪状态。当就绪状态进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。本实验就这一问题给出了四种调度算法。分别为先来先效劳、
4、短作业优先、高优先权调度和时间片轮转算法。先来先效劳FCFS调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。FCFS算法比拟有利于长作业进程,而不利于短作业进程。短作业优先SJF调度算法,是指对短作业或短进程优先调度的算法。它们可以分别用于作业调度和进程调度。缺点: 该算法不利于长作业 该算法完全未考虑作业的紧迫程度,因而不能保证紧迫性作业进程会被及时处理。 由于作业的长短只是根据用户所提供的估计执行时间而定的,而用户又可能会有意或无意地缩短其作业的估计运行时间,致使该算法不一定能真正做到短作业优先调度。优先权调度算法是为了照顾紧迫型作业,使之在进入系统后便获得优先处
5、理。优先权高的先被调度。此算法常被用于批处理系统。基于时间片轮转算法:为保证能及时响应用户的请求,必须采用基于时间片的轮转式进程调度算法。2、系统设计: 1设计一个生成有几个互斥的待处理进程的主界面。 2再设计一个按钮可实现随机重新生成这几个进程的各种属性这里用到了随机函数 3再分别设置四个按钮分别用四个算法对上诉诸进程进行调度。 4对于上诉四个算法再分别为每种算法相应对应的对话框,用来加以区别和独立。3、模块设计: 各程序模块之间的调用关系: 加载操作界面 重新生成四种调度算法按钮 优先权调度先来先效劳 短作业优先 时间片轮转RandH()函数随机生成进程首地址指针CRuntime类Clev
6、el类CSJF类CFCFS类 显示各自对话框就列队列绪塞阻塞列队CPU数据结构说明: 设计中所用到的数据结构或抽象数据类型的说明,以及在程序中的作用 1仅有进程调度的调度队列模型: 在分时系统中,通常仅设置了进程调度,用户键入的命令和数据都直接送入内存。 模型如下列图: 时间片完 进程调度 进程完成 交互用户 事件出现 等待事件 2具有高级和低级调度的调度队列模型: 在批处理系统中,不仅需要进程调度,而且还需要有作业调度,由后者一定的作业调度 算法,从外存的后备队列中选择一批作业调入内存,并为它们建立进程,送入就绪队列, 然后才由进程调度按照一定的进程调度算法选择一个进程,把处理机分配给进程。
7、 此模型如下列图: 作业 时间片完CPU 调度 后备队列就列队列绪 进程调度 进程完成 事件1出现 等待事件1事件2出现 等待事件2 等待事件n事件n出现 3程序中用到的数据结构:1抽象数据类型的定义: 先来先效劳算法所用的队列结构体: struct Queue CString Name ; /进程名 int ArriveTime; /到达时间 int NeedTime ; /所需时间 int StartTime; /开始时间 int FinishTime; /完成时间 double ToTime; /周转时间 double nToTime; /带权周转时间 int Level ; /优先权
8、CString State ; /进程状态 ; Queue Q5; Queue R5; 高优先权调度算法所用的队列结构体: struct Queue CString Name ; /进程名 int ArriveTime; /到达时间 int NeedTime ; /所需时间 int RealTime ; /已运行时间 int StartTime; /开始时间 int FinishTime; /完成时间 double ToTime; /周转时间 double nToTime; /带权周转时间 int Level ; /优先权 CString State ; /进程状态 ; Queue R5 ,
9、Q5 ;2用于显示所用列表所用到的全局结构体:struct ProcessCString Name ; /进程名int ArriveTime; /到达时间int NeedTime ; /效劳时间int RealTime ; /已运行时间int StartTime; /开始时间int FinishTime; /完成时间int Level ; /优先权double ToTime; /周转时间double nToTime; /带权周转时间CString State ; / 作业状态;extern Process P5; 5、算法流程图: 有就绪进程? 开始保护现场,PC=当前进程PCB的断点现行进程
10、PCB的断点值=PC将现行进程状态改为运行态随即选择就绪进程作为现行进程模拟处理器指令执行程序否是 结束 图1: 处理器调度算法流图 开始 选择调度算法判断调度算法?时间片轮转算法建立就绪队列高优先权算法建立就绪队列短作业优先调度算法建立就绪队列先来先效劳算法建立就绪队列调用高优先权算法调用时间片轮转算法调用短作业优先算法调用先来先效劳算法 结束 图2:总程序算法流程图 模块调试与系统测试 1、模块调试: 输入的形式和输入值的范围: 显示待处理的进程: 输出的形式: 显示退出队列后的进程调度结果此为先来先效劳算法: 程序所能到达的功能: 程序模拟多进程并发时的调度过程,共四种调度算法,根据进程
11、的特性来选择适宜的 调度算法对诸进程进行调度。 2、系统测试: 测试方法: 由于软件错误的复杂性,软件测试需要综合应用测试技术,软件测试步骤为单元测试、集成测试、确认测试和系统测试。 单元测试是对源程序中每一个程序单元进行测试,检查各个模块是否正确实现了规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计的文档。各模块经过单元测试后,将各模块组装起来进行集成测试,以检查与设计相关的软件体系结构的有关问题。确认测试主要检查已实现的软件是否满足需求规格说明书中确定的各种需求。系统测试将已确定的软件与其他系统元素如硬件、其他支持软件、数据和人工等结合在一起进行测试。测试数据及测试
12、报告: 操作步骤测试用例描述操作过程及数据预期结果实际结果结论1有序的产生到达时间,其值为0到5之间的整数。正确的生成其值 05之间的数 2符合预期结果。2有序的产生到达时间,其值为0到5之间的整数。错误的生成值 5的数 8越界错误3提示是否模拟调度成功设置提示的对话框以此表示弹出模拟成功对话框弹出模拟成功对话框与预期结果一致。4显示各种算法的平均周转时间正确结果一个正确的Double类型的值 26.60000与预期结果一致。5显示各种算法的平均周转时间错误结果 错误的或越界的数值 -180459217产生越界错误6显示各种算法的平均带权周转时间 正确结果一个正确的Double类型的值 0.5
13、01887符合预期结果。7显示各种算法的平均带权周转时间 错误结果错误的或越界的数值 -180459217产生越界错误 3、调试分析:在刚开始做这道题时,感觉应该不是很麻烦,到设计的时候才发现问题并不是如此,并不清楚各个算法的具体实现方法,后来经过查阅资料,自己的思路逐渐清晰起来。虽然有时还会遇到有些问题,但是经过上网查找资料及老师的指导下都很快解决了。 例如设计结构体变量的时候,对其应该有个初始化的声明过程: Queue Q5;Queue R5; 这样后面才能够正确的使用它。 还有:在算平均周转时间和带权周转时间时,出现了越界错误,输出的结果为:-180459217后来反复检查修改,最后改正
14、了过来。用户手册 1生成待处理进程界面: 2当点击重新生成按钮时,会发现随机的在待处理进程一栏中的各个列的内容发生了变化。 执行先来先效劳按钮后弹出的界面,在执行开始模拟操作会按此算法对进程进行模拟 调度。 执行短作业优先按钮弹出的界面,在执行开始模拟操作会按此算法对进程进行模拟调 度。 执行优先权调度按钮弹出的界面,在执行开始模拟操作会按此算法对进程进行模拟调 度。执行时间片轮转按钮弹出的界面,在执行开始模拟操作会按此算法对进程进行模拟调 度。 7每个算法调度玩之后,都会弹出模拟成功对话框,如图: 程序清单 先来先效劳算法:void CFCFS:BeginSimulate():EnableW
15、indow(Begin , FALSE);:EnableWindow(End , FALSE);int count = 0;Queue temp = R0 ;for(;)if(R0.NeedTime 0)R0.NeedTime = R0.NeedTime - 1 ;if(R0.NeedTime = 0)R0.State = E;Qcount = R0;for(int i = 0 ; i SetWindowText(NULL);Edit2-SetWindowText(NULL);break;:Sleep(100);:MessageBox(m_hwnd,模拟完成,成功,NULL);:EnableW
16、indow(End , TRUE);void CFCFS:DataSort() /按到达先后排序 Queue temp = R0 ;for(int j = 0 ; j 4 ; j+)for(int i = 0 ; i Ri+1.ArriveTime)temp = Ri;Ri = Ri+1;Ri+1 = temp; 短作业优先算法:void CSJF:DataSort() /短作业优先排序 Queue temp = R0 ;int HighLevel = 0 ;for(int j = 0 ; j 4 ; j+)for(int i = 0 ; i Ri+1.NeedTime)temp = Ri;R
17、i = Ri+1;Ri+1 = temp; 高优先权算法: void Clevel:DataSort() /按优先级上下排序 Queue temp = R0 ;for(int j = 0 ; j 4 ; j+)for(int i = 0 ; i Ri+1.Level)temp = Ri;Ri = Ri+1;Ri+1 = temp; 时间片轮转算法: void CRunTime:BeginSimulate() :EnableWindow(Begin , FALSE);:EnableWindow(End, FALSE);int count = 0;Queue temp ;for(;)temp =
18、R0 ;for(int i = 0 ; i 4 ; i+)Ri = Ri+1 ;R4-count = temp ;R0.RealTime = R0.RealTime + 1 ;if(R0.NeedTime = R0.RealTime)R0.State = E;Qcount = R0;for(int i = 0 ; i SetWindowText(NULL);Edit2-SetWindowText(NULL);break;:Sleep(50);:MessageBox(m_hwnd,模拟完成,成功,NULL);:EnableWindow(End , TRUE);七、体会与自我评价 通过本次的课程设
19、计,使我能够正确运用操作系统课程中所学的根本理论和知识,加深了对多用户文件系统根本概念的理解,以及二级目录的磁盘文件系统的文件操作,还有让我感受很深的是对C语言的应用,由于对C语言在平时运用的不够,在对C语言的使用尤其是在编写代码方面很欠缺,在组织语言时出错不断。在设计过程中,需要大量的相关资料,为了本次课程设计我在网上和图书馆查阅了大量资料,不断的发现问题、提出问题、解决问题。在编程和调试的过程中,经常会出现意想不到的问题,并非每个问题都可以从相关资料中找到解决方法,有些问题是无法预料到的,这就需要通过自己理性的分析得出问题的解决方案。在对自己所编写的源程序段的纠错的过程中,使我更好的理解了操作系统中文件系统的理论知识,同时在编程时用到了模块化的设计思想,这种编程方法可以使我们的编程变的更简单,可以使我们的查错与纠错变的更方便,总的来说通过这次的设计的学习使我学到了很多在平时的学习中学不到的很多东西,通过这次课程设计,使我对操作系统产生了极大的兴趣,我想我会在这条路上继续前进下去。我相信,只要不断的严格要求自己,注意培养自己的思维能力,就一定会有更大更辉煌
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年天津职业技术师范大学高职单招职业适应性测试备考题库及答案详细解析
- 2026年郑州黄河护理职业学院单招职业技能考试备考试题含详细答案解析
- 2026年黑龙江艺术职业学院高职单招职业适应性测试模拟试题及答案详细解析
- 2026年天津艺术职业学院单招职业技能考试备考试题含详细答案解析
- 2026年内蒙古交通职业技术学院单招综合素质笔试模拟试题含详细答案解析
- 2026年上海海洋大学高职单招职业适应性测试备考试题及答案详细解析
- 2026年忻州职业技术学院单招职业技能考试模拟试题含详细答案解析
- 2026年广东环境保护工程职业学院单招综合素质考试备考题库含详细答案解析
- 2026年无锡商业职业技术学院单招综合素质笔试备考题库含详细答案解析
- 2026年广西现代职业技术学院高职单招职业适应性测试备考题库及答案详细解析
- 埃森哲项目管理
- 心理治疗方案在消化系统疾病患者中的应用
- 筛分设备安装施工详细方案
- 2025年低空经济行业灾害应急演练与评估报告
- 医美院感知识培训课件
- 绿色交通系统1000辆新能源公交车推广可行性研究报告
- 拜师仪式流程及主持稿
- 厂用电安全知识培训课件
- Unit 1 Travel (同步练习)-【中职英语】高一英语下学期(高教版2023基础模块2)(解析版)
- 微生物进出口管理办法
- 2025至2030中国以太网供电(PoE)电源设备行业发展趋势分析与未来投资战略咨询研究报告
评论
0/150
提交评论