Linux系统中的进程调度队列

devtools/2024/11/13 15:03:33/

目录

一、进程调度队列结构

二、活动队列与过期队列

1.queue[140]

2.bitmap[5]


一、进程调度队列结构

Linux系统中,每一个CPU都有一个进程调度队列runqueue,如图所示

二、活动队列与过期队列

运行队列runqueue中有两个指针*active、*expired。*active指针指向活动队列queue[140],*expired指针指向过期队列queue[140]。

活动队列queue进程只出不进,过期队列进程只进不出。当时间合适时,操作系统会交换active和expired指针,这样就又有了一批新的活动进程。

1.queue[140]

queue[140]中0~99位置是实时优先级(范围是1~99,1的优先级最高,99的优先级最低),100~139位置是普通优先级(根据nice值-20~19确定优先级,nice值为-20优先级最高,nice值为19优先级最低)

queue中的每一个元素位置都是一个进程队列,操作系统会从0开始遍历找到第一个非空队列,再选中该队列中的第一个进程并运行,调度完成!

2.bitmap[5]

顺序遍历queue效率太低了,因此添加了一个long bitmap[5],32位操作系统下,long为32位,5*32=160>140,所以我们就有了一个位图,通过位图来确定queue中哪个位置有进程队列,不需要再顺序遍历queue,而是遍历bitmap即可。1表示该位置有进程队列,0表示该位置为空。由于bitmap只有5个元素,所以时间复杂度为O(1)。

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000


http://www.ppmy.cn/devtools/114949.html

相关文章

堆的向下调整算法和TOPK问题

目录 1.什么是堆? 1.1 向下调整建堆的时间复杂度计算 1.2 堆的结构体设计 2.堆的功能实现: 2.1 堆的插入: 2.2 堆的删除: 2.3 堆排序: 2.4 向下调整建堆: 2.5 TOPK问题: 2.6 向上调整算…

浅析OceanBase数据库的向量化执行引擎

本篇博客是偏数据库系统概念性的内容,不会深入到 OceanBase 中各个算子和表达式的在向量化中的详细设计和实现。 背景 为了提升OceanBase社区版用户解决问题的效率,OceanBase官方不久前推出了《OceanBase 从入门到实践》系列课程。在第七期直播课程后&a…

visual studio2015安装番茄助手

VS2015安装使用番茄助手Visual Assist_vs2015番茄助手-CSDN博客 【VS和番茄助手的安装步骤】https://www.bilibili.com/video/BV1K24y1n7Xk?vd_sourcefad0750b8c666dbeaf016e547f99a602 【番茄助手VS2019安装】https://www.bilibili.com/video/BV13p4y1v7bG?vd_sourcefad0…

在Flask中实现日志记录

在Flask中实现日志记录是一个关键的功能,它有助于监控应用的运行情况、调试问题以及记录重要的运行信息。以下是在Flask中实现日志记录的详细步骤和最佳实践: 一、使用Python内置的logging模块 Flask应用通常会使用Python的logging模块来进行日志记录。…

NCNN 学习(2)-Mat

Mat 是 NCNN 中最重要数据结构之一,NCNN 的很多计算都会涉及到 Mat。 1 数据成员 Mat 的定义在 https://github.com/Tencent/ncnn/blob/master/src/mat.h。从代码中可以看到,Mat 有这样的几个主要数据成员: class NCNN_EXPORT Mat { publi…

JAVA毕业设计176—基于Java+Springboot+vue3的交通旅游订票管理系统(源代码+数据库)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvue3的交通旅游订票管理系统(源代码数据库)176 一、系统介绍 本项目前后端分离(可以改为ssm版本),分为用户、管理员两种角色 1、用户: …

青柠视频云——如何开启HTTPS服务?

前言 由于青柠视频云的语音对讲会使用到HTTPS服务,这里我们说一下如何申请证书以及如何在实战中部署并且配置使用。 一、证书申请 1、进入控制台 我们拿阿里云的免费个人证书为例,首先登录阿里云,在控制台找到数字证书管理服务,进…

【有啥问啥】OpenAI o1的思考之前训练扩展定律、后训练扩展定律与推理扩展定律:原理与应用详解

OpenAI o1的思考之前训练扩展定律、后训练扩展定律与推理扩展定律:原理与应用详解 随着深度学习技术的不断发展,模型的规模和复杂度也迅速提升。研究人员发现了模型训练和推理过程中性能变化的规律,这些规律为我们提供了优化模型设计与训练的…