Linux---优先级+并发+进程调度队列

目录

一、优先级

二、并发

三、Linux2.6内核进程调度队列


一、优先级

我们发现操作系统中有很多等待队列,也就是说进程需要排队,而排队的本质就是确认优先级,优先级高的排在前面,低的排在后面

为什么要有优先级?

本质就是资源不足,就像我们去食堂打饭需要排队一样,如果窗口够多,我们就不需要排队

优先级是什么?

是为了得到某种资源的先后顺序

怎么做?

优先级其实就是pcb中的一个int字段,数值越小,优先级越大
大家要分清楚优先级和权限这两个概念:权限是能不能 做某件事/访问某个资源,而优先级是你访问资源的先后顺序,前提是你有这个权限

Linux中进程优先级范围是60~99,一般进程的默认优先级为80

Linux是支持动态优先级调整的,通过进程中pcb中的nice值:进程优先级的修正数据

pri(新)=pri(旧)+nice

下图是修改优先级的方法之一

UID : 代表执行者的身份
PID : 代表这个进程的代号
PPID :代表这个进程是由哪个进程发展衍生而来的,亦即父进程的代号
PRI :代表这个进程可被执行的优先级,其值越小越早被执行
NI :代表这个进程的nice值
注意:

1、pri(新)=pri(旧)+nice,这里的pri(旧)=80不会变,我们每次就只能在80的基础上改变

2、nice的范围是 -20,19,小于-20的按-20算,大于19的按19算

这里解释一下,优先级的范围被限定的原因---为了保证公平,即所有的进程都能被合理调度,如果一个进程的优先级太高会导致优先级低的进程长时间得不到CPU的资源,产生进程饥饿


二、并发

下面介绍几个概念

  • 竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高效完成任务,更合理竞争相关资源,便具有了优先级
  • 独立性: 多进程运行,需要独享各种资源,多进程运行期间互不干扰
  • 并行: 多个进程在多个CPU下分别,同时进行运行,这称之为并行
  • 并发: 多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为并发

前面三个概念都很容易理解,这里主要还是讲一下并发,我们的电脑一般都是单核CPU,我们的CPU在运行程序时,不是一个进程一直在运行,它是每个进程都会运行一个时间片(这个和计算机组成原理有关),然后进行轮换,如果有进程的优先级高于将要运行的进程,那么它就会优先抢占CPU资源,这种方式叫做基于时间片的轮转式抢占式内核,由于时间片很短,所以在我们看来这些进程好像是同时运行的,所以叫并发


三、Linux2.6****内核进程调度队列

上图的两个指针active和expired的来回交换就实现了总体进程的切换,并且保证了每个进程都能被调度,如果只有一个指针数组存放队列,那么我们只要不停的创建优先级高的进程,那么优先级低的进程就一直不会被调度,造成进程饥饿,无法保证调度的公平。

相关推荐
ZMacros1 小时前
Buildroot构建文件系统
linux·服务器
herinspace1 小时前
管家婆财贸ERP如何进行基本信息批量搬移
服务器·数据库·管家婆软件·财务软件
仓储管理员20251 小时前
不同业务场景下,如何匹配适配的WMS系统?
大数据·运维·云计算·精选
Είναι η κοπέλα1 小时前
游戏窗口自动化点击与防误点设计:模板匹配 + 区域限制 + 强制置顶
运维·游戏·自动化
六年码农1 小时前
2026最新开源 屏译ScreenTranslator 0.4.4 开源 全屏实时翻译教程
运维·人工智能·flutter·开源
深念Y2 小时前
AI Agent 时代运维安全:rm 防误删方案对比
linux·运维·人工智能·安全·自动化·agent
hkNaruto2 小时前
【Linux】Ubuntu 22.04 LTS GNOME 原生远程桌面配置:告别vnc、nomachine
linux·运维·ubuntu
Turboex邮件分享2 小时前
MX记录与邮件路由:一封邮件如何找到正确的服务器
服务器·网络协议·安全
那年窗外下的雪.2 小时前
VXLAN EVPN 分层排障:从 VTEP 可达、ARP/MAC 到 MAC Mobility
服务器·前端·网络·数据库·spine
元岳数字人小元2 小时前
极简运维体系,数字人一体机适配中小场景升级
运维·人工智能·开源·人机交互·交互·源代码管理