【操作系统之进程调度算法习题】

操作系统之进程调度算法习题

1.第一题

在一个具有三道作业的批处理系统中,作业调度采用先来先服务(FCFS) 调度算法,进程调度采用
短作业优先调度算法。现有如下所示的作业序列,

image (1)

注意
1.具有三道作业的批处理系统指的是内存最多能有3个作业;
2.表格样式是考试时候的格式,练习时候也按这个格式练习各作业的周转时间分别是:不需要写
单位p1__ p2__ p3__ p4__ p5___

解答:

周转时间 = 作业完成时间 - 进入系统时间(进入输入井时间)

作业进入输入井时间运行时间进入内存时间开始时间完成时间周转时间
P18:00308:008:008:3030
P28:10158:108:459:0050
P38:2558:258:308:3510
P48:30208:309:009:2050
P58:35108:358:358:4510

解析:

由题意可知: 进入到内存后,采用的是短作业优先调度算法,并且题目没说是抢占式(抢占式就是强行停止当前正在运行的作业,去运行刚刚进来的更短运行时间的作业)。

明白好前提条件后,我们开始模拟作业运行过程

第一步:8:00这时只有P1在输入井当中,故此时运行P1,P1的开始时间就为8:00,因为P1需要完成30,故完成时间为8:30,得到P1的周转时间为:8:30 - 8:00 = 30

第二步: 在P1的运行过程中(8:00~8:30)之间,因为内存可以存放3个作业,P2和P3进入了输入井后直接进入了内存中等待P1运行完成。

第三步: 当P1刚刚运行完成,P1退出内存,P4刚好进入内存,此时内存中有P2、P3以及P4,按照短作业优先调度算法,此时应该是P3开始运行,所以P3的开始时间为8:30,需要运行5,故完成时间为8:35,完成时间减去进入系统时间得到P3的周转时间为8:35 - 8:25 = 10

第四步: 当P3运行完成,P3退出内存,这时P5刚刚恰好进入内存,此时内存中有P2、P4以及P5,按照短作业优先调度算法,此时应该是P5开始运行,所以P5的开始时间为8:35,需要运行10,故完成时间为8:45,完成时间减去进入系统时间得到P5的周转时间为8:45 - 8:35 = 10

第五步: 当P5运行完成,P5退出内存,此时内存中还有P2、P4,按照 短作业优先调度算法 ,此时应该是P2开始运行,所以P2的开始时间为8:45,需要运行15,故完成时间为9:00,完成时间减去进入系统时间得到P5的周转时间为9:00 - 8:10 = 50

第六步: 当P2运行完成,P2退出内存,此时内存中还有P4,此时P4开始运行,所以P4的开始时间为9:00,需要运行20,故完成时间为9:20,完成时间减去进入系统时间得到P4的周转时间为9:20 - 8:30 = 50

注意:周转时间 = 完成时间 - 进入系统时间,而不是完成时间 - 进入内存时间!!!



2. 第二题

image (2)

采用不抢占的高相应比优先调度算法进行调度,则各进程运行周转时间分别是:(不用单位)

p1__

p2__

p3__

p4__

p5__

解答:

响应比=作业周转时间/作业处理时间=(作业处理时间+作业等待时间)/作业处理时间=1+(作业等待时间/作业处理时间)

等待时间=最后一个的提交时间-该作业到达的时间
作业执行规则,响应比高的先执行
周转时间=完成时间-提交时间

0时刻只有P1,故先处理P1,因为是不抢占式,所以可以得出P1的周转时间:如下表格所示

进程到达时刻运行时间等待时间响应比周转时间
P101001+(0/10)=110-0=10
P211
P322
P431
P545


P1处理完成之后,已经到了10时刻,这时进程2、进程3、进程4已经进程5都已经到达。此时比较响应比来决定谁下一个运行。通过计算我们发现P2进程的响应比最高,故P2先运行,得到P2的周转时间

进程到达时刻运行时间等待时间响应比完成时间周转时间
P101001+(0/10)=11010-0=10
P21110-1=91+(9/1)=101111-1=10
P32210-2=81+(8/2)=5
P43110-3=71+(7/1)=8
P54510-4=61+(6/5)


P2处理完成之后,已经到了11时刻。此时比较响应比来决定谁下一个运行。通过计算我们发现P4进程的响应比最高,故P4先运行,得到P4的周转时间

进程到达时刻运行时间等待时间响应比完成时间周转时间
P101001+(0/10)=11010-0=10
P21110-1=91+(9/1)=101111-1=10
P32210-2=81+(9/2)=5.5
P43110-3=71+(8/1)=91212-3=9
P54510-4=61+(7/5)


P4处理完成之后,已经到了12时刻。此时比较响应比来决定谁下一个运行。通过计算我们发现P3进程的响应比最高,故P3先运行,得到P3的周转时间

进程到达时刻运行时间等待时间响应比完成时间周转时间
P101001+(0/10)=11010-0=10
P21110-1=91+(9/1)=101111-1=10
P32210-2=81+(10/2)=61414-2=12
P43110-3=71+(8/1)=91212-3=9
P54510-4=61+(8/5)


P3处理完成之后,只剩下P5进程了,故得到P5的周转时间

进程到达时刻运行时间等待时间响应比完成时间周转时间
P101001+(0/10)=11010-0=10
P21110-1=91+(9/1)=101111-1=10
P32210-2=81+(10/2)=61414-2=12
P43110-3=71+(8/1)=91212-3=9
P54510-4=61+(10/5)1919-4=15


3. 第三题

3.某多道程序设计系统中配有一台处理器CPU和两台输人输出设备I01, I02, 现有三个进程P1、P2、
P3同时存在,它们使用资源的先后顺序和占用时间分别是:
进程P1: l02 (30ms) ,CPU (5ms) ,I01 (30ms) ,CPU (10ms)
进程P2: I01 (20ms) ,CPU (2ms) ,I02 (40ms) 。
进程P3: CPU (30ms) ,I01 (20ms)
假设I0设备是不可抢占的,进程调度采用”最短剩余时间优先”调度算法,且忽略调度等所需时间,
进程P1、P2、P3从开始到完成所用的时间分别是多少ms?不需要写单位ms

P1___

P2___

P3___

解答:

由题意可知,进程调度采用的是最短剩余时间优先调度算法,何为最短剩余时间优先调度算法?

最短剩余时间优先调度算法 :简单来说,每当有进程加入就绪队列时就需要调度,如果新到达的进程剩余时间比当前运行的进程剩余时间更短,则由新进程抢占处理机,当前运行进程重新回到就绪队列。另外,当一个进程完成时也需要调度。

既然知道何为最短剩余时间优先调度算法,那我们开始解题:

第一步、从题目我们可以知道刚开始进程P1先使用IO2(30ms),P2使用IO1(20ms),P3使用CPU(30ms)

第二步、而在P3使用CPU(30ms)的过程中,

P2前20ms使用完了IO1,然后进程P2需要使用CPU(2ms),

根据最短剩余时间优先调度算法,P2使用CPU(2ms)< P3(30ms-20ms)

所以这时,CPU先给P2使用2ms,P3等待P2使用完后继续使用CPU,故P3使用完CPU时为32ms。

image-20221127172029780

第三步、如上图所示:上图为P1、P2 、P3这3个进程的执行过程。

当到30ms时,P1释放IO2资源,P1等待CPU资源

          P2开始使用IO2资源(40ms);

当到32ms时,P3释放CPU资源,P3使用IO1资源(20ms)

          P1使用CPU资源(5ms)


当到37ms时,P1释放CPU,P1等待IO1


当到52ms时,P3释放IO1,进程P3结束

         P1开始使用IO1资源(30ms)


当到70ms时,P2释放IO2,进程P2结束


当到82ms时,P1释放IO1,P1使用CPU(10ms)


当到92ms时,P1释放CPU,进程P1结束



  • 14
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
1. 实验目的 调度的实质是操作系统按照某种预定的策略来分配资源。进程调度的目的是分配CPU资源。由于进程调度程序执行的频率很高,因此调度算法的好坏直接影响到操作系统的性能。本实验的目的是编程模拟实现几种常用的进程调度算法,通过对几组进程分别使用不同的调度算法,计算进程的平均周转时间和平均带权周转时间,比较各种算法的性能优劣。 2. 实验原理 [1]. 进程调度算法描述 进程调度算法包括先来先服务调度算法、最短作业时间优先(抢占式和非抢占式)、最高响应比调度算法4种。(每个人必须做FCFS,然后在后面的三种中任选一种,即每个人必须做2种调度算法的模拟。) [2]. 衡量算法性能的参数 计算进程的平均周转时间和平均带权周转时间。 3. 实验内容 (1)编程实现本实验的程序,要求: [1]. 建立进程的进程控制块,进程控制块至少包括: a) 进程名称; b) 进程需要执行时间; c) 进入就绪队列时间; d) 进程执行开始时间 e) 进程执行结束时间 [2]. 编程实现调度算法。 [3]. 进程及相关信息的输入。这些信息可以直接从键盘上输入,也可以从文件读取。 [4]. 时间片与时间流逝的模拟。本实验需要对算法的执行计时,程序应该提供计算时间的方法。一种最简单的方法是使用键盘,比如每敲一次空格代表一个时间片的流逝。另一种方法是使用系统时钟。 [5]. 一组进程序列执行完毕,打印出结果信息。程序需要计算出每个进程的开始执行时间、结束时间、周转时间和带权周转时间,并为整个进程序列计算平均周转时间和平均带权周转时间。程序将计算结果按一定的格式显示在计算机屏幕上或输出到文件中。打印出进程调度顺序图。 [6]. 实现数据在磁盘文件上的存取功能。 (2)对下列就绪进程序列分别使用上面的几种算法进行调度,计算每种算法下的平均周转时间和平均带权周转时间。 进程号 到达时间 要求执行时间 0 0 1 1 1 35 2 2 10 3 3 5 4 6 9 5 7 21 6 9 35 7 11 23 8 12 42 9 13 1 10 14 7 11 20 5 12 23 3 13 24 22 14 25 31
广州大学操作系统课后的习题zyl主要涉及操作系统的基本概念、功能和特征。学习这些习题可以帮助我们更好地理解操作系统的工作原理和应用场景。 首先,操作系统是计算机系统中的核心软件,它负责管理和控制计算机硬件资源,并为用户和应用程序提供服务。习题zyl中可能会涉及到操作系统的功能,如进程管理、内存管理、文件系统管理等。我们需要学习各个管理模块的基本概念和功能。 其次,操作系统有着不同的特征和分类。习题zyl可能会要求我们了解操作系统的特征,如并发性、共享性、虚拟性、异步性等。我们需要对这些特征有深入的理解,并能够应用到具体的操作系统场景中。 此外,习题可能还会要求我们掌握操作系统的基本概念和术语,如进程、线程、调度算法、页表等。这些概念是操作系统的基础,也是我们理解和使用操作系统的前提。 为了更好地完成习题zyl,我们可以采取以下学习方法:首先,认真听讲课堂上的操作系统相关知识,掌握基本概念和原理。其次,多做一些操作系统实验和编程练习,提高对操作系统的实际应用能力。最后,多和同学、老师或者在线讨论区交流,共同解决习题中的难题。 通过认真学习和应用,我们将能够更好地掌握操作系统的基本知识和技能,为我们的学业和职业发展打下坚实的基础。同时,操作系统作为计算机科学的重要基础学科,对我们理解计算机原理和技术具有重要作用。因此,我们应该积极投入到操作系统习题的学习中,提高对操作系统的理解和应用水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值