【Linux操作系统】进程优先级和进程切换
创始人
2024-05-12 05:37:51

在这里插入图片描述

文章目录

  • 一.进程优先级
    • 1.三段论谈优先级
    • 2.PRI和NI
  • 二.进程切换
    • 1.进程的四个特性
    • 2.上下文数据保护和恢复

一.进程优先级

1.三段论谈优先级

什么是优先级?它等同于权限吗?

定义:

cpu资源分配的先后顺序,就是指进程的优先权(priority)。

区别:

  • 权限表示能与不能

  • 优先级的前提是能,表示先后顺序

为什么要有优先级?

因为资源有限,进程抢占资源,操作系统得给进程一个先后顺序。

怎么确定优先级?

最终PRI= 80 +nice值

ps:

  1. Linux是给运行中的进程调整优先级,调整策略是修改niceness值
  2. 和成绩排名一样,最终PRI值越小表示优先级越高

2.PRI和NI

总体:PRI=80+NI

其中NI值从[20,-19]

ps:

  1. NI的范围决定了PRI的变化范围[100,61]
  2. NI值的过度设置,会导致进程的调度失衡

第一步: ./pri后, 查看进程的优先级信息

其中ps的意思为process status 进程状态

ps -al

image-20230115121251969

两个单词:
PRI:priority缩写,中文:最终优先级
NI:niceness缩写,中文:进程优先级
PRI=80+NI,其中NI的范围从[20,-19]

第二步: 提权使用top工具来准备修改niceness值

sudo top

image-20230115121612115

第三步:键盘输入r

r (意思为renice)

显示结果:

image-20230115122043363

第四步:输入要调整优先级的进程ID

假如是:17955

显示结果:

image-20230115122103797

第五步:输入调整后的NI值

假如是:-19

第六步:再次查看进程的优先级信息

ps -al

显示结果:

NI值被修改为了-19

最终PRI值被修正为了61

image-20230115122315940

二.进程切换

1.进程的四个特性

竞争性:进程数众多,CPU只有少量,进程之间要抢占CPU资源
独立性:进程之间各自以为独占资源,互不干扰
并发:多个进程在一个CPU上运行,采取进程切换/CPU时间片轮转的方式
并行:多给进程在多个CPU上运行,同时运行

2.上下文数据保护和恢复

CPU内有很多寄存器,但是总归就一套寄存器.

寄存器是各个进程共享的,但是寄存器内的数据是私有的—-属于当前正在运行的进程.

由于大部分电脑都是单核CPU,所以属于并发机制,并发采用的是进程切换/时间片轮转的方式.

那么一个进程大多数情况下并不是在CPU中跑完了才从CPU上拿下来,而是跑完一个时间片的时间就换上另一个进程.

所以进程在一个时间片时间结束时,寄存器内的数据就要被拷贝一份,保留到当前进程或系统,这个过程被称为上下文数据的保护;

直到轮到该进程的下一个时间片时,就把之前保留的上下文数据恢复,CPU通过pc/eip指针的记录继续取指令,分析指令和执行指令.

相关内容

热门资讯

demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...