进程优先级与切换调度

进程优先级的理解

是什么????

进程得到CPU的先后顺序。

为什么????

目标资源的稀缺,导致要通过优先级确认谁先谁后的问题。

怎么办????

也是一种数字,在task_struct

值越低,优先级越大;反之优先级越低。

大部分操作系统是基于时间片的分时操作系统,考虑公平性,优先级可能变化但是变化的幅度不能太大。

真实的优先级=PRI的默认值(80)➕NI

Linux中,访问资源都是进程在访问资源,进程就代表用户。

系统是怎么知道我是拥有者,所属组,other。

通过对比进程的UID和资源的UID,如果和资源的第一个UID相同,那么就是拥有者,第二个相同就是所属组,第三个就是other。

优先级的极值问题

nice值的范围-20,19,PRI的默认值是80,则Linux进程的优先级范围60,9940个优先级。

优先级设置的不合理,会导致优先级低的进程常时间得不到CPU资源,进而导致进程饥饿。

一些进程理解

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

进程切换

1死循环如何运行

a.一旦一个进程占有CPU,会随着时间片,跑一段时间。

b.死循环进程,不会一直占有CPU!

2聊聊CPU,寄存器

结论:

1寄存器就是CPU内部的临时空间。

2寄存器(一份)!=寄存器里面的数据(可变化的,多份的)。

3如何切换

a小故事理解进程切换

b.具体

进程切换最核心的内容就是保存和恢复进程硬件的上下文数据,即CPU寄存器里面的内容。

几个问题

进程把自己的硬件上下文数据,保存起来,保存到哪里呢??

保存到task_struct里面!的TSS:任务状态段

Linux的真实调度算法:O(1)调度算法

一个CPU一个运行队列

相关推荐
一技安身4 小时前
MySQL 8.4.13 LTS 通用二进制包(Linux免安装版)完整教程
linux·mysql·adb
迷途之人不知返4 小时前
【动态库与静态库】-3-静态链接与加载
linux
Gauss松鼠会4 小时前
GaussDB 中 gsql 与 DBeaver(JDBC)客户端工具查询时间不一致:原因、排查与处理
运维·服务器·数据库·sql·gaussdb·经验总结
谙弆悕博士5 小时前
debian快速换源
linux·运维·windows·debian·下载·换源·网络问题
.道阻且长.5 小时前
Linux基本开发工具:编译器gcc/g++
linux·运维·服务器·职场和发展
Industio_触觉智能5 小时前
瑞芯微RK系列调试工具与量产测试手册-上|串口日志打通与JTAG兜底调试
linux·sdk·jtag·瑞芯微·调试工具·rk3576·量产调试
Decay__11 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
贞明电子13 小时前
工业三色报警灯怎么接入项目系统?开关量与RS485控制应用指南
运维·网络·微信公众平台·贞明电子
HideF14 小时前
Linux
linux·服务器·网络
万联WANFLOW14 小时前
海外网络故障怎么排查?Cloudflare 三季度断网报告解读与 mtr 实战
运维·网络·故障分析