【Linux操作系统】进程优先级和进程切换

news2024/12/22 19:16:07

在这里插入图片描述

文章目录

  • 一.进程优先级
    • 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指针的记录继续取指令,分析指令和执行指令.

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

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

相关文章

SpringBoot + MDC 实现全链路调用日志跟踪

写在前面MDC介绍MDC使用MDC 存在的问题解决MDC存在的问题写在前面通过本文将了解到什么是MDC、MDC应用中存在的问题、如何解决存在的问题基于 Spring Boot MyBatis Plus Vue & Element 实现的后台管理系统 用户小程序,支持 RBAC 动态权限、多租户、数据权限、…

Shader踩坑笔记UV操作

一、UV坐标范围0-1 // 坐标范围 0-1,原点在画布左下角 vec2 uv FRAGCOORD.xy / iResolution.xy; 有两个变量 1、FRAGCOORD是godot引擎自带的变量表示纹理坐标 2、iResolution我自定义的变量,输入画布尺寸 使用uniform关键词可以创建自定义变量 比…

戴尔电脑怎么录屏?这6个方法教你轻松录屏

无论您是需要录制屏幕活动以创建在线发布的演示文稿、录制网络研讨会的屏幕以供日后参考,还是出于任何其他原因——如果您使用的是戴尔或类似 PC,您有多种选择。那么,让我们来谈谈如何在戴尔笔记本电脑上进行屏幕记录。 在戴尔笔记本电脑上录…

机器人介绍、应用、前景

机器人介绍、应用、前景1 介绍1.1 定义1.2 作用1.3 发展历程1.4 分类1.5 三大顾虑1.6 前景2 种类工业机器臂协作机械臂工业移动机器人复合机器人扫地机器人服务机器人机器狗人形机器人无人机3 技术3.1 机器人学分类3.2 功能分类3.2.1 感知3.2.2 决策3.2.3 执行AGV减震机构减速机…

经典问题:Python实现生产者消费者模式的多线程爬虫

Python实现生产者消费者模式的多线程爬虫1. 多组件的Pipeline技术架构2. 生产者消费者爬虫的架构3.多线程数据通信的queue.Queue4. 代码编写实现生产者消费者爬虫1. 多组件的Pipeline技术架构 复杂的事情一般都不会一下子做完,而是会分很多中间步骤一步步完成。 …

二十七、Kubernetes中DaemonSet(DS)控制器详解

1、概述 在kubernetes中,有很多类型的pod控制器,每种都有自己的适合的场景,常见的有下面这些: ReplicationController:比较原始的pod控制器,已经被废弃,由ReplicaSet替代 ReplicaSet&#xff…

LeetCode题目笔记——2293. 极大极小游戏

文章目录题目描述题目难度——简单方法一:模拟代码/Python方法二:优化本地修改代码/python代码/C总结题目描述 给你一个下标从 0 开始的整数数组 nums ,其长度是 2 的幂。 对 nums 执行下述算法: 设 n 等于 nums 的长度&#x…

理论——加密法

前言写C写多了,给大伙换换口味,这篇文章将会给大家带来几种加密法,以后写情书有素材了吧?还不快谢谢我~正文凯撒加密法简介在密码学中,恺撒密码是一种最简单且最广为人知的加密技术。它是一种替换加密的技术&#xff0…

因果推断6--多任务学习(个人笔记)

目录 1多任务学习 1.1问题描述 1.2数据集 1.3网络结构 1.4结果 2因果推断使用多任务方式 2.1DRNet 2.2Dragonet 2.3Deep counterfactual networks with propensity-dropout 2.4VCNet 3思考 1多任务学习 keras-mmoe/census_income_demo.py at master drawbridge/ke…

一种穷人式的内存泄露检测方式

对于检测程序代码中的资源泄露问题,市面上已经有很多工具了,但是今天我再来介绍一种新的方式,这种方式不需要安装任何工具或者特定的编译器开关,也不需要第三方库。 那就是:一直保持程序运行,直到泄露的原因…

【牛客网】HJ99 自守数、OR86 返回小于 N 的质数个数

作者:一个喜欢猫咪的的程序员 专栏:《Leetcode》 喜欢的话:世间因为少年的挺身而出,而更加瑰丽。 ——《人民日报》 目录 HJ99 自守数 OR86 返回小于 N 的质数个数 HJ99 自守数 自守数_牛客…

Linux系统之安装Linux管理工具inpanel

Linux系统之安装Linux管理工具inpanel一、inpanel介绍1.inpanel简介2.inpanel特点二、检查本地系统环境1.检查系统版本2.检查系统内核版本三、下载inpanel软件包1.创建下载目录2.下载inpanel软件3.查看源码inpanel文件四、部署inpanel应用1.一键安装inpanel2.查看服务端口五、关…

【双U-Net残差网络:超分】

Dual U-Net residual networks for cardiac magnetic resonance images super-resolution (心脏磁共振图像超分辨率的双U-Net残差网络) 目前,心脏磁共振(CMR)成像能够提供心脏全方位的结构和功能信息,已成…

难道你也不能放烟花嘛?那就来看看这个吧!

又到了一年一度的春节时期啦!昨天呢是北方的小年,今天是南方的小年,看到大家可以愉快的放烟花,过大年很是羡慕呀!辞旧岁,贺新春,今年我呀要放烟花,过春节!🧨。…

农产品商城简单demo-Android

项目概述 随着科学技术的不断提高和社会经济的不断发展,一些农产品的销售逐渐的落后于社会信息化的潮流之中,尤其是一些年龄较大的中老年人来说是极为不便的,国家大力倡导并十分重视三农问题,倡导推动农村农业的发展,为…

第二章 搜索求解

人工智能中的搜索&#xff1a; 搜索算法的形式化描述&#xff1a;<状态、动作、状态转移、路径、测试目标> 状态&#xff1a;从原问题转化出的问题描述。 动作&#xff1a;从当前时刻所处状态转移到下一时刻所处状态。 状态转移&#xff1a;对某一时刻对应状态进行某一…

泛型的学习

这里写目录标题一、泛型的使用自定义泛型类泛型方法说明泛型在继承方面的体现通配符的使用有限制条件的通配符的的使用每日一考一、泛型的使用 1、jdk5.0新增特性 2、在集合中使用泛型 ①集合接口或集合类在jdk5.0时都修改为带泛型的结构 ②实例化集合时&#xff0c;可以指明具…

是Spring啊!

一.概念spring概念一个包含了众多工具方法的 IoC 容器okk~~分析一下这句话意思,众多方法,IoC 是形容词,容器是名词 -> 众多方法:比如一个类里有许多方法, 容器:存储的东西 重点就是IoC是什么?Ioc2.1解释IoC -> Inversion of Control 控制反转 -> 对象的生命周期 ->…

Git版本控制工具详解

1、版本控制 1.1、认识版本控制&#xff08;版本控制&#xff09; 什么是版本控制&#xff1f; 版本控制的英文是Version control&#xff1b;是维护工程蓝图的标准作法&#xff0c;能追踪工程蓝图从诞生一直到定案的过程&#xff1b;版本控制也是一种软件工程技巧&#xff…

红米 12C earth 秒解锁 跳过168小时 红米note12 note12pro note12pro+系列机型解锁bl root教程步骤Fastboot

最近上手体验了Redmi 12C/红米12C&#xff0c;这是红米新推出的百元机&#xff0c;起售价699元&#xff0c;464G版本&#xff0c;具有不错的性能&#xff0c;具有5000mAh大电池&#xff0c;具有双频wifi&#xff0c;支持双卡双待&#xff0c;支持SD卡扩展等。 如果你近期想要给…