第四章 处理机调度【操作系统】

2024-01-07 14:52

本文主要是介绍第四章 处理机调度【操作系统】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.什么是分级调度

多道程序设计的关键是调度,处理机调度的目标是以满足系统目标的方式,把进程分配到一个或多个处理机中执行。根本上,调度属于队列管理方面的问题

一般处理机调度分为三级:

处理机调度分为三级:

作业调度:又称宏观调度或高级调度、长程调度:按一定的原则对外存上的大量后备作业进行选择,给选出的作业分配内存等必要的资源,并建立相应的进程。另外当作业执行完毕时,还负责回收系统资源

交换调度(中级调度):按给定的原则和策略,将处于外存交换区中的就绪状态的进程调入内存,或把处于内存阻塞状态的进程交换到外存交换区。主要涉及到内存管理与扩充,也归入内存管理部分

进程调度(微观调度或低级调度、短程调度):按某种策略和方法选取一个处于就绪状态的进程占用处理机。

线程调度:对于支持多线程的系统,按某种策略和方法选取一个处于就绪状态的线程占用处理机

2.试述作业调度的主要功能

(1)记录系统中各个作业的情况;(2)按照某种调度算法从后备作业队列中挑选作业;(3)为选中的作业分配内存和外设等资源;(4)为选中的作业建立相应的进程;(5)作业结束后进行善后处理工作。

3.试述进程调度的主要功能

(1)记录系统中所有进程的执行情况

进程调度

进程调度的具体功能可总结为如下几点:作为进程调度的准备,进程管理模块必须将系统中各进程的执行情况和状态特征记录在各进程的PCB表中。并且,根据各进程的状态特征和资源需求等、进程管理模块还将各进程的PCB表排成相应的队列并进行动态队列转接。进程调度模块通过PCB变化来掌握系统中存在的所有进程的执行情况和状态特征,并在适当的时机从就绪队列中选择出一个进程占据处理机。

(2)选择占有处理机的进程

进程调度的主要功能是按照一定的策略选择—个处于就绪状态的进程,使其获得处理机执行。根据不同的系统设计目的,有各种各样的选择策略,例如系统开销较少的静态优先数调度法,适合于分时系统的轮转法(Round RoLin)和多级互馈轮转法(Round Robin with Multip1e feedback)等。这些选择策略决定了调度算法的性能。

(3)进行进程上下文切换

—个进程的上下文(context)包括进程的状态、有关变量和数据结构的值、机器寄存器的值和PCB以及有关程序、数据等。一个进程的执行是在进程的上下文中执行。当正在执行的进程由于某种原因要让出处理机时,系统要做进程上下文切换,以使另一个进程得以执行。当进行上下文切换时点统要首先检查是否允许做上下文切换(在有些情况下,上下文切换是不允许的,例如系统正在执行某个不允许中断的原语时)。然后,系统要保留有关被切换进程的足够信息,以便以后切换回该进程时,顺利恢复该进程的执行。在系统保留了CPU现场之后,调度程序选择一个新的处于就绪状态的进程、并装配该进程的上下文,使CPU的控制权掌握在被选中进程手中。

4.进程调度的时机有哪些

(1)正在执行的进程执行完毕

(2)执行中进程自己调用阻塞原语将自己阻塞起来进入等待状态

(3)执行中进程调用了P原语操作,因为资源不足而被阻塞;或用V原语激活了等待资源的进程队列

(4)执行中进程提出了I/O请求后被阻塞

(5)正在执行的进程的CPU时间片已经用完

(6)在执行完系统调用,返回用户进程时,可以认为系统进程执行完毕,从而可调度选择一个新的用户进程执行

以上是对于CPU执行方式不可剥夺,对于CPU执行方式可剥夺(抢占)还有:

(7)就绪队列中的某进程的优先级高于当前执行进程的优先级

5.假设一个系统中有5个进程,它们处于就绪状态的时刻和估计运行时间如下表所示忽略I/O以及其它开销时间若分别按先来先服务,最短进程优先,最短剩余时间优先.响应比优先、时间片轮转(时间片=1)、非抢占多级反馈队列(第i级队列的时间片=2的i次方-1)以及抢占的多级反馈队列调度算法进行CPU调度请给出各进程的调度顺序、完成时间、周转时间

参考答案:

6.在单CPU和两台I/O设备(1,12) 的多6道程序设计环境下,同时投入3个作Job1Job2、Job3运行。这3个作业对CPU和I/O设备的使用顺序和时间如下所示:  Job1:12(30ms);CPU(10ms);11(30ms);CPU(10ms);12(20ms)Job2:11(20ms);CPU(20ms);12(40ms)Job3:CPU(30ms);11(20ms);CPU(10ms);1(10ms)假定CPU、11、12都能并行工作,Job1优先级最高,Job2次之,Job3最低,优先级高的作业可以抢占优先级低的作业的CPU但不可抢占11,12。求:

(1)3个作业从投入到完成分别需要的时间

(2)从投入到完成的CPU利用率

(3)I/0设备利用率

参考答案:

7。某进程调度程序采用基于优先数(priority)的调度策略,即选择优先数最小的进程运行,进程创建时由用户指定一个nice作为静态优先数。为了动态调整优先数,引入运行时间cpuTime和等待时间waitTime初值均为0。进程处于执行态时,cpuTime定时加1,且waitTime置0;进程处于就绪态时cpuTime置0waitTime定时加1。请回答下列问题1)若调度程序只将nice的值作为进程的优先数,即priority = nice,则可能会出现饥饿现象。为什么?2)使用nice,cpuTime和waitTime设计一种动态优先数计算方法,以避免产生饥饿现象并说明waitTime的作用

参考答案:

1)由于采用了静态优先数,当就绪队列中总有优先数较小的进程时,优先数较大的进程一直没有机会运行,因而会出现饥饿现象。

2)优先数 priority 的计算公式为 priority=nice+k1×cpuTime-k2×waiTime,其中k1>0k2>0,用于分别调整cpuTime waitTime priority 中所占的比例。waitTime 可使长时间等待的进程优先数减少,从而避免出现饥饿现象。

这篇关于第四章 处理机调度【操作系统】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/580277

相关文章

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

Linux操作系统 初识

在认识操作系统之前,我们首先来了解一下计算机的发展: 计算机的发展 世界上第一台计算机名叫埃尼阿克,诞生在1945年2月14日,用于军事用途。 后来因为计算机的优势和潜力巨大,计算机开始飞速发展,并产生了一个当时一直有效的定律:摩尔定律--当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。 那么相应的,计算机就会变得越来越快,越来越小型化。

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

Golang进程权限调度包runtime

关于 runtime 包几个方法: Gosched:让当前线程让出 cpu 以让其它线程运行,它不会挂起当前线程,因此当前线程未来会继续执行GOMAXPROCS:设置最大的可同时使用的 CPU 核数Goexit:退出当前 goroutine(但是defer语句会照常执行)NumGoroutine:返回正在执行和排队的任务总数GOOS:目标操作系统NumCPU:返回当前系统的 CPU 核数量 p

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

【CSS in Depth 2 精译_023】第四章概述 + 4.1 Flexbox 布局的基本原理

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结) 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位(已完结) 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 第三章 文档流与盒模型(已

1、简述linux操作系统启动流程

1、简述linux操作系统启动流程 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。开机时将ROM中的指令映射到RAM的低地址空间,CPU读取到这些指令,硬件的健康状况进行检查,按照BIOS中设置的启

操作系统是怎么为不同的程序分配所需的内存空间的

操作系统为不同的程序分配内存空间的过程涉及多个关键步骤,确保每个程序都有其所需的内存资源,同时避免程序之间的冲突。以下是操作系统如何为程序分配内存空间的详细过程: 1. 内存管理的基础概念 虚拟内存:现代操作系统使用虚拟内存机制来为程序提供隔离的内存空间。每个程序运行在其独立的虚拟地址空间中,这使得程序间的内存互不干扰。物理内存:实际的 RAM(随机存取存储器),由操作系统和硬件共同管理。虚拟

【Linux】探索进程优先级的奥秘,解锁进程的调度与切换

目录 进程优先级: 是什么? 为什么存在进程优先级的概念呢? Linux为什么调整优先级是要受限制的? PRI vs NICE Linux的调度与切换 概念准备: 那我们到底怎样完成进程的调度和切换呢? 区分:寄存器VS寄存器的内容 Linux实现进程调度的算法,需要考虑优先级,考虑进程饥饿问题,考虑效率问题。 解决优先级问题: 解决进程饥饿问题: 解决效率的问题:

操作系统安全保护

操作系统安全概述 概念:满足安全策略要求,具有响应安全机制及安全功符合特定安全标准,在一定约束条件下 能抵御常见网络安全威胁,保障自身安全运行及资源安全 安全等级:根据安全功能和安全保障要求分为 用户自主保护级  系统审计保护级 安全标记保护级 结构化保护级 访问验证保护级 操作系统作用: 负责计算系统的资源管理、支撑和控制各种应用程序运行,为用户提供计算机系统管理接口 是构成网络信息