操作系统原理 —— 操作系统什么时候会发生进程的调度(十二)

news2025/1/16 1:56:46

操作系统什么时候需要进程调度?

进程调度的层次中,有一个低级调度,就是按照某种算法从就绪队列中选择一个进程为其分配 CPU。 那操作系统会在什么时候触发进程调度呢?

在这里一共可以分为两大类:

当前运行的进程主动放弃

我们先来看看在进程主动放弃 CPU 会有哪几种情况:

1、当一个进程正常的执行完了,进程主动终止结束,在这个时候会触发进程调用,因为需要从就绪队列中再选择一个进程分配给 CPU 去执行。

2、当程序在运行过程当中,程序发生了异常,从而导致终止。虽然这里是程序发生了异常,但还是属于程序主动放弃。

3、当进程主动请求了某些资源,但是资源被其他进程占用了,所以进程会进入阻塞状态等待资源释放,在这个阻塞期间是需要释放 CPU 资源的,不能一直占用 CPU 不干活。

当前运行的进程被动放弃

有主动就会有被动的情况:

1、当前执行的进程的时间片用完了,被迫放弃 CPU 执行权,进程调度重新选择进程分配 CPU 。

2、当前进程在执行的过程中,检测到了中断信息,在这个时候有优先处理中断信息的,所以也是被迫下 CPU。

3、有更高优先级的进程进入就绪队列,调度器会优先让优先级更高的进程优先执行。

以上的情况,操作系统会进行低级的进程调度,那肯定在操作系统某些时刻,是不允许进程调度的,我们接着往下看。

操作系统什么时候不能进行进程调度?

1、在处理中断信号的过程当中,中断处理的过程比较复杂,与硬件密切相关,很难做到在中断处理的过程中进行进程切换。

2、进程在操作系统内核临界区中,不能进行进程调度,在这个小伙伴可能都不太理解,什么是操作系统内核临界区,

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

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

内核程序临界区:一般是用来访问某种内核数据结构的,比如一个进程,它要去访问就绪队列,但是就绪队列的数据是放在内核的,在这种情况下就称之为进程在操作系统内核临界区中。

3、在原子操作过程中(原语),原子操作是不可被中断的,要一气呵成。比如说进程状态的修改,就是原子操作,先要把进程中的 PCB 中的状态标识进行修改,并且把 PCB 放到相对应的队列当中。这个就是用原语来实现,不可被中断。

了解完在什么情况下会进行低级的进程调度,那进度调度有哪些方式?

进程调度的方式

非剥夺调度方式(非抢占式)

非剥夺时调用,又称之为非抢占方式,只允许进程主动放弃 CPU ,在运行过程中即便有紧急的任务,当前进程依旧会继续使用 CPU,一直到进程终止或主动要求进入阻塞状态。

这种方式实现比较简单,系统开销小,但是无法及时处理紧急任务,适合于早期的处理器系统。

剥夺调度方式(抢占式)

剥夺式调度又称之为抢占方式,当一个进程在 CPU 上执行的时候,如果有一个更重要的进程需要使用 CPU,则立即暂停正在执行的进程,将 CPU 分配给比较重要的进程执行。

这种方式可以优先处理更紧急的进程,也可以实现让各个进程按照时间片轮流执行的功能。适用于分时操作系统、实时操作系统。

进程的调度和切换有什么区别?

进程调度,指的是从就绪队列中,选中一个要运行的进程,分配给 CPU 执行,而进程切换是指一个进程先让出 CPU,然后由另一个进程占用 CPU 的过程。

进程的切换的过程需要做什么?

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

2、对新的进程各个数据的恢复。

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

由谁来控制进程调度?

在操作系统中,会有一个调度器,由调度器通过调度算法来决定让哪个进程上 CPU 执行,并且根据时间片大小来决定该进程执行多长时间。

调度算法在后面我们会详细的来讲解,在这里我们只需要知道就行。

调度器 在什么情况下会进行工作呢?

在操作系统:创建新的进程、退出进程、运行进程阻塞、I/O中断等情况,会触发调度器。

什么是闲逛进程?

当 CPU 没有任何进程任务需要处理的时候,CPU 它也不会闲着,操作系统会运行闲逛进程,让 CUP 去执行。

闲逛进程的特性一般是优先级最低,然后执行能耗低。

本章总结

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

04-微服务部署2023系列-centos安装gitlab

目的:为了将来的devops快速部署搭建自己的代码库,保证速度和私密性 前面01-03小节: 完成基本的服务器环境 centos_nginx_java_docker; 这个基础环境是将来集群中每台服务器的基本, 可以先打一个镜像备份。 阿里云的镜像备份比较简单。以后搭建新服务器时,以这个为基础,安…

JUC并发包详解AQS同步队列

一、AQS介绍 在JUC并发包中,AQS为其最关键的作用,全称为abstractQueuedSynchroinzed同步器,为信号量semaphore、同步锁的基础抽象类。 其中内部主要有二大块 state 共享资源,通过并发操作state修改改值为1,如果修改成…

《Linux 内核设计与实现》09. 内核同步介绍

共享资源之所以要防止并发访问,是因为如果多个执行线程同时访问和操作数据,就有可能发生各线程之间相互覆盖共享数据的情况,从而造成被访问的数据不一致状态。 临界区和竞争条件 临界区:访问和操作共享数据的代码段。原子操作&a…

键控流水灯

项目文件 文件 关于项目的内容知识点可以见专栏单片机原理及应用 的第四章 IO口编写 在电路图的基础上,编写可键控的流水灯程序。要求实现的功能为,K1是总开关,当K1首次按下时,流水灯由下往上流动;当K2按下时停止流动,且全部灯灭…

ASK,FSK和PSK

一、ASK,FSK和PSK 数字信号只有有限个离散值,使用数字信号对载波进行调制的方式称为键控(Keying),分为幅度键控(ASK)、频移键控(FSK)和相移键控(PSK)。 幅度键控可以通过乘法器和开关电路来实现,在数字信…

SpringBoot【开发实用篇】---- 配置高级

SpringBoot【开发实用篇】---- 配置高级 1. ConfigurationProperties2. 宽松绑定/松散绑定3. 常用计量单位绑定4. 校验5. 数据类型转换 进入开发实用篇第二章内容,配置高级,其实配置在基础篇讲了一部分,在运维实用篇讲了一部分,这…

离线安装Percona

前言 安装还是比较简单,这边简单进行记录一下。 版本差异 一、离线安装Percona 下载percona官网 去下载你需要对应的版本 jemalloc-3.6.0-1.el7.x86_64.rpm 需要单独下载 安装Percona 进入RPM安装文件目录,执行下面的脚本 yum localinstall *.rpm修改…

C语言CRC-16 X25格式校验函数

C语言CRC-16 X25格式校验函数 CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。基本的CRC-16校验算法实现,参考: C语言标准CRC-16校验函数。 不同应用规范通过对输…

聊聊Doris向量化执行引擎-过滤操作

聊聊Doris向量化执行引擎-过滤操作 Doris是开源的新一代极速MPP数据库,和StarRocks同源,采用全面向量化技术,充分利用CPU单核资源,将单核执行性能做到极致。本文,我们聊聊过滤操作是如何利用SIMD指令进行向量化操作。 …

PCB设计流程步骤中的注意事项

PCB中文名称为印制电路板,又称印刷线路板,几乎所有电子设备中都会应用到PCB。这种由贵金属制成的绿色电路板连接了设备的所有电气组件,并使其能够正常运行。PCB原理图是一个计划,是一个蓝图。它说明的并不是组件将专门放置在何处&…

【51单片机HC6800-EM3 V3.0】动态数码管显示,原理分析,连线操作

🎊专栏【51单片机】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 目录 🍔提醒 🎊连线图片 🎊原理…

基于SSM框架扶贫信息综合平台前台管理系统(spring+springmvc+mybatis+jsp+jquery+css)

一、项目简介 本项目是一套基于SSM框架扶贫信息综合平台前台管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试&am…

【刷题】138. 复制带随机指针的链表

138. 复制带随机指针的链表 一、题目描述二、示例三、实现 138. 复制带随机指针的链表 一、题目描述 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝…

Matlab论文插图绘制模板第90期—带权重的有向图/图论图/网络图

在之前的文章中,分享了Matlab有向图的绘制模板: 进一步,如果我们想标注有向图的每条边的权重,或者直接用线条的粗细来表示权重,该怎么操作呢? 先来看一下成品效果: 特别提示:本期内…

洛谷P5047 [Ynoi2019 模拟赛] Yuno loves sqrt technology II(离线区间逆序对+莫队二次离线)

题目 给你一个长为n(1<n<1e5)的序列a(0<ai<1e9)&#xff0c; m(1<m<1e5)次询问&#xff0c;每次查询一个区间[l,r]的逆序对数&#xff0c;可离线。 思路来源 登录 - 洛谷 三道经典分块题的更优复杂度解法&[Ynoi2019模拟赛]题解 - 博客 - OldDriverT…

(异或相消)猫猫数字异或和

E - Red Scarf (atcoder.jp) 刚入坑写的一道题被我拉出来对比分析了 我的思路&#xff1a; 垃圾运气选手凭借直觉乱搞猜出来的&#xff0c;没有思路。 题解思路&#xff1a; 由问题陈述中XOR的定义&#xff0c;我们可以看出计算3个或更多整数的XOR可以以任意顺序进行&#…

fastjson 代码执行 (CNVD-2017-02833)

漏洞存在原因 在fastjson<1.2.24版本中&#xff0c;在解析json的过程中&#xff0c;支持使用autoType来实例化某一个具体的类&#xff0c;并调用该类的set/get方法来访问属性。而在1.24<fastjson<1.2.48版本中后增加了反序列化白名单。 漏洞复现过程如下 在vulfocu…

解读ChatGPT中的RLHF

无论是 ChatGPT 还是 GPT-4&#xff0c;它们的核心技术机制之一都是基于人类反馈的强化学习&#xff08;Reinforcement Learning from Human Feedback&#xff0c;RLHF&#xff09;。这是大型语言模型生成领域的新训练范式&#xff0c;即以强化学习方式依据人类反馈优化语言模型…

打造属于自己的私人云笔记

打造属于自己的私人云笔记 前言效果环境标题第一步 网盘部署开启webDAV协议使用 前言 现在市面上支持私有化部署的云笔记选择不多&#xff0c;而且大多数只支持mackDown语法&#xff0c;不支持word等其他文件的编辑&#xff0c;基于此需求&#xff0c;能不能有一款笔记软件&am…

盛元广通高等级生物安全实验室(P3)管理系统

近年来&#xff0c;传染性疾病频发&#xff0c;给传染病防控和生物安全带来了前所未有的挑战&#xff0c;重点构建集生物安全三级实验室&#xff0c;统一布局科技研究和科技力量&#xff0c;成为重要传染病原和生物防范基础及应用基础研究的高地&#xff0c;高等级生物安全实验…