当前位置: 首页 > news >正文

7.进程概念(三)

一、进程优先级

是什么?

进程得到CPU资源的先后顺序。

为什么要有进程优先级?

目标资源稀缺,导致要通过优先级确定谁先谁后。

如何比较和分配?

进程优先级也是一种数字,int,task_struct

值越低,优先级越高,反之,越低。

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

知识点:

PRI:进程优先级,默认80

NI:进程优先级的修正数据,nice值(默认为0)

进程优先级=PRI(默认)+NI

设计原因:优先级设计不合理,会导致优先级低的进程,长时间得不到CPU资源,进而导致进程饥饿。

查看进程优先级的命令
用top命令更改已存在进程的nice:
进入top后按“r”‒>输入进程PID‒>输入nice值

nice和renice命令:

nice [选项] <命令> [参数]

renice -n 优先级值 -p 进程编号PID

系统调用:getpriority,setpriority

补充概念-竞争、独立、并行、并发
竞争性:系统进程数目众多,CPU资源只有少量,甚至一个。
独立性:多进程运行,需共享各种资源,多进程运行期间互不干扰。
并行:多个进程在多个CPU下分别同时运行。(查看cpu信息,cat /proc/cpuinfo)
并发:多个进程在一个CPU下采用进程切换的方式,在一段时间内,让多个进程都得以推进。(重点)

二、 进程切换(重点)

1.死循环进程如何运行?

a.一个进程一旦运行,会把自己的代码跑完吗?

不会,有时间片,运行时间片时间就切换。

时间片:当代计算机都是分时操作系统,没有进程都有它合适的时间片(其实就是一个计数
器)。时间片到达,进程就被操作系统从CPU中剥离下来。

b.死循环程序,不会使系统卡死,不会一直占有CPU

结论:

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

2)寄存器!=寄存器里面的数据

3.如何切换?

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

切换时,进程要把自己的进程硬件上下文保存起来,保存到task_struct中,TSS:任务状态段。

补充:
实时操作系统:应用场景---新能源汽车的刹车

分时操作系统:内核优先级抢占,进程切换。

Linux进程调度真实算法:

http://www.dtcms.com/a/163611.html

相关文章:

  • 01_微服务常见问题
  • k8s术语pod
  • 解决vue3 路由query传参刷新后数据丢失的问题
  • Webug4.0通关笔记04- 第6关宽字节注入
  • FPGA中级项目7———TFT显示与驱动
  • gitmodule怎么维护
  • LeetCode:55.跳跃游戏——局部最优并非全局最优!
  • 如何个人HA服务器地址和长期密钥
  • 分享一个移动端项目模板:React-Umi4-mobile
  • 从厨房到云端:从预制菜到云原生
  • 浏览器打印日志方法与技巧
  • java连接redis服务器
  • vue 优化策略,大白话版本
  • Spring Security 的 CSRF 防护机制
  • [Android]导航栏中插入电源菜单
  • 【深度学习新浪潮】ISP芯片算法技术简介及关键技术分析
  • 强化学习之基于无模型的算法之蒙特卡洛方法
  • 【题解-Acwing】871. 约数之和
  • LeetCode 2962.统计最大元素出现至少 K 次的子数组:滑动窗口
  • QT控件 参考Qt的PIMPL设计模式实现使用QWidget控件绘制3D饼状图表和3D柱状图表,使用QChartView绘制圆柱体图表
  • 论文导读 - 基于特征融合的电子鼻多任务深度学习模型研究
  • 从 0 到 1:ComfyUI AI 工作流抠图构建全实践
  • Redis核心与底层实现场景题深度解析
  • C++函数模板基础
  • A2A与MCP:理解它们的区别以及何时使用
  • 机器学习实操 第一部分 机器学习基础 第5章 支持向量机(SVM)
  • 【行业特化篇3】制造业简历优化指南:技术参数与标准化流程的关键词植入艺术
  • 【Linux】第十三章 访问Linux文件系统
  • 【和春笋一起学C++】函数——C++的编程模块
  • 第十六届蓝桥杯 2025 C/C++组 旗帜