2.2_2 进程调度的时机、切换与过程、调度方式

文章目录

  • 2.2_2 进程调度的时机、切换与过程、调度方式
    • (一)进程调度的时机
    • (二)进程调度的方式
    • (三)进程的切换与过程
  • 总结

2.2_2 进程调度的时机、切换与过程、调度方式

image-20240229144307469

(一)进程调度的时机

  进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机。

image-20240229144423868


概念区分:操作系统内核程序临界区 & 临界区

  进程在操作系统内核程序临界区不能进行调度与切换。 【对】

  进程处于临界区不能进行处理机调度。 【错】

  临界资源:一个时间段内只允许一个进程使用的资源。各进程需要互斥地访问临界资源。

  临界区:访问临界资源的那段代码。

  内核程序临界区一般是用来访问某种内核数据结构的,比如进程的就绪队列(由各就绪进程的PCB组成)。

image-20240229150341382

  已知,要想进行进程调度,就需要对就绪队列进行操作(挑选一个进程为它分配处理机)。而对就绪队列的访问,属于操作系统内核程序临界区。

  由于临界资源在一个时间段内只允许一个进程使用、需要互斥访问的特性,所以一个程序使用前会先将该资源上锁、使用完毕才会解锁。

  因此,如果还没退出临界区(还没解锁),就想要进行进程调度,此时就无法顺利进行进程调度。(因为进程调度需要操作就绪队列,而就绪队列还没退出临界区、还没解锁)

  可见,如果内核程序临界区访问的临界资源不尽快释放的话,极有可能影响到操作系统内核的其他管理工作(比如进程切换)。因此在访问内核程序临界区期间不能进行调度与切换。因为我们想要让内核程序临界区的代码尽可能快的执行完成,从而尽可能快的把它上的锁给解除,只有这样,其他的操作系统内核才能有序的进行管理工作。

image-20240229150404275

  打印机也是一种临界资源,需要互斥地访问,在打印机打印完成之前,进程一直处于临界区内,临界资源不会解锁。

  但打印机是一种慢速的I/O设备,此时如果一直不允许进程调度的话,进程就要干等着打印机打印结束,就会导致CPU一直空闲。

  普通临界区访问的临界资源不会直接影响操作系统内核的管理工作。因此在访问普通临界区时可以进行调度与切换。

(二)进程调度的方式

  进程调度的时机,有:当前运行的进程主动放弃处理机、当前运行的进程被动放弃处理机。

  有的系统中,只允许进程主动放弃处理机;而有的系统中,进程可以主动放弃处理机,但当有更紧急的任务需要处理时,也会强行剥夺处理机(被动放弃)。

  非剥夺调度方式,又称非抢占方式。即,只允许进程主动放弃处理机。在运行过程中即使有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。

  实现简单,系统开销小但是无法及时处理紧急任务,适合于早期的批处理系统。

  剥夺调度方式,又称抢占方式。当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程。

  可以优先处理更紧急的进程,也可实现让各进程按时间片轮流执行的功能(通过时钟中断)。适合于分时操作系统、实时操作系统。

(三)进程的切换与过程

  “狭义的进程调度”与“进程切换”的区别:

  狭义的进程调度指的是从就绪队列中选中一个要运行的进程。(这个进程可以是刚刚被暂停执行的进程,也可能是另一个进程。后一种情况就需要进程切换

  进程切换是指一个进程让出处理机,由另一个进程占用处理机的过程。

  广义的进程调度包含了选择一个进程和进程切换两个步骤。

  因此,在读题的时候,对于“进程调度”,如果出现了两种不同的含义,不要觉得奇怪,自己能够分辨即可。

  进程切换的过程主要完成了:

  1.对原来运行进程各种数据的保存

  2.对新的进程各种数据的恢复

  如:程序计数器、程序状态字、各种数据寄存器等处理机现场信息,这些信息一般保存在进程控制块。

  注意:进程切换是有代价的,因此如果过于频繁地进行进程调度、切换,必然会使整个系统的效率降低,使系统大部分时间都花在了进程切换上,而真正用于执行进程的时间减少。

总结

image-20240301151207932

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/421192.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt 自定义长条进度条(类似播放器进度条)

1.运行界面 2.步骤 其实很简单。 2.1绘制底图圆角矩形 2.2绘制播放进度圆角矩形 参考&#xff1a;painter绘图 3.源码 #pragma once#include <QWidget> #include <QLabel> #include <QHBoxLayout> #include <QMouseEvent> #include <QDebug&g…

助力智能化农田作物除草,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建农田作物场景下玉米苗、杂草检测识别分析系统

在我们前面的系列博文中&#xff0c;关于田间作物场景下的作物、杂草检测已经有过相关的开发实践了&#xff0c;结合智能化的设备可以实现只能除草等操作&#xff0c;玉米作物场景下的杂草检测我们则少有涉及&#xff0c;这里本文的主要目的就是想要基于DETR模型来开发构建玉米…

26、Qt调用.py文件中的函数

一、开发环境 Qt5.12.0 Python3.7.8 64bit 二、使用 新建一个Qt项目&#xff0c;右击项目名称&#xff0c;选择“添加库” 选择“外部库”&#xff0c;点击“下一步” 点击“浏览”&#xff0c;选择Python安装目录下的libs文件夹中的“python37.lib”文件&#xff0c;点击“下…

文献笔记:LINE: Large-scale Information Network Embedding

paper 看完√ code复现ing https://arxiv.org/pdf/1503.03578v1.pdf 本文研究了将非常大的信息网络嵌入到低维向量空间的问题&#xff0c;这在可视化、节点分类和链路预测等许多任务中都很有用。大多数现有的图形嵌入方法无法扩展到通常包含数百万个节点的现实世界信息网络。…

java 正则表达式介绍

Java正则表达式是一种强大的文本处理工具&#xff0c;它允许你进行模式匹配、搜索和文本操作。正则表达式提供了一种简洁、灵活的方式来处理字符串&#xff0c;可以用于各种应用场景&#xff0c;如数据验证、文本解析、搜索和替换等。 正则表达式的基础知识 正则表达式…

物联网主机:为智能交通赋能

物联网&#xff08;IoT&#xff09;技术的发展为智能交通领域带来了许多创新的解决方案。而在物联网应用中&#xff0c;物联网主机起着关键的作用。本文将为大家介绍一款名为E6000的物联网主机&#xff0c;它是一种多协议、多接口的物联网主机&#xff0c;为智能交通系统的建设…

高级语言期末2009级A卷(计算机学院)

1.编写bool函数&#xff0c;判定给定的正整数n&#xff0c;M是否满足&#xff1a;M为n的质因数&#xff08;能整除n的质数&#xff09; #include <stdio.h> #include <stdbool.h> #include <math.h>bool Isprime(int n) {if(n<1)return false;for(int i2…

spring boot整合cache使用memcached 优化将配置信息放入 application中管理

上文 spring boot整合cache使用memcached 我们简单做了个 spring boot 整合cache 使用 memcached 缓存的案例 但 我们是将地址这类信息 放在了config 目录下的一个 配置类中了 这样 可维护性肯定是很低的 其实 memcached 是有一系列配置的 我们还是正确将 配置信息 写进 appli…

基于springboot+vue的美食推荐商城

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

图表背后的智慧:办公场景中的数据可视化革新

在现代办公场景中&#xff0c;数据可视化的应用已经成为提高效率、推动创新的得力工具。无论是管理层还是普通员工&#xff0c;都能从数据可视化中受益匪浅。下面我就以可视化从业者的角度&#xff0c;简单聊聊这个话题。 首先&#xff0c;数据可视化提升了数据的易读性与理解性…

【重温设计模式】装饰模式及其Java示例

装饰模式的介绍 在众多设计模式中&#xff0c;有一种叫做装饰模式&#xff0c;它以一种独特的方式赋予了代码更多的灵活性。 装饰模式是一种结构型设计模式&#xff0c;它允许我们在运行时动态地为对象添加新的行为。这就像是我们在装饰一个房间时&#xff0c;可以随意添加或更…

CentOS系统上安装幻兽帕鲁/Palworld服务端的详细步骤是什么?

CentOS系统上安装幻兽帕鲁/Palworld服务端的详细步骤是什么&#xff1f; 首先&#xff0c;需要确认Docker是否已经安装。如果未安装&#xff0c;则需要进行安装。接下来&#xff0c;运行Docker容器。这一步是为了创建一个可以运行幻兽帕鲁服务端的环境。然后&#xff0c;在容器…

bootstrap-table 多层组合表头

如下图所示的二层组合表头 来人&#xff0c;上代码&#xff01; table.bootstrapTable({url: $.fn.bootstrapTable.defaults.extend.index_url,pk: id,sortName: id,search: false,showToggle: false,showColumns: false,showExport: false, commonSearch: false,columns: [[…

ElasticSearch之分布式模型介绍,选主,脑裂

写在前面 本文看下es分布式模型相关内容。 1&#xff1a;分布式模型 1.1&#xff1a;分布式特征 支持水平扩展&#xff0c;可以存储PB级别数据&#xff0c;每个就能都有自己唯一的名称,默认名称时elasticsearch&#xff0c;可以通过配置文件&#xff0c;如cluster.name: my…

使用 Docker 部署 Fiora 在线聊天室平台

一、Fiora 介绍 Fiora 简介 Fiora 是一款开源免费的在线聊天系统。 GitHub&#xff1a;https://github.com/yinxin630/fiora Fiora 功能 注册账号并登录&#xff0c;可以长久保存你的数据加入现有群组或者创建自己的群组&#xff0c;来和大家交流和任意人私聊&#xff0c;并添…

Cascading risk assessment in power-communication interdependent networks论文导读

Cascading risk assessment in power-communication interdependent networks 前言碎碎念 新学期了&#xff0c;兜兜转转绕了一圈&#xff0c;看了两篇交通流预测的内容&#xff0c;不过我的主要研究方向不在于此。最近和一些老师沟通交流&#xff0c;感觉思路稍微清晰了一些…

雷龙CS SD NAND(贴片式TF卡)测评体验

前段时间有幸免费得到了雷龙出品的贴片式的TF卡的芯片及转接板&#xff0c;两片贴片式nand芯片&#xff0b;一个转接板&#xff0c;一种一个已让官方焊接完好&#xff1b;如下图所示&#xff1a; 正面&#xff1a; 背面&#xff1a; 通过转接板&#xff0c;可以将CS SD NAND(贴…

好视通视频会议系统存在任意文件读取漏洞复现 [附POC]

漏洞简介 好视通视频会议是由深圳市华视瑞通信息技术有限公司开发&#xff0c;其在国内率先推出了3G互联网视频会议&#xff0c;并成功应用于SAAS领域。 资产 FOFA:app"好视通-视频会议" POC GET /register/toDownload.do?fileName../../../../../../../../../.…

NSGA II 算法讲解(毕业设计)(三)

目录 前言 1、NSGA II算法介绍 2、Pareto最优概念 2.1 Pareto最优&#xff0c;Pareto前延 2.2 支配关系 3、NSCA-II与NSCA相比&#xff0c;优势 4、NSGA II流程逻辑 5、拥挤度排序 6、新子代生成 前言 本篇文章介绍的是我的毕业设计&#xff0c;我将C语言将其实现。本…

深入理解volatile关键字

一、简介 volatile是 Java提供的一种轻量级的同步机制。Java包含两种内在的同步机制&#xff1a;同步块&#xff08;或方法&#xff09;和 volatile 变量相比于synchronized (synchronized常称为重量级&#xff09;volatile是更轻量级的&#xff0c;因为它不会引起线程上下文的…