Linux之进程(3)

embedded/2024/11/19 17:59:01/

Linux2.6内核进程调度队列

在这里插入图片描述

操作系统有分时操作系统,实时操作系统,实时操作系统主要应用于一些制造业工业等,需要快速响应,但是在互联网领域不会用实时操作系统

在这里插入图片描述
队列共有140个空间大小,但是我们不用考虑前面100个实时的,只需要考虑后面40个,和我们前面讲的进程的范围对应上了,我们通过FIFO队列去匹配,这里还有位图,bitmap,为什么是5呢,因为4个小于140,6个又过大,我们通过比特位的位置,1或者0去判断是否为空

但是这样如果去调度进程的时候,,每次都需要从头开始,效率会降低,所以,这里有两个指针可以解决这个问题,active表示现在的,expired表示过去的,相同的去匹配,如果没有的就交换两个地址

当我们出现一个新的进程的时候,我们把它放到expired里面,也就是就绪状态

一个CPU拥有一个runqueue

如果有多个CPU就要考虑进程个数的负载均衡问题

优先级

普通优先级:100~139(我们都是普通的优先级,想想nice值的取值范围,可与之对应!)

实时优先级:0~99(不关心)

活动队列

  • 时间片还没有结束的所有进程都按照优先级放在该队列

  • nr_active: 总共有多少个运行状态的进程

  • queue[140]: 一个元素就是一个进程队列,相同优先级的进程按照FIFO规则进行排队调度,所以,数组下 标就是优先级!

  • 从该结构中,选择一个最合适的进程,过程是怎么的呢?

  1. 从0下表开始遍历queue[140]
  2. 找到第一个非空队列,该队列必定为优先级最高的队列
  3. 拿到选中队列的第一个进程,开始运行,调度完成!
  4. 遍历queue[140]时间复杂度是常数!但还是太低效了!
  • bitmap[5]:一共140个优先级,一共140个进程队列,为了提高查找非空队列的效率,就可以用5*32个 比特位表示队列是否为空,这样,便可以大大提高查找效率!

过期队列

  • 过期队列和活动队列结构一模一样

  • 过期队列上放置的进程,都是时间片耗尽的进程

  • 当活动队列上的进程都被处理完毕之后,对过期队列的进程进行时间片重新计算

active指针和expired指针

  • active指针永远指向活动队列

  • expired指针永远指向过期队列

  • 可是活动队列上的进程会越来越少,过期队列上的进程会越来越多,因为进程时间片到期时一直都存在 的。

  • 没关系,在合适的时候,只要能够交换active指针和expired指针的内容,就相当于有具有了一批新的活 动进程!

总结

在系统当中查找一个最合适调度的进程的时间复杂度是一个常数,不随着进程增多而导致时间成本增 加,我们称之为进程调度O(1)算法!


http://www.ppmy.cn/embedded/138832.html

相关文章

HTTP 请求方式

深入理解 HTTP 请求方式 在 Web 开发中,HTTP 请求方式起着至关重要的作用。它们决定了客户端如何与服务器进行交互以及服务器如何响应这些请求。本文将深入探讨不同的 HTTP 请求方式及其应用场景。 一、GET 请求 GET 请求是最常见的 HTTP 请求方式之一。它用于从服…

单元测试时报错找不到@SpringBootConfiguration

找到问题出现原因: 错误表示 Spring Boot 在运行测试时无法找到 SpringBootConfiguration 注解。 通常,SpringBootTest注解用于加载 Spring Boot 应用上下文,但它需要找到一个带有SpringBootConfiguration(或者Configuration&am…

RFC 2018 即《TCP Selective Acknowledgement Options》

RFC 2018 即《TCP Selective Acknowledgement Options》

微信小程序=》基础=》常见问题=》性能总结

文章目录 微信小程序开发应用 实例小程序生命周期 以及 各生命周期应用实例小程序图片 展示方案 小程序打包应用方案技术细节(分包应用实例)技术细节(压缩处理)一、准备工作二、JavaScript 代码压缩三、WXML 文件优化&#xff08…

HP G10服务器ESXI6.7告警提示ramdisk tmp已满

物理服务器是HP G10 VCENTER内两台服务器报错提示ramdisk"tmp"已满,无法写入文件 登录ESXI命令行后发现两台主机的/tmp目录都没有空间了 定位到是ams-bbUsg.txt文件占用了大量的空间 1、关闭集群的DRS功能 2、迁移当前主机上面运行的所有虚拟机至其他主…

JVM回收机制与算法

jvm基本结构 JVM(Java虚拟机)是Java程序可以跨平台运行的关键。它负责将Java字节码转换为特定平台的机器码,使Java程序能够在不同的硬件和操作系统上运行而无需重新编译。JVM的基本结构主要包括以下几个核心部分: ‌类加载器&…

深度神经网络DNN反向传播BP算法公式推导

深度神经网络DNN反向传播BP算法推导、δ法则 文章目录 前言一、单个神经元的内部结构二、前向传播三、反向传播总结 前言 \;\;\;\;\; 本文详细推导深度神经网络DNN反向传播BP算法中对权重w和偏置b的更新公式。通过图片和一步步的数学公式推导深刻理解反向传播BP算法&#xff0c…

RPA真的是人工智能吗?

1. RPA与AI的定义与区别 1.1 RPA的定义与特点 机器人流程自动化(Robotic Process Automation,简称RPA)是一种软件技术,它通过模拟人类用户的操作行为来自动执行重复性、基于规则的任务。RPA的核心特点包括: 非侵入性…