操作系统课程设计通⽤处理机调度演⽰程序设计(附源码、设计报告)
⽂章⽬录
⼀、课程题⽬与原理
题⽬:
设计项⽬⼀:通⽤处理机调度演⽰程序
内容:
设计⼀个模拟处理机调度算法,以巩固和加深处理机调度的概念。
要求:
1.进程调度算法包括:时间⽚轮转算法、先来先服务算法、短作业优先算法、静态优先权优先调度算法、⾼响应⽐调度算法。
2.每⼀个进程有⼀个 PCB,其内容可以根据具体情况设定。
3.进程数、进⼊内存时间、要求服务时间、作业⼤⼩、优先级等均可以在界⾯上设定。
4.可读取样例数据(要求存放在外部⽂件中)进⾏进程数、进⼊内存时间、时间⽚长度、作业⼤⼩、进程优先级的初始化。
5.可以在运⾏中显⽰各进程的状态:就绪、执⾏(由于不要求设置互斥资源与进程间的同步关系, 故只有两种状态)
6.有性能⽐较功能,可⽐较同⼀组数据在不同调度算法下的平均周转时间。
原理:
1.1 概述
在多道程序环境下,主存中有着多个进程,其数⽬往往多于处理机数⽬。这就要求系统能按某种算法,动态地把处理机分配给就绪队列中的⼀个进程,使之执⾏。分配处理机的任务是由处理机调度程序完成的。由于处理机是最重要的计算机资源,提⾼处理机的利⽤率以及改善系统性能(吞吐量、响应时间),在很⼤程度上取决于处理机调度性能的好坏。处理机调度就是从就绪队列中,按照⼀定的算法选择⼀个进程并将处理机分配给它运⾏,以实现进程并发地执⾏。
1.2 调度功能
⼀般情况下,当占⽤处理机的进程因为某种请求得不到满⾜⽽不得不放弃CPU进⼊等待状态时,或者当时间⽚到,系统不得不将CPU分配给就绪队列中另⼀进程的时候,都要引起处理机调度。除此之外,进程正常结束、中断处理等也可能引起处理机的调度。因此,处理机调度是操作系统核⼼的重要组成部分,它的主要功能如下:
记住进程的状态,如进程名称、指令计数器、程序状态寄存器以及所有通⽤寄存器等现场信息,将这些信息记录在相应的进程控制块中。
根据⼀定的算法,决定哪个进程能获得处理机,以及占⽤多长时间。
收回处理机,即正在执⾏的进程因为时间⽚⽤完或因为某种原因不能再执⾏的时候,保存该进程的现场,并收回处理机。
1.3 调度算法
在多道程序系统中,⼀个作业被提交后必须经过处理机调度后,⽅能获得处理机执⾏。对于批量型作业⽽⾔,通常需要经历作业调度和进程调度两个过程后⽅能获得处理机执⾏。作业调度是对成批进⼊系统的⽤户作业,根据作业控制块的信息,按⼀定的策略选取若⼲个作业使得它们可以去获得处理器运⾏的⼀项⼯作。⽽对每个⽤户来说总希望⾃⼰的作业的周转时间是最⼩的,因此可以采⽤:先来先
服务算法、时间⽚轮转算法、短作业优先算法、静态优先权调度算法、⾼响应⽐调度算法等五种算法降低周转时间。
先来先服务算法(FCFS):每次调度是从就绪队列中选择⼀个最先进⼊该队列的进程为之分配处理机,使之投⼊运⾏。该进程⼀直运⾏到完成或发⽣某事件⽽阻塞后才放弃处理机。
时间⽚轮转算法(RR):系统将所有的就绪进程按先来先服务的原则排成⼀个队列,每次调度时,把CPU 分配给队⾸进程,并令其执⾏⼀个时间⽚。当执⾏的时间⽚⽤完时,由⼀个计时器发出时钟中断请求,调度程序便据此信号来停⽌该进程的执⾏,并将它送往就绪队列的末尾,然后,再把处理机分配给就绪队列中新的队⾸进程,同时也让它执⾏⼀个时间⽚。电影源代码人物介绍
短作业优先算法(SJF):从后备队列中选择⼀个或若⼲个估计运⾏时间最短的进程,将它们调⼊内存运⾏。
静态优先权调度算法(PF):把处理机分配给就绪队列中优先权最⾼的进程。
⾼响应⽐调度算法(HRRN):把处理机分配给就绪队列中响应⽐最⾼的进程
⼆、设计思路
根据功能要求,主界⾯需要如下⼏个板块:显⽰进程信息模块(进程号、进⼊时间、服务时间、优先级、响应时间、结束时间、状态)、显⽰调度算法模块(先来先服务算法、时间⽚轮转算法、短作业优先算法、静态优先权调度算法、⾼响应⽐调度算法)、显⽰运⾏时间模块(计时器)、显⽰各个算法的平均周转时间模块和按钮模块(开始、清空、添加、读取⽂件)。⼤概思路如图所⽰:
三、结果展⽰
源码与环境环境:
编译器版本:Qt 5.10.0
运⾏环境:Linux Ubuntu 20.0.4

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。