进程调度例题解析

简介: 进程调度例题解析

@[toc]

例题1 一个四道作业的操作系统中,设在一段时间内先后到达6个作业,它们的提交时间和运行时间见表

作业号 提交时间 运行时间
JOB1 8:00 60
JOB2 8:20 35
JOB3 8:25 20
JOB4 8:30 25
JOB5 8:35 5
JOB6 8:40 10

系统采用最短作业优先的调度算法,作业被调度进入运行后不再退出,但当一作业进入运行时,可以调整运行的优先次序。

1.按照所选择的调度算法,请分别给出上述6个作业执行时间次序

8:00 JOB1进入 当前无作业使用处理机 JOB1进入使用 运行到9:00
9:00 JOB2-6均已进入,按照运行时间长短,那么JOB5先运行,接着是JOB6,JOB3,JOB4,JOB2

则有下表

作业号 提交时间 运行时间 开始时刻 完成时刻 周转时间
JOB1 8:00 60 8:00 9:00 60
JOB2 8:20 35 10:00 10:35 135
JOB3 8:25 20 9:15 9:35 70
JOB4 8:30 25 9:35 10:00 90
JOB5 8:35 5 9:00 9:05 30
JOB6 8:40 10 9:05 9:15 35

2.计算在上述调度算法下作业的平均周转时间

周转时间 = 完成时间-提交时间

平均周转时间 = (60+135+70+90+30+35)/ 6 = 70

例题2 一个具有两道作业的批处理系统,作业调度采用短作业优先的调度算法,进程调度采用以优先数为基础的抢占式调度算法,如下表的作业序列(表中所有作业优先数即为进程优先数,数值越小优先级越高)

作业名 到达时间 估计运算时间 优先数
A 10:00 40 5
B 10:20 30 3
C 10:30 50 4
D 10:50 20 6

1.列出所有作业进入内存时间及结束时间

10:00 A先进入,当前处理机无任务,A开始使用处理机
10:20 B进入,B的优先级比A高,所以B进入,此时A已经运转20分钟
10:30 C来到,C的时间最长,等待,此时B运转10分钟
10:50 D来到,此时B已运转30分钟,B已结束,D进入内存,A开始运转
11:10 A结束运转,C进入内存,C比D优先级高,C运行
12:00 C结束运行,D运行
12:20 D结束

则有下表

作业号 提交时间 运行时间 开始时刻 完成时刻 周转时间
A 10:00 40 10:00 11:10 70
B 10:20 30 10:20 10:50 30
C 10:30 50 11:10 12:00 90
D 10:50 20 12:00 12:20 90

2.计算平均周转时间

平均周转时间 = (70+30+90+90)/4 = 70

例题3 有5个批处理作业(A,B,C,D,E)几乎同时到达一个计算中心,估计的运行时间分别为2,4,6,8,10分钟,它们的优先级数分别为1,2,3,4,5(1为最低优先级),对下面的每种调度算法,分别计算作业的平均周转时间

1.最高优先级优先

E 10 D 18 C 24 B 28 A 30

平均周转时间 = (10+18+24+28+30)/5 = 110/5 = 22

2.时间片轮转(时间片为两分钟)

A 2 B 4 C 6 D 8 E 10 B 12 C 14 D 16 E 18 C 20 D 22 E 24 D 26 E 28 E 30

平均周转时间 = (2+12+20+26+30)/ 5 = 90/5 = 18

3.FIFO(作业到达顺序为C、D、B、E、A)

C 6 D 14 B 18 E 28 A 30

平均周转时间 = (6+14+18+28+30)/ 5 = 96/5 = 19.2

4.短作业优先

A 2 B 6 C 12 D 20 E 30

平均周转时间 = (2+6+12+20+30)/5 = 70/5 = 14

相关文章
|
2月前
|
对于Linux的进程概念以及进程状态的理解和解析
现在,我们已经了解了Linux进程的基础知识和进程状态的理解了。这就像我们理解了城市中行人的行走和行为模式!希望这个形象的例子能帮助我们更好地理解这个重要的概念,并在实际应用中发挥作用。
75 20
Linux2.6内核进程调度队列
本篇文章是Linux进程系列中的最后一篇文章,本来是想放在上一篇文章的结尾的,但是想了想还是单独写一篇文章吧,虽然说这部分内容是比较难的,所有一般来说是简单的提及带过的,但是为了让大家对进程有更深的理解与认识,还是看了一些别人的文章,然后学习了学习,然后对此做了总结,尽可能详细的介绍明白。最后推荐一篇文章Linux的进程优先级 NI 和 PR - 简书。
43 0
深入理解操作系统:进程调度与优先级队列
【10月更文挑战第31天】在计算机科学的广阔天地中,操作系统扮演着枢纽的角色,它不仅管理着硬件资源,还为应用程序提供了运行的环境。本文将深入浅出地探讨操作系统的核心概念之一——进程调度,以及如何通过优先级队列来优化资源分配。我们将从基础理论出发,逐步过渡到实际应用,最终以代码示例巩固知识点,旨在为读者揭开操作系统高效管理的神秘面纱。
深入理解操作系统:进程调度的奥秘
在数字世界的心脏跳动着的是操作系统,它如同一个无形的指挥官,协调着每一个程序和进程。本文将揭开操作系统中进程调度的神秘面纱,带你领略时间片轮转、优先级调度等策略背后的智慧。从理论到实践,我们将一起探索如何通过代码示例来模拟简单的进程调度,从而更深刻地理解这一核心机制。准备好跟随我的步伐,一起走进操作系统的世界吧!
|
7月前
|
核心概念解析:进程与线程的对比分析
在操作系统和计算机编程领域,进程和线程是两个基本而核心的概念。它们是程序执行和资源管理的基础,但它们之间存在显著的差异。本文将深入探讨进程与线程的区别,并分析它们在现代软件开发中的应用和重要性。
233 4
深入理解操作系统:进程管理与调度
操作系统是计算机系统的核心,负责管理和控制硬件资源、提供用户接口以及执行程序。其中,进程管理是操作系统的重要组成部分,它涉及到进程的创建、调度、同步和通信等方面。本文将深入探讨进程管理的基本概念、进程调度算法以及进程间的同步和通信机制。通过本文的学习,读者将能够更好地理解操作系统的工作原理,并掌握进程管理的基本技能。
123 11
深入理解操作系统:进程管理与调度策略
操作系统作为计算机系统的核心,其进程管理和调度策略对于系统性能和用户体验至关重要。本文将通过直观的代码示例和浅显易懂的语言,带领读者了解操作系统如何有效管理进程以及常见的进程调度算法。我们将从进程的基本概念出发,逐步深入到进程状态、进程控制块(PCB)的作用,最后探讨不同的调度算法及其对系统性能的影响。无论您是初学者还是有一定基础的开发者,都能从中获得有价值的信息。
深入理解操作系统:进程管理与调度
在数字世界的心脏,操作系统扮演着至关重要的角色。它如同一位精明的指挥家,协调着硬件资源和软件需求之间的和谐乐章。本文将带你走进操作系统的核心,探索进程管理的艺术和调度策略的智慧。你将了解到进程是如何创建、执行和消亡的,以及操作系统如何巧妙地决定哪个进程应该在何时获得CPU的青睐。让我们一起揭开操作系统神秘的面纱,发现那些隐藏在日常计算背后的精妙机制。
深入理解操作系统之进程调度
在计算机科学领域,操作系统是核心的一环,它管理着计算机硬件资源,并提供接口供上层软件运行。本文将通过深入浅出的方式,探讨操作系统中至关重要的一个概念——进程调度。我们将从基础理论出发,逐步展开讲解进程调度的原理和实现,并配以实际代码示例,旨在帮助读者更好地理解和掌握这一主题。文章不仅适合初学者建立基础,也适合有一定基础的开发者深化理解。
[JavaEE]———进程、进程的数据结构、进程的调度
操作系统,进程任务,PCB,PID,内存指针,文件描述符表,进程的调度,并发编程,状态,优先级,记账信息,上下文

推荐镜像

更多
  • DNS
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等