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

这篇具有很好参考价值的文章主要介绍了【操作系统之进程调度算法习题】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.第一题

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

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

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

解答:

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

作业 进入输入井时间 运行时间 进入内存时间 开始时间 完成时间 周转时间
P1 8:00 30 8:00 8:00 8:30 30
P2 8:10 15 8:10 8:45 9:00 50
P3 8:25 5 8:25 8:30 8:35 10
P4 8:30 20 8:30 9:00 9:20 50
P5 8:35 10 8:35 8:35 8:45 10

解析:

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

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

第一步: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. 第二题

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

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

p1__

p2__

p3__

p4__

p5__

解答:

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

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

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

进程 到达时刻 运行时间 等待时间 响应比 周转时间
P1 0 10 0 1+(0/10)=1 10-0=10
P2 1 1
P3 2 2
P4 3 1
P5 4 5


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

进程 到达时刻 运行时间 等待时间 响应比 完成时间 周转时间
P1 0 10 0 1+(0/10)=1 10 10-0=10
P2 1 1 10-1=9 1+(9/1)=10 11 11-1=10
P3 2 2 10-2=8 1+(8/2)=5
P4 3 1 10-3=7 1+(7/1)=8
P5 4 5 10-4=6 1+(6/5)


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

进程 到达时刻 运行时间 等待时间 响应比 完成时间 周转时间
P1 0 10 0 1+(0/10)=1 10 10-0=10
P2 1 1 10-1=9 1+(9/1)=10 11 11-1=10
P3 2 2 10-2=8 1+(9/2)=5.5
P4 3 1 10-3=7 1+(8/1)=9 12 12-3=9
P5 4 5 10-4=6 1+(7/5)


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

进程 到达时刻 运行时间 等待时间 响应比 完成时间 周转时间
P1 0 10 0 1+(0/10)=1 10 10-0=10
P2 1 1 10-1=9 1+(9/1)=10 11 11-1=10
P3 2 2 10-2=8 1+(10/2)=6 14 14-2=12
P4 3 1 10-3=7 1+(8/1)=9 12 12-3=9
P5 4 5 10-4=6 1+(8/5)


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

进程 到达时刻 运行时间 等待时间 响应比 完成时间 周转时间
P1 0 10 0 1+(0/10)=1 10 10-0=10
P2 1 1 10-1=9 1+(9/1)=10 11 11-1=10
P3 2 2 10-2=8 1+(10/2)=6 14 14-2=12
P4 3 1 10-3=7 1+(8/1)=9 12 12-3=9
P5 4 5 10-4=6 1+(10/5) 19 19-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。

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

第三步、如上图所示:上图为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结束文章来源地址https://www.toymoban.com/news/detail-500271.html



到了这里,关于【操作系统之进程调度算法习题】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 计算机操作系统实验-进程调度模拟算法

    进程调度是处理机管理的核心内容。本实验要求用高级语言编写模拟进程调度程序,以 便加深理解有关进程控制快、进程队列等概念,并体会和了解优先数算法和时间片轮转算法 的具体实施办法。 1.设计进程控制块 PCB 的结构,通常应包括如下信息: 进程名、进程优先数(

    2024年02月05日
    浏览(46)
  • 【操作系统】期末速成之计算题:进程调度算法

    【操作系统】期末速成之计算题:进程调度算法

    先来先服务是非抢占式的算法 一个🌰 例题:各进程到达就绪队列的时间、需要的运行时间如下表所示。使用先来先服务调度算法,计算各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间。 进程 到达时间 运行时间 P1 0 7 P2 2 4

    2024年02月11日
    浏览(10)
  • 操作系统进程调度算法(c语言模拟实现)

    操作系统进程调度算法(c语言模拟实现)

            前言: 本文旨在分享如何使用c语言对操作系统中的部分进程调度算法进行模拟实现,以及算法描述的讲解, 完整代码放在文章末尾,欢迎大家自行拷贝调用 目录 常见的调度算法 数据结构 先来先服务调度算法 算法模拟思路: 算法模拟:  最短作业优先调度算法

    2024年02月06日
    浏览(16)
  • 操作系统进程调度算法的模拟实现(c语言版本)

    操作系统进程调度算法的模拟实现(c语言版本)

            前言: 本文旨在分享如何使用c语言对操作系统中的部分进程调度算法进行模拟实现,以及算法描述的讲解, 完整代码放在文章末尾,欢迎大家自行拷贝调用 目录 常见的调度算法 数据结构 先来先服务调度算法 算法模拟思路: 算法模拟:  最短作业优先调度算法

    2024年02月06日
    浏览(11)
  • 操作系统:实验一:进程调度实验——最高优先数优先的调度算法以及先来先服务算法 源码

    操作系统:实验一:进程调度实验——最高优先数优先的调度算法以及先来先服务算法 源码

    一、实验目的 (1)了解进程实体PCB结构; (2)理解进程不同状态和状态之间的转换过程; (3)掌握优先数的调度算法和先来先服务算法; 二、实验内容与要求 设计一个有 N个进程共行的进程调度程序 四、实验步骤 (1)实验设计 进程调度算法: 采用最高优先数优先的调

    2024年02月06日
    浏览(8)
  • 操作系统有关进程调度算法(含先来先服务,短作业优先,优先级调度算法和时间片轮转调度算法)

    操作系统有关进程调度算法(含先来先服务,短作业优先,优先级调度算法和时间片轮转调度算法)

    本文采用的进程调度算法有:先来先服务,短作业优先,优先级调度算法和时间片轮转调度算法。 针对这四种算法,我采用的是建立数组结构体,如: 先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。采用FCFS算法,每次从

    2024年02月03日
    浏览(15)
  • 【操作系统】c语言--进程调度算法(FCFS和SPN)

    【操作系统】c语言--进程调度算法(FCFS和SPN)

    创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡𖥦)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 🔥c++系列专栏:C/C++零基础到精通 🔥 给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ c语言内容💖:

    2024年02月12日
    浏览(11)
  • 操作系统进程线程(一)—进程线程协程区别、多进程多线程、进程调度算法、进程线程通信

    操作系统进程线程(一)—进程线程协程区别、多进程多线程、进程调度算法、进程线程通信

    定义上 进程: 资源分配和拥有 的基本单位,是调度的基本单位。 运行一个可执行程序会创建一个或者多个进程;进程就是运行起来的程序 线程:程序 执行 基本单位,轻量级进程。 每个进程中都有唯一的主线程 ,主线程和进程是相互依赖的关系。 协程: 用户态 的轻量级

    2024年02月01日
    浏览(48)
  • 操作系统理论:Linux进程与进程状态(进程调度的大O(1)算法数据结构模型)

    操作系统理论:Linux进程与进程状态(进程调度的大O(1)算法数据结构模型)

    冯诺依曼体系的计算机在运行时,内存中会预加载许多程序(数据+运算指令集),然而CPU 同一时刻只能执行一个程序 (多个程序竞争CPU资源),此时就需要操作系统 对内存中的诸多程序进行管理 ,让CPU资源得到合理的分配,于是便有了进程的概念: 进程:描述程序的结构体对象( PCB结构体

    2024年02月15日
    浏览(12)
  • 实现时间片轮转算法(模拟)计算机操作系统实验5:进程调度算法模拟-RR

    实现时间片轮转算法(模拟)计算机操作系统实验5:进程调度算法模拟-RR

    实验内容: 实现时间片轮转算法(模拟),要求如下: 1、用到的数据结构 /* PCB / struct PCB { pid_t pid;//进程 PID int state; //状态信息,1 表示正在运行,0 表示暂停,-1 表示结束 unsigned long runned_time;//已运行时间 unsigned long need_running_time;//剩余运行时间 }; / PCB集合 */ struct PCB pcb[TOT

    2024年02月04日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包