操作系统 ---- 调度器、闲逛进程

news2024/9/21 4:55:07

 一、调度器/调度程序(scheduler)


2、③由调度程序引起,调度程序决定:

  • 让谁运行?――调度算法
  • 运行多长时间?―一时间片大小

调度时机――什么事件会触发“调度程序”?

  • 创建新进程
  • 进程退出
  • 运行进程阻塞
  • I/O中断发生(可能唤醒某些阻塞进程)
  • 非抢占式调度策略,只有运行进程阻塞或退出才触发调度程序工作
  • 抢占式调度策略,每个时钟中断或k个时钟中断会触发调度程序工作

调度器(Scheduler)或调度程序(Scheduling Program)是操作系统中的一个核心组件,负责管理系统中的进程或线程,以实现多任务处理。它的主要职责是按照一定的策略决定哪个进程或线程可以获得CPU执行时间,如何分配系统资源,从而保证系统的高效运行和响应。

调度器的主要功能

  1. 分配CPU时间:调度器决定当前哪个进程或线程可以获得CPU执行权。它通过调度算法来选择优先执行的任务,并切换任务上下文。

  2. 进程/线程的状态切换:调度器负责将进程或线程从一种状态(如就绪态运行态等待态)切换到另一种状态。常见的状态包括:

    • 运行态:正在使用CPU的进程。
    • 就绪态:等待被调度执行的进程。
    • 等待态:由于某些事件(如I/O操作或资源不可用)而无法执行的进程。
  3. 资源分配与管理:除了分配CPU时间,调度器还负责管理和调度其他系统资源,如内存、I/O设备等。

  4. 保证系统性能和公平性:调度器的设计目标包括最大限度地利用CPU、减少进程切换开销、提高系统响应速度、以及在多任务之间公平分配资源,防止饥饿现象。

 

二、闲逛进程【调度程序永远的备胎】

      闲逛进程(Idle Process)是操作系统中的一个特殊进程,当系统没有任何其他可运行的进程时,调度器会将CPU的控制权交给这个进程。闲逛进程的主要目的是确保在没有任务可执行的情况下,CPU不会空转,从而防止CPU进入不受控制的状态。

2.1 闲逛进程的特点

  1. 最低优先级:闲逛进程的优先级极低,只有在所有其他进程都处于等待或阻塞状态时,调度器才会选择它执行。实际上,闲逛进程的存在就是为了填补“空闲”的CPU时间。

  2. 无实际工作:闲逛进程并不执行任何实际的工作,它的代码通常非常简单,可能是一个无限循环,反复执行诸如“等待中断”或“让CPU进入低功耗状态”等操作。

  3. 不影响系统性能:由于闲逛进程只在系统空闲时运行,它并不会占用其他进程的资源或CPU时间,因此不会影响系统的性能。

  4. 节省电能:在现代操作系统中,闲逛进程通常会调用特定的CPU指令,使CPU进入低功耗状态(如C-stateHalt指令),从而节省能源并减少发热。这对移动设备和服务器的能源管理尤为重要。

2.2 闲逛进程的作用

  • 保持CPU忙碌:即使在没有任何进程可执行时,闲逛进程确保CPU不会处于完全空闲状态。它保持CPU处于工作状态,直到有新的任务到来为止。

  • 系统稳定性:闲逛进程的存在可以确保CPU不会因为没有任务执行而崩溃或进入不确定的状态。

  • 节省能耗:现代操作系统中,闲逛进程的一个重要功能是降低功耗。它通过将CPU置于低功耗状态来减少电力消耗,尤其是在没有任何用户交互的情况下(如服务器或移动设备)。

2.3 例子

      在Linux操作系统中,闲逛进程的进程ID通常是0,被称为swapperidle task。它是系统启动时创建的第一个进程,始终在内核态运行,确保当没有其他可调度任务时,CPU有事情可做。

      在Windows系统中,闲逛进程被称为System Idle Process,同样用于在系统空闲时占据CPU时间,以维持系统的运行稳定。如下图所示:

2.4 闲逛进程和其他进程的区别

  • 优先级:闲逛进程具有最低的优先级,只有在没有其他进程可以运行时,调度器才会选择它。
  • 无实际业务逻辑:闲逛进程不会执行任何业务逻辑,它的唯一目的是等待其他进程出现并运行。
  • 不可终止:闲逛进程是系统进程,不可被用户终止,因为它是保证系统正常运行的基础进程。

2.5 总结

闲逛进程是操作系统中的一个特殊进程,负责在系统没有其他任务执行时占据CPU,保持系统的稳定性和正常运行。它的主要作用是节省资源、降低功耗,并确保CPU始终处于可控状态,等待新的任务到来。

 

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

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

相关文章

大受欢迎的游戏却又意外被作者下架的《Flappy Bird》将重返iPhone

据"Flappy Bird 基金会"官网称,标志性的侧卷轴滚动游戏《Flappy Bird》将很快回归 iPhone。《Flappy Bird》于 2013 年发布,很快就获得了数千万次下载。然而,这款游戏在2014 年突然从 App Store 下架,原因是其越南开发者…

SD卡挂载FatFs文件系统

一、简介 实验目的:SD卡挂载FATFS文件系统,并生成.txt文件 MCU:ST32F103ZET6 SD卡:16G;SPI读写模式; 引脚定义:VCC:5V GND:GND MISO:PA6 …

常用环境部署(十八)——CentOS7搭建DNS服务器

一、安装Bind服务器软件并启动 1、安装Bind服务 yum -y install bind bind* 2、 启动服务 systemctl start named 3、开机自启动 systemctl enable named 二、查看named进程是否正常启动 1、检查进程 ps -eaf|grep named 2、检查监听端口 ss -nult|grep :53 三、关闭…

EmguCV学习笔记 C# 11.6 图像分割

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

宠物毛发对人体有什么危害?宠物空气净化器小米、希喂、352对比实测

作为一个呼吸科医生,我自己也养猫。软软糯糯的小猫咪谁不爱啊,在养猫的过程中除了欢乐外,也面临着一系列的麻烦,比如要忍耐猫猫拉粑粑臭、掉毛、容易带来细菌等等的问题。然而我发现,现在许多年轻人光顾着养猫快乐了&a…

Vue生命周期钩子在UniApp中的应用

1、Vue 3 生命周期钩子介绍 onMounted()//注册一个回调函数,在组件挂载完成后执行。onUpdated()//注册一个回调函数,在组件因为响应式状态变更而更新其 DOM 树之后调用。onUnmounted()//注册一个回调函数,在组件实例被卸载之后调用。onBefor…

西部数据发布的一款西数硬盘检测修复工具-支持WD-L/WD-ROYL板,能进行硬盘软复位,可识别硬盘查看或清除-供大家学习参考

使用方法: 1、运行WDR5.3正式版.exe 2、导入WDR5.3.key 3、PORTTALK.SYS放入系统目录 第一步:注册完打开软件 第二步:设置维修盘端口:点击设置--》端口--》会出现主要端口 ,次要端口 ,定制端口 USB。一般如果不是USB移动硬盘都选择“定制端口”

WebGL入门(019):WebGLSync 简介、使用方法、示例代码

还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,ech…

轨迹预测(2)CVPR-24:基于社交互动角度表示的行人轨迹预测(代码已开源)

一.写在前面 今天要分享的是CVPR 2024上的一篇精彩的行人轨迹预测论文。这篇文章的灵感来源于海洋动物,它们通过回声定位来感知水下同伴的位置。研究者们构建了一种名为 SocialCircle 的全新基于角度的社交互动表示模型,用于动态反映行人相对…

MATLAB | R2024b更新了哪些好玩的东西?

Hey, 又到了一年两度的MATLAB更新时刻,MATLAB R2024b正式版发布啦!,直接来看看有哪些我认为比较有意思的更新吧! 1 小提琴图 天塌了,我这两天才写了个半小提琴图咋画,MATLAB 官方就出了小提琴图绘制方法。 小提琴图…

从边缘到云端,合宙DTURTU打造无缝物联网解决方案

随着物联网(IoT)技术的飞速发展,万物互联的时代已经到来, 如何高效、稳定地连接边缘设备与云端平台,实现数据的实时采集、传输与处理,成为了推动物联网应用落地的关键。 DTU(数据传输单元&…

Python面试宝典第48题:找丑数

题目 我们把只包含质因子2、3和5的数称作丑数(Ugly Number)。比如:6、8都是丑数,但14不是,因为它包含质因子7。习惯上,我们把1当做是第一个丑数。求按从小到大的顺序的第n个丑数。 示例 1: 输入…

单链表的查找与长度计算

注&#xff1a;本文只探讨"带头结点"的情况(查找思路类似循环找到第i-1 个结点的代码) 一.按位查找&#xff1a; 1.代码演示&#xff1a; 版本一&#xff1a; #include<stdio.h> #include<stdlib.h> ​ ​ //定义单链表结点类型 typedef struct LNo…

C语言 | Leetcode C语言题解之第401题二进制手表

题目&#xff1a; 题解&#xff1a; char** readBinaryWatch(int turnedOn, int* returnSize) {char** ans malloc(sizeof(char*) * 12 * 60);*returnSize 0;for (int i 0; i < 1024; i) {int h i >> 6, m i & 63; // 用位运算取出高 4 位和低 6 位if (h &…

针对网上nbcio-boot代码审计的actuator方法的未授权访问漏洞和ScriptEngine的注入漏洞的补救

针对网上下面文章的漏洞补救 奇安信攻防社区-代码审计之nbcio-boot从信息泄露到Getshell 一、未授权分析 在ShiroConfig中放开了actuator方法的未授权访问 org/jeecg/config/shiro/ShiroConfig.java:156 上面问题,先注释掉上面的未授权访问,实际就是代码注释掉 二、、RCE…

秒懂Linux之管道通信

目录 前言 进程间通信目的 管道通信 原理 匿名管道 测试样例 情况与特点 模拟进程池 命名管道 全部代码 前言 两个进程之间可以进行数据的直接传递吗&#xff1f;——不可以&#xff0c;进程必须得具备独立性。 进程间通信目的 数据传输&#xff1a;一个进程需要将…

odoo14 | 报错:Database backup error: Access Denied

这两天抽空想为自己快速做一个简单的管理系统&#xff0c;来信息化管理一下自己家里的一些菜谱、电视剧下载清单等事情&#xff0c;我又不想大动干戈的用Java写管理系统&#xff0c;我就想用已经手生了两年半的odoo快速搭一个系统用用得了&#xff0c;结果还遇上了这么个事 根…

Java设计模式—面向对象设计原则(四) ----->接口隔离原则ISP (完整详解,附有代码+案例)

文章目录 3.4 接口隔离原则(ISP)3.4.1 概述3.4.2 案列 3.4 接口隔离原则(ISP) Interface Segregation Principle&#xff0c;简称ISP 3.4.1 概述 客户端测试类不应该被迫依赖于它不使用的方法&#xff1b;一个类对另一个类的依赖应该建立在最小的接口上。 3.4.2 案列 面看…

PMP--一模--解题--21-30

文章目录 9.资源管理21、 [单选] 项目经理发现一个不可预料的高影响风险已经成为项目的一个因素&#xff0c;团队成员之间的自身利益导致问题得不到解决&#xff0c;项目经理必须快速行动&#xff0c;让团队重新集中精力&#xff0c;以便项目恢复进度&#xff0c;项目经理应该使…

通信工程学习:什么是LCAS链路容量调整机制

LCAS&#xff1a;链路容量调整机制 LCAS&#xff08;Link Capacity Adjustment Scheme&#xff09;链路容量调整机制是一种在ITU-T G.7042中定义的技术&#xff0c;旨在解决传统SDH&#xff08;同步数字体系&#xff09;网络在传输数据业务时带宽分配不灵活的问题。以下是LCAS链…