中北大学操作系统课设说明书
三组说明书
目录1、绪论 (2)1.1金属切削机床在国民经济中的地位 (2)1.2本课题研究目的 (2)2、主轴箱的设计 (3)2.1 原始数据与技术条件 (3)2.2 机床主传动系统运动设计 (3)2.2.1确定极限转速 (3)2.2.2确定公比 (3)2.2.3 确定各主轴转速 (3)2.2.4 主运动链转速图的拟定 (4)2.2.5齿轮齿数的确定 (6)2.2.6核算主轴转速误差 (6)2.3传动零件的初步计算 (7)2.3.1计算各传动件的计算转速 (7)2.3.2传动轴直径的初定 (7)2.3.3主轴轴颈直径的确定 (8)2.3.4齿轮模数的初步确定 (8)2.3.5选定轴承 (9)2.3.6 三角带传动的计算和选定 (9)2.3.7直齿圆柱齿轮的强度计算 (11)2.3.8.主轴刚度验算 (12)3、总结 (14)4、致谢 (15)5、参考文献 (15)1、绪论1.1金属切削机床在国民经济中的地位金属切削机床是用切削的方法将金属毛坯加工成机器零件的机器,它是制造机器的机器,又称为“工作母机”或“工具机”。
在现代机械制造工业中,金属切学机床是加工机器零件的主要设备,它所担负的工作量,约占机器总制造工作量的40% 60%。
机床的技术水平直接影响机械制造工业的产品质量和劳动生产率。
机床的“母机”属性决定了它在国民经济中的重要地位。
机床工业为各种类型的机械制造厂提供先进的制造技术和优质高效的机床设备,促进机械制造工业的生产能力和工艺水平的提高。
机械制造工业肩负着为国民经济各部门提供现代化技术装备的任务,为适应现代化建设的需要,必须大力发展机械制造工业。
机械制造工业是国民经济各部门赖以发展的基础。
机床工业则是机械制造工业的基础。
一个国家机床工业的技术水平,在很大程度上标志着这个国家的工业生产能力和科学技术水平。
显然,金属切削机床在国民经济现代化建设中起着重大的作用。
1.2本课题研究目的课程设计是在学生学完相应课程及先行课程之后进行的实习性教学环节,是大学生的必修环节,不仅是巩固学生大学所学知识的重要环节,而且也是在检验大学生综合应用知识的能力、自学能力、独立操作能力和培养创新能力,是大学生参加工作前的一次实践性锻炼。
-操作系统课程设计说明书
中北大学操作系统课程设计说明书学院、系:软件学院专业:软件工程学生姓名:刘婷学号:0921010708 设计题目:基于Linux的实现进程的信号量互斥申请起迄日期: 2011年12月22日- 2012年1月7日指导教师:贾美丽2012 年 1月 7 日1需求分析基于Linux的进程同步与通信的模拟实现需要完成以下功能:(1).创建进程:手动创建几个进程,或者随即创建几个进程,都在界面上完成;要求包括进程的名称(不能重复)、执行时间和申请资源的等待时间等。
在同一时刻可能有多个进行在内存申请某资源,即可以输入多个进程的资源申请。
(2).3类临界资源的管理,包括申请以及分配等。
分别通过信号量实现或者管程实现。
(3).银行家算法,判断是否可以进行资源的分配。
基于以上的功能,可以使用户选择操作,模拟临界资源的管理和银行家算法。
目的:实现临界资源的管理及死锁的避免。
2总体设计进程同步与模拟实现系统分为4个模块:输入输出,进程对资源的随机申请及分配,临界资源管理,银行家算法避免死锁。
输入输出:包括系统运行所需要的进程的名称,执行时间,申请资源的等待时间,进程对资源的需要量等信息以及系统所要显示出的进程的创建信息,资源的分配信息,进行执行信息,进行动态申请资源信息等。
进程对资源的随机申请及分配:根据所输入的进程、资源、以及进程对资源的最大申请情况,随机产生进程当前对资源的申请,输出相应的分配信息与进程执行信息并调用银行家算法对进程的资源申请进行判断。
临界资源的管理:创建相应个数的进程,完成进程的并发执行,使用互斥信号量使各进程互斥的进入各自的临界区对资源进行申请,进程执行完毕后,互斥的对资源进行恢复。
银行家算法避免死锁:对当前进程对资源的申请利用银行家算法进行判断,看系统分配后是否处于安全状态,若处于安全状态,则将资源分配给进程,并输出分配信息,否则对不予以分配。
3.详细设计在该系统中我主要实现了银行家算法避免死锁的模块,该模块中主要使用了数组的数据结构.3.1银行家算法:设Request[i]是进程i的请求向量,如果Request[i][j]=k,表示进程i需要k各j类型的资源。
《操作系统》课程设计说明书
河南城建学院《操作系统》课程设计说明书设计题目:UNIX/Linux文件系统分析专业:计算机科学与技术指导教师:邵国金耿永军陈红军班级:0614082学号:061408261姓名:贠炳森同组人:叶矿辉、陈宇计算机科学与工程系2011年1月7日前言在现在计算机更新如此迅速的时代要学好计算机软件技术,特别是操作系统的学习,不仅要努力学好课本上的基础知识,还要经常在图书馆看些有关这方面的书籍,而更重要的是要有足够的实践经验,也要注重和同学的交流,经常尝试性的做些小的操作系统,对自己技术的提升会有很大的帮助。
同时,学习计算机操作系统技术,除了需要刻苦努力外,还需要掌握软件和操作系统的原理与设计技巧。
如何学习和掌握操作系统技术的原理与实际技巧呢?除了听课和读书之外,最好的方法恐怕就是在实践中练习。
例如,自己设计一个小型操作系统,多使用操作系统,多阅读和分析操作源代码等。
但由于我们的条件和学时有限,在理论学习过程中没有给同学们提供更多的实验机会。
本操作系统课程设计,是给同学提供一个集中实验的机会。
希望同学们通过该设计加深对所学习课程的理解。
本设计是基于课程中学到的UNIX系统调用,使用操作系统环境是Red Hat Linux 9,言语开发环境是Linux的GNU C或C++。
我做的课程设计是:Linux/Unix文件系统分析。
在Linux系统下,使用与文件相关的系统调用实现对物理设备文件的读写,参照Linux系统源代码以及Grub 系统的源代码,对不同介质上的FAT格式文件系统进行分析。
要求在Linux环境下设计出C语言程序,实现以下功能:1)分析UNIX SysV/Linux系统引导记录的作用;2)分析UNIX SysV/Linux的超级块及其结构,并建立相关数据结构,通过编程实现UNIX SysV/Linux文件系统内各部分的定位。
3)至少要实现对给定i节点文件的只读访问目录一.系统环境 (3)1.1硬件环境 (3)1.2软件环境 (3)二.设计目的及要求 (3)三.总体设计 (5)四.详细设计 (6)五.调试与测试 (6)六.设计中遇到的问题及解决方法 (6)七.Linux/Unix文件系统分析源程序清单 (7)7.1 头文件 (7)7.2 示例程序 (10)八.运行结果及分析 (16)8.1 linux文件系统读取 (16)8.2 UNIX文件系统读取 (18)九.心得体会 (19)十.参考文献 (20)Linux/Unix文件系统分析一.系统环境1.1硬件环境cpu为pentium4双线程技术,频率为2.8GHZ,内存为256MB。
操作系统课程设计说明书
操作系统课程设计说明书课程设计说明书课程设计名称:操作系统题目:XXXXXXX年级:开发小组名称:小组自评成绩:小组负责人:课题组成员:姓名学号班级自评成绩分工签字课题开发日期:指导教师:1. 概述1、目的与意义题目:多道程序缓冲区协调操作设自行车生产线上有3只箱子(BOX ),箱中有N 个位置(N>=2),BOX1每个位置可存放下一个车架,BOX2每个位置可存放一个车轮,BOX3每个位置可存放下一台组装好的车。
有设有3个(类)工人,工人1不定地向箱1中放车架,工人2不定地向箱2中放车轮,工人3不定地从箱中1取出一个车架和箱2中取2个轮子,组装成一台自行车,并把它放到BOX3中。
任何一个时刻只能有1个工人对箱子操作。
有很多个搬运工(Carrier )不停地将BOX3取出运走。
其活动可分别可以抽象为图1。
采用多进程或多线程方式,运用同步和互斥机制,设计一个多道程序完成上述任务和操作。
提示:需要设计Worker1、Worker2、Worker3、Carrier 类线程基本功能要求:(1)提供良好图形界面,显示整个系统操作过程,可以暂停和继续系统的执行;(2) 可以设定各BOX 容量;(3) 可以设定PUT 、GET 、Move 操作的速度;(4) 实时显示每个BOX 中当前物品的数量,空闲空间的数量;(5) 实时显示线程、进程所处于等待(阻塞)状态的个数;(6)程序运行结束,显示汇总数据:总的运行时间;处理个物品的个数;平均每个BOX 中的物品个数。
(7)能够将每次的实验输入和实验结果存储起来,随时可查询。
意义:通过本次课设应对消费者生产者问题有一个更加透彻的了解,加深对于多线程下的互斥同步机制的理解。
2、主要完成的任务;1、数据的输入:包括文件输入和键盘输入。
输入工人数量可用资源数量以及BOX 的容量和工人的生产时间;2、数据的处理(多线程机制):根据可用资源计算生产最大车辆人员最佳分配比例以及根据输入安装生产线按照多线程方式运转;3、数据的输出:运行中实时显示BOX 中的物品数量和余量以及系统中线程阻塞的个数和名称,以及历史纪录。
中北大学课程设计说明书
目录1 零件的工艺分析 (1)1.1零件图的分析: (1)1.1.1加工毛坯选择 (2)1.1.2机床的选择 (2)1.1.3确定零件的定位基准和装夹方式 (2)1.2确定零件的工艺过程: (3)1.2.1 加工方法的选择 (3)1.2.2加工方案的确定 (3)1.3确定加工顺序及进给路线 (3)1.3.1零件加工必须遵守的安排原则 (3)1.3.2进给路线 (3)1.4刀具的选择 (4)1.4.1背吃刀量的选择 (5)1.4.2主轴转速的选择 (5)1.4.3进给速度的选择 (5)2 程序编制: (5)3 程序仿真 (6)3.1仿真软件介绍 (6)3.2仿真步骤与结果 (7)3.2.1 回零 (7)3.2.2 毛坯尺寸 (8)3.2.3 刀具选择 (8)3.2.4 刀具半径补偿 (9)3.2.5 对刀 (9)3.2.6 模拟加工路线 (10)3.2.7 外轮廓 (11)3.2.8 零件图 (12)4 设计小结 (13)5 参考文献 (13)1 零件的工艺分析1.1零件图的分析:如图1所示铣削箱盖零件图,材料为45钢,调制处理,现对该零件进行工艺分析:图1零件图生产要求:小批生产编写加工程序数控加工基本工艺特点:数控机床加工工艺与普通机床加工原则上基本相同,但数控机床是自动进行加工,因而有如下特点:①数控加工的工序内容比普通机床的加工内容复杂,加工的精度高,加工的表面质量高,加工的内容较丰富。
②数控机床加工程序的编制比普通机床工艺编制要复杂些。
这是因为数控机床加工存在对刀、换刀以及退刀等特点,这都无一例外的变成程序内容,正是由于这个特点,促使对加工程序正确性和合理性要求极高,不能有丝毫的差错。
否则加工不出合格的零件。
在编程前我们一定要对零件进行工艺分析,这是必不可少的一步,如图1我要对该零件进行精度分析,选择加工方法、拟定加工方案、选择合理的刀具、确定切削用量。
该零件由直线、内孔、平面、圆弧、凹槽等表面组成,其中由较严格直径尺寸精度要求的如Φ20H7mm,ф32mm, ф36mm轴线长度的精度如26±0.01mm,12±0.013mm,粗糙度3.2μm,Φ20H7mm 的粗糙度1.6μm。
操作系统课程设计(完整规范版)
操作系统课程设计(完整规范版)一、设计目的操作系统课程设计旨在让学生深入了解操作系统的基本原理,掌握操作系统设计与实现的基本方法,培养学生在操作系统领域的实际动手能力和创新思维。
通过本次课程设计,学生应能够:1. 理解操作系统的功能、结构和关键技术;2. 学会分析实际操作系统的性能和特点;3. 设计并实现一个简单的操作系统模块或功能;4. 提高团队协作和沟通能力。
二、设计要求1. 设计内容:根据课程所学,选择一个具有实际意义的操作系统模块进行设计与实现。
模块可包括:进程管理、内存管理、文件系统、设备管理等。
2. 设计规范:遵循软件工程的基本原则,确保代码的可读性、可维护性和可扩展性。
3. 团队协作:本次课程设计以小组为单位进行,每组35人。
小组成员需明确分工,共同完成设计任务。
(2):包括所有设计文件、代码及相关文档;(3)演示PPT:汇报课程设计成果,阐述设计思路、实现过程及创新点。
三、设计流程1. 需求分析:分析所选操作系统模块的功能需求,明确设计目标。
2. 系统设计:根据需求分析,设计系统架构,划分模块,确定各模块的功能和接口。
3. 编码实现:按照系统设计,编写代码,实现各模块功能。
4. 测试与调试:对实现的系统模块进行功能测试、性能测试和兼容性测试,确保系统稳定可靠。
5. 优化与改进:根据测试结果,对系统进行优化和改进。
7. 演示与答辩:制作演示PPT,汇报课程设计成果,回答评委提问。
四、评分标准1. 设计报告(30%):内容完整、结构清晰、表述准确、格式规范。
2. 代码质量(40%):代码可读性、可维护性、可扩展性、创新性。
3. 演示与答辩(20%):PPT制作、汇报效果、回答问题。
4. 团队协作(10%):分工明确、协作高效、沟通交流。
五、预期成果1. 理论与实践相结合:将课堂上所学的操作系统理论知识运用到实际设计中,加深对操作系统的理解。
2. 技能提升:提高编程能力,掌握操作系统核心模块的设计与实现技巧。
《操作系统》课程教案
《操作系统》课程教案一、课程简介1. 课程名称:操作系统2. 课程性质:专业核心课3. 学时:64学时4. 学分:4学分5. 适用对象:计算机科学与技术专业本科生6. 课程目标:使学生掌握操作系统的基本原理、概念和技术,培养学生运用操作系统知识解决实际问题的能力。
二、教学内容1. 操作系统概述操作系统的概念、功能和作用操作系统的发展历程操作系统的类型和结构2. 进程管理进程与线程的基本概念进程的创建、调度和终止线程同步与互斥死锁与饥饿3. 内存管理内存分配与回收策略虚拟内存技术页面置换算法内存保护与共享4. 文件系统文件与文件系统的概念文件存储结构与存取方法目录结构与文件权限文件系统的实现技术5. 输入/输出管理I/O系统结构设备驱动程序中断处理与DMA传输I/O调度策略三、教学方法1. 讲授:讲授操作系统的基本原理、概念和技术。
2. 实验:通过实验让学生掌握操作系统的实际应用和编程方法。
3. 讨论:组织学生进行课堂讨论,培养分析问题和解决问题的能力。
4. 案例分析:分析实际操作系统案例,让学生了解操作系统的应用场景。
四、教学要求1. 知识要求:掌握操作系统的基本原理、概念和技术。
2. 能力要求:具备运用操作系统知识解决实际问题的能力。
五、教学资源1. 教材:选用国内外优秀教材《操作系统原理与应用》等。
2. 课件:制作精美、清晰的课件,辅助教学。
3. 实验设备:计算机及相关硬件设备。
4. 网络资源:利用网络资源,提供相关学术文章、视频教程等,方便学生自主学习。
5. 交流平台:建立课程QQ群、群等,方便学生与教师沟通交流。
六、教学安排1. 课时分配:操作系统概述:4学时进程管理:12学时内存管理:8学时文件系统:8学时输入/输出管理:8学时实验与讨论:16学时2. 教学进度:第1-4周:操作系统概述、进程管理第5-8周:内存管理、文件系统第9-12周:输入/输出管理、实验与讨论七、考核方式1. 期末考试:总分100分,占比80%题型:选择题、填空题、简答题、计算题、案例分析题2. 实验报告:总分20分,占比20%实验内容:根据实验要求完成相关实验操作报告要求:内容完整、分析深入、论述清晰八、课程评价1. 学生评价:课程结束后,对学生进行问卷调查,了解课程收获、教学效果等方面的情况。
操作系统课程设计指导书
《计算机操作系统》课程设计指导书一、课程设计的目的和意义本课程设计是学生学习完《计算机操作系统》课程后,进行的一次全面的综合训练,通过课程设计,让学生更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。
二、总体要求:1、课程设计总时间为五天。
2、课程设计地点是实验楼616机房。
3、一个班分若干个组,每组2人,个别可以3人组(自由组合)课程设计题目由任课老师指定;4、人员分工:组长1人、组员1到2人。
组长可由小组人员自行选出或自荐,组长的职责是负责与老师交流,合理安排分配本组的各项任务,任务有:系统总体设计、编码、测试、写文档。
三、设计要求:本课程设计以Linux操作系统为实验平台,进行源代码分析和修改或应用。
通过该课程设计,使学生掌握Linux操作系统各部分结构、实现机理和各种典型算法;或使学生进行网络管理和系统管理,系统地了解操作系统的设计和实现思路,运用内核开发环境实现对内核的修改,培养学生的系统设计能力,并了解操作系统的发展动向和趋势。
要求如下:1、要充分认识课程设计对培养自己的重要性,认真做好设计前的各项准备工作。
2、既要虚心接受老师的指导,又要充分发挥主观能动性。
结合课题,独立思考,努力钻研,勤于实践,勇于创新。
3、独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。
4、课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩按不及格处理。
5、在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。
6、小组成员之间,分工明确,但要保持联系畅通,密切合作,培养良好的互相帮助和团队协作精神。
四、成绩评定1、同学平时表现占总成绩30%,若迟到扣5分,无故旷课每次扣10 分,二次不到者总成绩以0分计。
2、课程设计报告占总成绩70%,在规定时间内上交。
3、严禁抄袭,复制设计内容,查出后相关同学设计成绩以零分处理。
《操作系统课程设计》教学大纲
操作系统课程设计》教学大纲第一部分课程目的与任务、课程基础:在学这门课之前,学生必须预修过高级语言、数据结构、离散数学方面的基本知识,先修操作系统课程,延时完成操作系统打作业。
二、适应对象:计算机科学与技术-计算机应用; 软件工程-软件工程; 电子信息科学类-电子信息科学与技术;管理类- 信息管理专业三、教学目的:为配合《操作系统》课程的教学,通过模拟操作系统原理的实现,使学生能更深刻地领会操作系统工作原理和操作系统实现方法,并提高程序设计能力,特开设此课程设计。
四、内容提要:本课称要求实现一套模拟的单用户多任务操作系统,该操作系统包括进程管理、存储管理、设备管理和文件管理四部分。
第二部分内容及基本要求第 1 部分、进程控制管理实现•基本要求:利用简单的结构和控制方法模拟进程结构、进程状态和进程控制。
•参考学时:8 学时•实验提示:1用PCB表示整个进程实体,利用随机数方法或键盘控制方法模拟进程执行中产生的事件,或者利用基于图形界面的鼠标或者键盘操作控制进程管理内容。
2、定义PC(可以采用静态结构或动态结构):包括理论PCB中的基本内容, 如内部ID、外部ID、进程状态、队列指针。
由于无法实现真正的进程创建功能,在实验中只需建立PCB用它代表完整的进程。
3、定义进程状态转换方式:进程的状态转换是由进程内部操作或操作系统的控制引起,由于无法实现这些功能,学生可以采用随机数方法或键盘控制方法模拟,并实现对应的控制程序。
随机方法指产生1-6 的随机数,分别代表创建进程(c)、结束进程(e)、进程阻塞(b)、激活进程(w)、调度进程(P)、时间片到⑴等事件;键盘模拟方法指定义6种按键代表以上 6 种事件。
4、根据事件处理就绪队列、阻塞队列和当前执行进程的状态。
每次事件处理后应形象地显示出当前系统中的执行进程是哪一个,就绪队列和阻塞队列分别包含哪些进程。
第 2 部分、请求分页式存储管理的地址转换过程实现:•基本要求:在第 1 部分实验基础上实现进程的分页式内存分配和地址转换过程,并进一步实现请求分页式存储分配和地址转换过程。
中北大学操作系统课设说明书
1引言1.1问题的提出随着科技的发展,越来越多的人开始了解计算机,熟悉计算机,使用计算机,计算机已经成为人们工作、学习、生活的必备工具。
用户使用计算机处理各种各样的事情,那么选用怎样的进程调度方式才能使计算机更快更优的为我们服务呢?这就要求我们必须了解操作系统进程调度的算法及其相关原理。
首先硬件机制上如何保证操作系统的内核调度进程可以在一定的时机获得CPU来进行进程调度?通常我们会在软件层次上找答案,其实,它是通过在CPU的硬件处理机制上实现的。
CPU在执行完每个指令的周期后会扫描CPU的内部的一个中断寄存器,查询是否存在中断发生,若没有,则继续执行指令;若有,则保存当前的CPU工作环境,跳转到中断服务列程,CPU执行中断服务程序,在退出中断后,跳转到内核调度程序(这是个内核程序,但是是对所有的进程共享的,包括用户进程),此时,内核调度程序占据CPU,进行进程的调度,以决定下个将占用CPU 的进程。
其次了解三种常见的进程调度算法:先来先服务调度算法;短作业(短任务、短进程、短线程)优先调度算法;高响应比优先调度算法;1.2设计目的进程是操作系统中最重要的概念,也是学习现代操作系统的关键。
通过本次课程设计,要求理解进程的实质和进程管理的机制。
掌握进程调度的工作流程以及进程调度的算法。
1.3设计内容1.创建进程:手动创建几个进程,或者随即创建几个进程,都在界面上完成;要求包括进程的名称(不能重复)、创建时间、执行时间等。
在此因为某时刻仅一个进程在运行,需要申请的资源都能申请到。
2.完成先来先服务、最短作业优先以及最高响应比优先调度算法。
1.4设计要求要求在屏幕上输出各进程不同调度算法的演示过程、对周转时间、平均周转时间和平均带权周转时间进行计算,并对比各算法的优劣。
2.系统分析2.1功能需求每个进程有一个进程控制块( PCB)表示。
进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1引言
1.1问题的提出
随着科技的发展,越来越多的人开始了解计算机,熟悉计算机,使用计算机,计算机已经成为人们工作、学习、生活的必备工具。
用户使用计算机处理各种各样的事情,那么选用怎样的进程调度方式才能使计算机更快更优的为我们服务呢?这就要求我们必须了解操作系统进程调度的算法及其相关原理。
首先硬件机制上如何保证操作系统的内核调度进程可以在一定的时机获得CPU来进行进程调度?
通常我们会在软件层次上找答案,其实,它是通过在CPU的硬件处理机制上实现的。
CPU在执行完每个指令的周期后会扫描CPU的内部的一个中断寄存器,查询是否存在中断发生,若没有,则继续执行指令;若有,则保存当前的CPU工作环境,跳转到中断服务列程,CPU执行中断服务程序,在退出中断后,跳转到内核调度程序(这是个内核程序,但是是对所有的进程共享的,包括用户进程),此时,内核调度程序占据CPU,进行进程的调度,以决定下个将占用CPU 的进程。
其次了解三种常见的进程调度算法:先来先服务调度算法;短作业(短任务、短进程、短线程)优先调度算法;高响应比优先调度算法;
1.2设计目的
进程是操作系统中最重要的概念,也是学习现代操作系统的关键。
通过本次课程设计,要求理解进程的实质和进程管理的机制。
掌握进程调度的工作流程以及进程调度的算法。
1.3设计内容
1.创建进程:手动创建几个进程,或者随即创建几个进程,都在界面上完成;要求包括进程的名称(不能重复)、创建时间、执行时间等。
在此因为某时刻仅一个进程在运行,需要申请的资源都能申请到。
2.完成先来先服务、最短作业优先以及最高响应比优先调度算法。
1.4设计要求
要求在屏幕上输出各进程不同调度算法的演示过程、对周转时间、平均周转时间和平均带权周转时间进行计算,并对比各算法的优劣。
2.系统分析
2.1功能需求
每个进程有一个进程控制块( PCB)表示。
进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。
进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。
进程的到达时间为进程输入的时间。
进程的运行时间以时间片为单位进行计算。
等待I/O的时间以时间片为单位进行计算,可随机产生,也可事先指定。
每个进程的状态可以是就绪 R(Ready)、运行R(Run)、等待(Wait)或完成F(Finish)四种状态之一。
就绪进程获得 CPU后都只能运行一个时间片。
用已占用CPU时间加1来表示。
如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。
每进行一次调度程序都打印一次运行进程、就绪队列、等待进程以及各个进程的 PCB,以便进行检查。
重复以上过程,直到所要进程都完成为止。
2.2程序运行平台
硬件环境:微型计算机一台
软件环境:linux操作系统
3.总体设计
3.1设计思想
1)先来先服务调度算法:按进程进入就绪队列的先后次序选择可以占用处理器的进程。
2)SPF优先调度算法:是从就绪队列中选出一估计运行时间最短的进程,将处理机分配给它,使它立即执行到完成,或发生某事件而被阻塞放弃处理机时,再重新调度。
3) 最高响应比优先法(HRRN)是对FCFS方式和SJF 方式的一种综合平衡。
HRRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。
3.2设计流程图
1)主函数流程图
2)先来先服务流程图
3)短作业优先流程图
4)最高响应比流程图
4.功能模块的设计与实现
4.1进程控制块
4.2先来先服务算法
4.3短作业优先算法
4.4最高响应比算法
4.5主函数
5.系统测试
5.1设计测试数据
(1)测试数据1
调度算法:先来先服务
进程数:
进程名:
到达时间:
服务时间:
(2)测试数据2
调度算法:短作业优先
进程数:3
进程名:a b c
到达时间:1 3 6
服务时间:3 2 4
(3)测试数据3
调度算法:最高响应比
进程数:3
进程名: a b c
到达时间:2 4 5
服务时间:3 5 2
5.2测试结果运行
(1)输入数据1结果运行如下:
(2)输入数据2结果运行如下:
(3)输入数据3结果运行如下:。