进程调度例题解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 进程调度例题解析

@[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

相关文章
|
18天前
|
算法 调度 UED
深入理解操作系统:进程调度与优先级队列
【10月更文挑战第31天】在计算机科学的广阔天地中,操作系统扮演着枢纽的角色,它不仅管理着硬件资源,还为应用程序提供了运行的环境。本文将深入浅出地探讨操作系统的核心概念之一——进程调度,以及如何通过优先级队列来优化资源分配。我们将从基础理论出发,逐步过渡到实际应用,最终以代码示例巩固知识点,旨在为读者揭开操作系统高效管理的神秘面纱。
|
11天前
|
存储 安全 Linux
Golang的GMP调度模型与源码解析
【11月更文挑战第11天】GMP 调度模型是 Go 语言运行时系统的核心部分,用于高效管理和调度大量协程(goroutine)。它通过少量的操作系统线程(M)和逻辑处理器(P)来调度大量的轻量级协程(G),从而实现高性能的并发处理。GMP 模型通过本地队列和全局队列来减少锁竞争,提高调度效率。在 Go 源码中,`runtime.h` 文件定义了关键数据结构,`schedule()` 和 `findrunnable()` 函数实现了核心调度逻辑。通过深入研究 GMP 模型,可以更好地理解 Go 语言的并发机制。
|
15天前
|
算法 调度 UED
深入理解操作系统:进程管理与调度策略
【10月更文挑战第34天】本文旨在探讨操作系统中至关重要的一环——进程管理及其调度策略。我们将从基础概念入手,逐步揭示进程的生命周期、状态转换以及调度算法的核心原理。文章将通过浅显易懂的语言和具体实例,引导读者理解操作系统如何高效地管理和调度进程,保证系统资源的合理分配和利用。无论你是初学者还是有一定经验的开发者,这篇文章都能为你提供新的视角和深入的理解。
38 3
|
20天前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
57 4
|
21天前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
21天前
|
消息中间件 算法 调度
深入理解操作系统:进程管理与调度策略
【10月更文挑战第29天】本文将带领读者深入探讨操作系统中的核心组件之一——进程,并分析进程管理的重要性。我们将从进程的生命周期入手,逐步揭示进程状态转换、进程调度算法以及优先级调度等关键概念。通过理论讲解与代码演示相结合的方式,本文旨在为读者提供对进程调度机制的全面理解,从而帮助读者更好地掌握操作系统的精髓。
31 1
|
21天前
|
算法 调度 UED
深入理解操作系统中的进程调度
【10月更文挑战第29天】探索进程调度的奥秘,本文将带你深入了解在操作系统中如何管理和控制多个并发执行的程序。从简单的调度算法到复杂的多级反馈队列,我们将逐步揭示如何优化系统性能和提高资源利用率。准备好一起揭开进程调度的神秘面纱吧!
|
26天前
|
算法 大数据 Linux
深入理解操作系统之进程调度算法
【10月更文挑战第24天】本文旨在通过浅显易懂的语言,带领读者深入了解操作系统中的进程调度算法。我们将从进程的基本概念出发,逐步解析进程调度的目的、重要性以及常见的几种调度算法。文章将通过比喻和实例,使复杂的技术内容变得生动有趣,帮助读者建立对操作系统进程调度机制的清晰认识。最后,我们还将探讨这些调度算法在现代操作系统中的应用和发展趋势。
|
18天前
|
算法 Linux 调度
深入理解操作系统之进程调度
【10月更文挑战第31天】在操作系统的心脏跳动中,进程调度扮演着关键角色。本文将深入浅出地探讨进程调度的机制和策略,通过比喻和实例让读者轻松理解这一复杂主题。我们将一起探索不同类型的调度算法,并了解它们如何影响系统性能和用户体验。无论你是初学者还是资深开发者,这篇文章都将为你打开一扇理解操作系统深层工作机制的大门。
26 0
|
1月前
|
算法 调度 UED
深入理解操作系统的进程调度算法
【10月更文挑战第7天】在操作系统的心脏——内核中,进程调度算法扮演着至关重要的角色。它不仅影响系统的性能和用户体验,还直接关系到资源的合理分配。本文将通过浅显易懂的语言和生动的比喻,带你一探进程调度的秘密花园,从最简单的先来先服务到复杂的多级反馈队列,我们将一起见证算法如何在微观世界里编织宏观世界的和谐乐章。
下一篇
无影云桌面