操作系统课程设计汇编.docx

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课程设计汇编

衡阳师范学院工科课程设计 -《操作系统》?题目:优先数调度算法的实现学号姓名:鲁向阳班级: 14级物联网班指导教师:陈琼老师日期: 2016年 12月1.概述1.1设计目的在操作系统中调度算法的实质是一种资源的分配,因而调度算法是指“根据系统资源分配策略所规定的资源分配算法”。对于不同的操作系统和系统目标,通常采用不同的调度算法。为了照顾紧迫作业,使之在进入系统后便获得优先处理,引入了最高优先权调度算法。作为进程调度算法时,该算法是把处理机分配给就绪队列优先权最高的进程。这可以分为抢占式优先权算法和非抢占式优先权算法。对于最高优先权调度算法,其关键在于:它是使用静态优先权还是动态优先权,以及如何确定进程的优先权。动态优先权拥有其特有的灵活优点,同时,若所有的进程都具有相同的优先权初值,则显然是最先进入就绪队列的进程,将因其动态优先权变得高而优先获得处理机,此即FCFS算法。若所有的就绪进程具有各不相同优先权初值,那么,对于优先权初值低的进程,在等待了足够长的时间后,其优先权便可能升为最高,从而获得处理机。当采用抢占式优先权调度算法时,如果规定当前进程的优先权以一定速率下降,则可防止一个长作业长期垄断处理机。1.2运行环境硬件机器:pc计算机语言:C++(使用自己学习的)编译环境:visual studio 20101.3任务分配1)理解掌握进程调度实现所涉及到的主要问题:如何组织进程、如何实现处理机调度。进程控制块的作用和结构,进程控制块的链表组织。进程调度程序包含从进程就绪队列选择并摘取进程、给该进程分配处理机。2)设计进程控制块相关数据结构,进程状态跃迁的相关模拟;3)实现优先调度算法模拟程序设计、编码及调试。2.需求分析2.2题目内容编写程序,采用优先权调度算法实现单处理机系统对进程的调度过程。2.2设计思想说明模拟动态优先权算法,在主函数中选择采用抢占式进程调度算法,再调用优先调度算法完成模拟。1.设定系统中有五个进程,每一个进程用一个进程控制块(PCB)表示,队列的每一个结点都是一种结构体,结构体名称定义为进程模块。2.进程控制块包含如下信息:进程编号、需要运行时间、已用CPU时间等等。3.在每次运行设计的处理调度程序之前,由终端输入五个进程的“进入就绪队列时间”和“要求运行时间”。4.进程的进入就绪队列时间及需要的运行时间人为地指定.进程的运行时间以时间片为单位进行计算。5.将五个进程按给定进程的时间片从小到大连成就绪队列,当第一个进程进去的时候,它就执行当前进程,在执行的过程中,可能有另一个进程进入,进入之后,当前的进程就会进行更新,更新它所有的信息,就把它放入运行队列,使当前运行的剩余时间为零,为零之后就把当前的资源释放掉,这时候就从就绪队列里面取出进程的队头,作为当前运行的进程。寻找的过程中,采用的是队列的遍历,每遍历一个进程的时候,就对当前进程的剩余时间进行更新并记录这个队头。6.处理机调度总是选队列首进程运行。进程每运行一次剩余时间减“1”,同时将已运行时间加“1”。7.进程运行一次后,若要求运行时间不等于已运行时间,则再将它加入就绪队列;否则将其状态置为“结束”,且退出就绪队列。8.“就绪”状态的进程队列不为空,则重复上面6,7步骤,直到所有进程都成为“结束”状态。9.在设计的程序中有输入语句,输入5个进程的“进入就绪队列时间”和“要求运行时间”,也有显示或打印语句,能显示或打印进程的平均等待时间和平均周转时间。10.最后,为五个进程任意确定一组“进入就绪队列时间”和“要求运行时间”,运行并调试所设计的程序,显示或打印出逐次被选中进程的进程序号。2.3数据结构设计设定系统中有五个进程,每一个进程用一个进程控制块(PCB)表示,队列的每一个结点都是一种结构体,结构体名称定义为进程模块。建立好进程控制模块之后,进程就已按时间片从小到大的顺序排成了就绪队列。typedefstruct node{char name[10]; //进程标志符intprio; //进程优先数intcputime; //进程占用cpu时间intneedtime; //进程到完成还要的时间char state; //进程的状态struct node *next; //链指针}PCB;3.算法的设计3.1头文件声明#includestdio.h/*标准io库*/#includestdlib.h/*该文件包含了C语言标准库函数的定义*/#includestring.h/*一种常用的编译预处理指令,在使用到字符数组时需要使用*/3.2定义各种变量char name[10]; //进程标志符intprio; //进程优先数intcputime; //进程占用cpu时间intneedtime;

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档