【Linux】进程优先级&&进程切换

文章目录

  • 进程优先级
    • 什么是进程优先级
    • 进程优先级的类型
    • 进程优先级的作用
    • 进程优先级的实现
    • 进程优先级的重要性
    • 查看系统进程
    • 修改进程优先级
      • top命令
      • renice命令
    • 优先级调度原理
  • 进程切换

进程优先级

什么是进程优先级

在操作系统中,进程优先级(Process Priority)是指操作系统对进程进行调度时所赋予的优先级值,用于决定进程何时获得处理器时间。进程优先级是一种实现多任务操作系统中任务调度的重要机制,它允许操作系统根据进程的重要性和紧迫性来分配处理器资源。

进程优先级的类型

进程优先级可以是静态的,也可以是动态的。静态优先级通常在进程创建时由用户或操作系统管理员设定,并且不会改变。动态优先级则可以根据进程的行为或系统状态自动调整。

◉ 静态优先级:在进程创建时由用户或操作系统管理员设置,通常使用整数值表示,数值越低表示优先级越高。

◉ 动态优先级:根据进程的运行情况自动调整,例如,一个进程如果长时间等待I/O操作,它的优先级可能会降低

进程优先级的作用

◉ 优先级调度:操作系统使用进程优先级来决定哪个进程应该首先获得处理器时间。

◉ 响应性和效率:通过调整优先级,操作系统可以确保关键任务(如图形用户界面响应、实时系统任务等)能够得到足够的处理器时间。

◉ 资源分配:优先级可以帮助操作系统决定如何分配系统资源,如内存、CPU时间等。

进程优先级的实现

进程优先级通常通过操作系统的调度器来实现,调度器会根据进程的优先级和其他因素(如进程状态、时间片等)来决定进程的执行顺序。

进程优先级的重要性

进程优先级是操作系统多任务管理的关键部分,它允许系统根据不同任务的需求和紧迫性来优化资源分配,从而提高系统的整体性能和响应性。通过合理设置和调整进程优先级,操作系统可以确保系统中的关键任务得到优先处理,同时保持系统的稳定性和效率。

查看系统进程

使用ps -l命令查看系统进程的相关信息,包括UID、PID、PPID、PRI和NI等。PRI代表进程的优先级,NI代表进程的nice值。PRI值越小,进程的优先级越高。

UID : 代表执行者的身份

PID : 代表这个进程的代号

PPID :代表这个进程是由哪个进程发展衍生而来的,亦即父进程的代号

PRI :代表这个进程可被执行的优先级,其值越小越早被执行

NI :代表这个进程的nice值

修改进程优先级

修改进程优先级主要是通过修改nice值实现的,nice值范围为-20至19,数值越小,优先级越高。可以使用nice和renice命令或通过top命令进行修改。

top命令

1.top

2.进入top后按"r"-->输入进程PID-->输入nice值

输入nide值10后看到变化:

renice命令

renice命令使用格式为:renice [nice值] -p [进程pid]

优先级调度原理

进程切换

进程切换(Process Switching),也称为上下文切换(Context

Switching),是操作系统中的一个基本机制,它允许在单个处理器上快速高效地运行多个进程。进程切换是指操作系统保存当前运行进程的状态(上下文),并恢复另一个进程的状态以使其能够继续执行的过程。

进程切换的过程

◉ 保存当前进程的上下文:这包括将当前进程的寄存器值(如程序计数器、栈指针、通用寄存器等)保存到它的进程控制块(PCB)中。

◉ 选择另一个进程:操作系统调度器根据某种策略(如轮转调度、优先级调度等)选择下一个要执行的进程。

◉ 恢复新进程的上下文:将所选进程的寄存器值从其PCB中恢复到处理器中,以便该进程可以从中断点继续执行。

进程切换的原因

◉ 时间片到期:在分时系统中,每个进程被分配一个固定的时间片来执行。当时间片用尽时,操作系统会进行进程切换。

◉ 高优先级进程的到来:当一个更高优先级的进程变为就绪状态时,当前运行的进程可能会被切换出去,以便让更高优先级的进程运行。

◉ I/O请求:当前进程发起一个I/O请求并进入阻塞状态时,操作系统会切换到另一个就绪进程。

◉ 同步和通信:进程可能因为等待某些同步事件(如信号量、互斥锁)或进程间通信(如消息传递)而被迫进行切换。

优化进程切换

◉ 快速上下文切换:通过硬件支持来加速上下文切换的过程。

◉ 减少切换次数:通过改进调度算法,减少不必要的进程切换。

◉ 优先级继承:在某些情况下,为了避免频繁的上下文切换,可以采用优先级继承机制。

进程的切换,最重要的一件事情是:上下文数据的保护和恢复。

竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高

效完成任务,更合理竞争相关资源,便具有了优先级

独立性: 多进程运行,需要独享各种资源,多进程运行期间互不干扰

并行: 多个进程在多个CPU下分别,同时进行运行,这称之为并行

并发: 多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为

并发.

相关推荐
朝九晚五ฺ39 分钟前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
自由的dream42 分钟前
Linux的桌面
linux
xiaozhiwise1 小时前
Makefile 之 自动化变量
linux
意疏3 小时前
【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
linux·docker
BLEACH-heiqiyihu4 小时前
RedHat7—Linux中kickstart自动安装脚本制作
linux·运维·服务器
一只爱撸猫的程序猿4 小时前
一个简单的Linux 服务器性能优化案例
linux·mysql·nginx
我的K84095 小时前
Flink整合Hudi及使用
linux·服务器·flink
1900435 小时前
linux6:常见命令介绍
linux·运维·服务器
Camellia-Echo5 小时前
【Linux从青铜到王者】Linux进程间通信(一)——待完善
linux·运维·服务器