处理机调度程序操作系统课程设计报告.docx
- 文档编号:1852390
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:20
- 大小:110.70KB
处理机调度程序操作系统课程设计报告.docx
《处理机调度程序操作系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《处理机调度程序操作系统课程设计报告.docx(20页珍藏版)》请在冰豆网上搜索。
处理机调度程序操作系统课程设计报告
北华航天工业学院
《操作系统》
课程设计报告
课程设计题目:
处理机调度程序
作者所在系部:
计算机与遥感信息技术学院
作者所在专业:
网络工程
作者所在班级:
B12522
作者姓名:
梁爽
作者学号:
20124052204
指导教师姓名:
刘立媛
完成时间:
2015.1.5
北华航天工业学院教务处制
课程设计任务书
课题名称
处理机调度程序
完成时间
2015.1.5
指导教师
刘立媛
职称
助教
学生姓名
梁爽
班级
B12522
总体设计要求和技术要点
处理机调度程序:
选择一个调度算法,实现处理机调度。
设计要求:
主界面可灵活选择某算法,且以下算法都要实现:
1、时间片轮转法
2、短作业优先算法
3、动态优先级算法
执行时在主界面选择算法(可用函数实现),进入子页面后输入进程数,运行时间,优先数(由随机函数产生),执行,显示结果。
工作内容及时间进度安排
时间:
此次课程设计时间为两周,第18、19周,共40学时。
分四个阶段完成:
1.分析设计阶段:
明确设计要求,找出实现方法。
这一阶段在第1天完成。
2.编码调试阶段:
根据设计分析方案编写代码,然后调试该代码,实现课题要求的功能。
这一阶段在第2-8天完成。
3.总结报告阶段:
总结设计工作,撰写课程设计报告,这一阶段在第8-9天完成。
4.考核阶段:
这一阶段在第10天完成。
地点:
计算机与遥感信息技术学院实验室
课程设计成果
1.与设计内容对应的软件程序
2.课程设计报告书
摘要
计算机自从1946年第一台真正意义上的数字电子计算机ENIAC的诞生以来,已经经历了1854年-1890年、1890年-20世纪早期、20世纪中期、20世纪晚期-现在四个阶段,每一个阶段的发展都发生了质与量的突飞猛进。
然而,计算机的发展只是代表了硬件的提升,对于软件,操作系统的发展更加引人注目。
操作系统(OS)是管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。
操作系统是控制其他程序运行,管理系统资源并为用户提供操作界面的系统软件的集合。
操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。
操作系统的型态非常多样,不同机器安装的OS可从简单到复杂,可从手机的嵌入式系统到超级电脑的大型操作系统。
目前微机上常见的操作系统有DOS、OS/2、UNIX、XENIX、LINUX、Windows、Netware等。
操作系统的不断提升对于计算机整体性能的提高有着至关重要的作用。
操作系统对于各个方面的要求都不得不提到效率的问题,计算机系统的处理机调度便变得尤为重要。
处理机调度的效率甚至可能成为提高计算机处理速度的瓶颈。
处理机调度就是对系统的资源做出合理的分配,因而,提高处理机的调度算法也变得尤为重要。
关键词:
操作系统处理机调度系统资源
目录
第1章绪论1
1.1处理机调度功能1
1.2处理机调度性能准则1
第2章系统需求分析3
2.1时间片轮转调度算法3
2.2短作业优先调度算法3
2.3动态优先级调度算法3
第3章系统总体设计4
3.1系统功能设计4
3.2时间片轮转法设计4
3.3短作业优先算法设计4
3.4动态优先级算法设计4
第4章系统实现6
4.1时间片轮转法实现6
4.2短作业优先算法实现9
4.3动态优先级算法实现12
第5章系统使用说明14
第6章课程设计总结15
6.1主要问题及解决办法15
6.2课程设计体会15
6.3自我评定15
参考文献16
第1章绪论
在多道程序设计系统中,内存中有多道程序运行,他们相互争夺处理机这一重要的资源。
处理机调度就是从就绪队列中,按照一定的算法选择一个进程并将处理机分配给它运行,以实现进程并发地执行。
1.1处理机调度功能
一般情况下,当占用处理机的进程因为某种请求得不到满足而不得不放弃CPU进入等待状态时,或者当时间片到,系统不得不将CPU分配给就绪队列中另一进程的时候,都要引起处理机调度。
除此之外,进程正常结束、中断处理等也可能引起处理机的调度。
因此,处理机调度是操作系统核心的重要组成部分,它的主要功能如下:
(1)记住进程的状态,如进程名称、指令计数器、程序状态寄存器以及所有通用寄存器等现场信息,将这些信息记录在相应的进程控制块中。
(2)根据一定的算法,决定哪个进程能获得处理机,以及占用多长时间。
(3)收回处理机,即正在执行的进程因为时间片用完或因为某种原因不能再执行的时候,保存该进程的现场,并收回处理机。
处理机调度的功能中,很重要的一项就是根据一定算法,从就绪队列中选出一个进程占用CPU运行。
可见,算法是处理机调度的关键。
1.2处理机调度性能准则
处理机调度,有许多不问的调度算法,不同的调度算法具有不同的特性。
因此,在介绍算法之前,先介绍衡量一个算法的基本准则。
衡量和比较调度算法性能优劣主要有一下几个因素:
(1)CPU利用率。
CPU是计算机系统中最重要的资源,所以应尽可能使CPU保持忙,使这一资源利用率最高。
(2)吞吐量。
CPU运行时表示系统正处于工作状态,工作量的大小是以每单位时间所完成的作业数目来描述的,这就叫吞吐量。
(3)周转时间。
指从作业提交到作业完成所经过的时间,包括作业等待,在就绪队列中排队,在处理机上运行以及进行输入/输出操作所花时间的总和。
(4)等待时间。
处理机调度算法实际上并不影响作业执行或输入/输出操作的时间,只影响作业在就绪队列中等待所花的时间。
因此,衡量一个调度算法优劣常常简单的考察等待时间。
(5)响应时间。
指从作业提交到系统作出响应所经过的时间。
在交互式系统中,作业的周转时间并不一定是最好的衡量准则,因此,常常使用另一种度量准则,即响应时间。
从用户观点看,响应时间应该快一点好,但这常常要牺牲系统资源利用率为代价。
第2章系统需求分析
FCFS比较有利于长作业SJF比较有利于短作业和优先级调度算法仅对某一类作业有利,相比之下,它能全面满足不同类型作业的需求,较好实现公平性与资源利用率之间的平衡。
对交互型作业,由于通常较短,这些作业在第一队列规定的时间片内完成,可使用户感到满意;对短批作业,开始时在第一队列中执行一个时间片就可完成,便可与交互型作业一样获得快速晌应,否则通常也仅需在第二、第三队列中各执行一个时间片即可完成,其周转时间仍较短;对长批作业,它们依次在第一至第n个队列中轮番执行,不必担心长时间得不到处理。
2.1时间片轮转调度算法(RR)
时间片轮转调度算法的基本思想是:
对就绪队列中的每一进程分配一个时间片,时间片的长度q一般从10ms-1100ms不等。
把就绪队列看成是一个环状结构,调度程序按时间片长度q轮流调度就绪队列中的每一进程,使每一进程都有机会获得相同长度的时间占用处理机运行。
时间片轮转调度算法在分时系统中,是一种既简单又有效的调度策略。
一个分时系统有许多终端。
终端用户在各自的终端设备上同时使用计算机。
如果某个终端用户的程序长时间地占用处理机,那么其他终端用户的请求就不能得到即时相应。
一般说来,终端用户提出请求后,能在几秒钟内得到响应也就感到满意了。
采用时间片轮转算法,可以使系统即时地相应各终端用户的请求。
时间片轮转调度算法的性能极大的依赖于时间片长度q的取值,如果时间片过大。
则RR算法就退化为FIFO算法了;反之,如果时间片过小,那么,处理机在各进程之间频繁转接,处理机时间开销变得很大,而提供给用户程序的时间将大大减少。
2.2短作业优先调度算法(SJF)
根据估计运行时间的长短将各个进程排成一个队列(估计运行时间最短的进程放在对首)每次运行将对首进程投入运行,直道运行结束,将此进程连接到完成队列的队尾。
然后,再将下一个对首投入运行,直到所有的进程都运行完毕。
2.3动态优先级调度算法
进程的动态优先级一般根据以下原则确定:
根据进程占用有CPU时间的长短来决定。
根据就绪进程等待CPU的时间长短来决定。
第3章系统总体设计
3.1系统功能设计
本系统实现了处理机调度。
总体分为3个模块:
时间片轮转法、短作业优先算法、动态优先级算法。
如图3-1所示。
图3-1系统功能模块图
3.2时间片轮转法设计
将所有进程按照先来先服务的规则排成一个队列,把CPU分配给就绪队列地对首进程并规定它的执行时间(称次时间为时间片)当时间片用完但并未执行时,剥夺该进程的执行将其连接到完成队列地对尾。
然后在将下一个进程投入运行,直到所有的运行完毕。
时间片轮转调度算法如图3-2所示。
3.3短作业优先算法设计
短作业优先(SJF,ShortestJobFirst)又称为“短进程优先”SPN(ShortestProcessNext);这是对FCFS算法的改进,其目标是减少平均周转时间。
根据估计运行时间的长短将各个进程排成一个队列(估计运行时间最短的进程放在对首)每次运行将对首进程投入运行,直道运行结束,将此进程连接到完成队列的队尾。
然后,再将下一个对首投入运行,直到所有的进程都运行完毕。
3.4动态优先级算法设计
动态优先级在时间片轮转法基础上完成。
将所有进程按照先来先服务的规则排成一个队列,把CPU分配给就绪队列地对首进程并规定它的执行时间(称次时间为时间片)当时间片用完但并未执行时,剥夺该进程的执行将其连接到完成队列地对尾。
然后在将下一个进程投入运行,直到所有的运行完毕。
每个进程的优先级为50-服务时间。
数字越小优先级越高,数字越大优先级则越低。
优先级随着等待时间的增长而增高(数字减小)。
图3-2时间片轮转法
第4章系统实现
4.1时间片轮转法实现
将系统中所有的就绪进程按照FCFS原则,排成一个队列。
然后轮流执行进程。
执行过程如图4-1所示。
图4-1时间片轮转法
时间片轮转法代码如下:
typedefstructnode
{charname[20];/*进程的名字*/
intprio;/*进程的优先级*/
intround;/*分配CPU的时间片*/
intcputime;/*CPU执行时间*/
intneedtime;/*进程执行所需要的时间*/
charstate;/*进程的状态,W——就绪态,R——执行态,F——完成态*/
intcount;/*记录执行的次数*/
structnode*next;/*链表指针*/
}PCB;
PCB*ready=NULL,*run=NULL,*finish=NULL;
voidClear(){ready=NULL;run=NULL;finish=NULL;}
voidGetFirst()/*取得第一个就绪队列节点*/
{run=ready;
if(ready!
=NULL)
{run->state='R';ready=ready->next;run->next=NULL;}
}
voidOutput()/*输出队列信息*/
{PCB*p;
p=ready;
printf("进程名\t优先级\t轮数\tcpu时间\t需要时间\t进程状态\t计数器\n");
while(p!
=NULL)
{printf("%s\t%d\t%d\t%d\t%d\t\t%c\t\t%d\n",p->nam
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 处理机 调度 程序 操作系统 课程设计 报告