操作系统:进程优先级

目录

1.进程优先级

1.1.基本概念

1.2.其他概念

1.3.进程切换 

2.解读Linux2.6内核进程的调度队列


1.进程优先级

1.1.基本概念

我们在日常生活中的经验,排队的本质就是确认优先级,排队的原因就是资源不足,需要进行分配。那么在内存资源有限的场景下,且均需要CPU调度,进程优先级就显得十分必要了。 

进程优先级:cpu资源分配的先后顺序

在PCB中实现就是一个int类型字段,数值越小,优先级越大。 

UID:执行者的身份

PRI:进程优先级,默认值为80

NI:优先级的修正数值

!注意:PRI在NI调整的瞬间回到默认值80

通过top命令我们可以更改NI

我们知道进程优先级,有一定的范围

1.2.其他概念

以上是进程相关的一些概念,一般情况下,多个进程都是在一个CPU上被调度,并且多进程场景下在任意时刻,都会出现多个单进程在某一个时间片内快速切换,CPU进行运算,进行高频切换进程,这时候处于进程的“并发”

1.3.进程切换 

CPU在调度进程时不会一直调度某一个进程直至完成,而是会在一个时间片中连续、分开调度多个进程,进行多进程的并发,这时候就需要了解进程是如何进行切换以及如何继续运行的。

就是进程在运行队列排队时,当第一次被CPU调度,会产生一份进程上下文,当在这个时间片完成调度后,这段上下文会被保存在进程PCB相关的结构体tss_struct中,然后再把排队的下一个进程PCB的上下文放入寄存器中,这样CPU通过读取放入的上下文就知道从哪里开始继续将这个进程运行下去。

2.解读Linux2.6内核进程的调度队列

nr_active用于判断调度队列是否为空,如果nr_active的值为0那么就进行active和expired的交换。

bitmap[5]为位图,因为有140个优先级,也就是140个对应优先级的进程队列,为了提高查找非空队列的效率就用0,1这两个数字和5*32个比特位表示队列是否为空。

活动队列active和过期队列expired两个互相配合,一个处理进程,一个新增进程,最终在交换两个队列的地址。

这也就是CPU在调度进程时的状态 

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

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

相关文章

【论文速读】 | DeGPT:通过大语言模型优化反编译器输出

本次分享论文为:DeGPT: Optimizing Decompiler Output with LLM 基本信息 原文作者:Peiwei Hu, Ruigang Liang, Kai Chen 作者单位:中国科学院信息工程研究所;中国科学院大学网络空间安全学院 关键词:反向工程&…

Linux——进程信号(一)

目录 1、信号入门 1.1、技术应用角度的信号 1.2、注意 1.3、信号概念 1.4、用kill -l命令可以查看系统定义的信号列表 1.5、信号处理常见方式概览 2、产生信号 2.1通过终端按键产生信号 Core Dump 2.2、调用系统函数向进程发信号 2.3、由软条件产生信号 3、总结思考…

XS2100S:IEEE 802.3af/at 兼容、用电设备接口控制器,集成功率MOSFET V1.0.3

XS2100S:IEEE 802.3af/at 兼容、用电设备接口控制器,集成功率MOSFET V1.0.3 北京冠宇铭通 肖小姐 概述 XS2100S 为用电设备 (PD) 提供符合以太网供电 (PoE)系统 IEEE802.3af/at 标准的完整接口。 XS2100S 为 PD 提供检测信号、分级信号以及带有浪…

【面试题】JVM面试题及答案总结

JVM(Java虚拟机)是Java技术体系的核心,面试中经常会被问到与JVM相关的问题, 以下是一些典型的JVM面试题及答案概要: JVM的主要组成部分有哪些? 类加载器(ClassLoader):负责从文件系统或网络等…

尚硅谷JavaScript高级学习笔记

01 准备 JavaScript中函数是对象。我们后续描述构造函数的内存模型时,会将构造函数称为构造函数对象。 02 数据类型 typeof 运算符来查看值的类型,它返回的是类型的字符串值 会做数据转换 03 相关问题 04数据_变量_内存 05相关问题1 06相关问题2 …

Typescript 哲学 morn on funtion

函数重载 overload 有一些编程语言(eg:java)允许不同的函数参数,对应不同的函数实现。但是,JavaScript 函数只能有一个实现,必须在这个实现当中,处理不同的参数。因此,函数体内部就…

2024蓝桥杯每日一题(前缀和)

一、第一题:壁画 解题思路:前缀和贪心枚举 仔细思考可以发现B值最大的情况是一段连续的长度为n/2上取整的序列的累加和 【Python程序代码】 import math T int(input()) for _ in range(1,1T):n int(input())s input()l math.ceil(len(s)/…

人工智能在日常生活中的应用

在我们的日常生活中,人工智能已经成为一种无处不在的力量,从智能家居到在线助手,再到高度个性化的服务和推荐,它无声地改变着我们的生活方式和习惯。随着技术的不断进步和普及,人工智能正以前所未有的速度和规模渗透到…

JVM-垃圾收集器G1

G1垃圾回收器 概述: 是一款面向服务器的垃圾收集器,主要针对配备多个处理器及大容量内存的机器. 以极高效率满足GC停顿时间要求的同时,还具备高吞吐量性能特征.G1保留了年轻代和老年代的概念,但不再是物理隔阂了,它们都是(可以不连…

群晖:Docker中用CentOS安装宝塔面板

群晖:Docker中用CentOS安装宝塔面板 步骤: https://post.smzdm.com/p/ad2rqg4z/ 其他: 安装失败报错: Failed to download metadata for repo ‘appstream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist 解决…

在别的地方下载的二次封装Windows镜像怎么安装?GHO镜像详细安装教程

前言 在系统之家或者其他地方下载的镜像文件怎么装到电脑上? 首先要知道系统之家下载的Windows镜像文件基本上都是.iso结尾的,要进入到对应镜像包才能看出系统镜像是什么格式。 如何分辨镜像的格式 选择对应的.iso镜像,点击【鼠标右键】-【装…

《UE5_C++多人TPS完整教程》学习笔记26 ——《P27 在线会话测试(Testing An Online Session)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P27 在线会话测试(Testing An Online Session)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版,UP主&#xff0…

谈谈我对Java平台的理解

谈谈我对Java平台的理解 Java,这个诞生于1995年的编程语言,至今仍然是全球最受欢迎的编程语言之一。它不仅是一种语言,更是一个完整的平台,为企业级应用、移动应用、嵌入式系统、大数据处理、科学计算等众多领域提供了强大的支持…

【OJ比赛日历】快周末了,不来一场比赛吗? #03.09-03.15 #13场

CompHub[1] 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…)比赛。本账号会推送最新的比赛消息,欢迎关注! 以下信息仅供参考,以比赛官网为准 目录 2024-03-09(周六) #6场比赛2024-03-10…

Python笔记|基础算数运算+数字类型(1)

重新整理记录一下python的基础知识 基础运算符 、-、*、/ ;括号 ()用来分组。 >>>2 2 4 >>>50 - 5*6 20 >>>(50 - 5*6) / 4 5.0 >>>8 / 5 1.6向下取整除法:向下舍入到最接近的整数的数学除法。运算符是 //。比如1…

Vue3中的ref和reactive

今天在写前端, 用的是Vue3, 其实之前也有写过一些前端, 但是涉及不深, 差不多是基础的水平, 然后现在想跟进下Vue3, 就有点吃力得紧, 就单单一个变量的引用, 就折腾得不轻,调试的时候, 取值都是各种undefined, 然后就特地找了下相关的资料, 这才明白ref和reactive的…

【趣味项目】2048 简单实现

【趣味项目】2048 简单实现 算法原理 假设用一个二维矩阵表示 2048 页面,操作是左滑 const matrix [[2, 2, 4, 0],[0, 2, 4, 0],[0, 2, 2, 0],[2, 4, 4, 8] ];将所有非空的数字向左移动 matrix [[2, 2, 4, 0],[2, 4, 0, 0],[2, 2, 0, 0],[2, 4, 4, 8] ]将相邻的…

DeepSpeed在windows下构建失败的问题

使用pip install deepspeed无法安装,看教程说是可以自己安装。 ## Windows Windows support is partially supported with DeepSpeed. On Windows you can build wheel with following steps, currently only inference mode is supported. 1. Install pytorch, su…

java实现大文件的分割与合并

最近遇到一个问题,某网盘上传文件时,文件大小超过了4个G ,不能上传,所以就想到了利用的java的IO流,将文件分割成多个小文件,上传到网盘上,等到需要用的时候,下载下来然后再进行文件的…

自动化工程师涨薪难,原因出在这里

大家好,今天说说真实的工控行业,摒弃虚无的鸡汤,聊点实在的。 举个例子,某工做销售,卖电控器件,眼见PLC收入可观,开始感到压力。于是,他下定决心学PLC,报了培训班。毕业后…