【Linux进程概念】进程优先级|进程切换

目录

进程优先级

1️⃣ 进程优先级

1.什么是进程优先级?

2.进程优先级的类型

3.进程优先级的作用

4.进程优先级的实现

5.进程优先级的重要性

6.查看系统进程

7.修改进程优先级

top命令进行修改

renice命令

8.优先级调度原理​编辑

进程切换


进程优先级

1️⃣ 进程优先级

1.什么是进程优先级?

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

2.进程优先级的类型

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

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

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

3.进程优先级的作用

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

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

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

4.进程优先级的实现

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

5.进程优先级的重要性

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

6.查看系统进程

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

7.修改进程优先级

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

top命令进行修改

 

renice命令

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

8.优先级调度原理

双140轮转队列 

进程切换

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

进程切换的过程

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

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

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

进程切换的原因

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

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

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

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

进程切换的代价

处理器时间:保存和恢复上下文需要处理器时间。

内存访问:访问进程控制块和执行上下文切换需要内存操作。

性能影响:频繁的进程切换可能导致系统性能下降,尤其是在进程数量众多的情况下。

优化进程切换

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

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

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

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

竞争与独立

竞争性:由于系统资源(如CPU时间、内存、I/O设备)是有限的,多个进程之间会竞争这些资源。

独立性:每个进程都有自己的进程控制块(PCB),它包含了进程的状态信息,如程序计数器、寄存器值、打开的文件描述符等。这使得进程之间在执行时是独立的,一个进程的崩溃不会影响其他进程。

并行与并发

并行:当系统有多个CPU时,可以同时运行多个进程,每个CPU执行一个进程。这种情况下,进程之间确实是同时运行的。

并发:在单CPU系统中,通过进程切换,多个进程可以在一段时间内轮流运行,给用户一种多个进程同时运行的错觉。并发是并行的一种实现方式,但并行并不一定并发。

进程抢占

◉ 抢占式内核是一种操作系统调度策略,它允许操作系统强制将处理器从一个进程切换到另一个进程。当一个低优先级进程正在运行时,如果有一个高优先级进程准备好运行,操作系统会抢占低优先级进程的CPU时间,切换到高优先级进程。

★ps: 关于进程的切换问题

计算机中的CPU内有大量的寄存器,它保存着正在执行的进程的临时数据。如果进程A正在被执行,CPU内的寄存器里面一定保存的是进程A的临时数据。寄存器中的临时数据,就叫做A的上下文

上下文数据可以丢弃吗?绝对不可以!由于计算机CPU数量小于进程数量,则当进程A暂时被切换下来的时候,进程A需要顺便带走自己的上下文数据。带走暂时保存的目的就是为了下次回来的时候,能恢复上去,就能继续按照之前的逻辑继续向后运行,就如同没有中断过一样。但如果没有保存上下文数据,进程A回来再执行时,就无法判断进程A原先执行到哪里了

注意:CPU内的寄存器只有一份,但是上下文可以有多份,分别对应不同的进程!!



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值