秒懂:进程优先级

1.概念

      简单来说,进程优先级是对于资源访问顺序来说的,谁先访问资源,谁的优先级就高。

      注意:这和权限概念不一样,权限是能不能访问。

2.情景引入

进程的运行,是在CPU上执行,每次执行只能执行CPU的一个时间片,会有多个进程在run_Queue运行队列上等待CPU。

 

不同的进程PCB在run_Queue中等待CPU资源,在CPU中执行,然后再回到run_Queue中继续等待CPU资源,这样进程循环不断的等待与执行,就是进程运行的基本逻辑。

022cbc155c8940c4a561ef9b68d53c50.png

进程在运行队列中等待的过程,本质其实是各个进程在排队的过程。

就像在食堂打饭,在单位领取福利,有半路插队的情况,有的人可以优先打到饭,可以优先领到福利,有的人却一直被插队,只能很后面打到饭或领到福利。插队的人通常可以走后门,权势高于其他队中的人,或者武力值很高,谁都惹不起,所以他们可以插队。相对的,相较队中,体更弱的人,更没有什么权势的人,就只能被插队,排到后面去,较晚才能领到资源。

进程在运行队列里排队领取CPU资源的过程也是这样的。

在进程排队的过程中,衡量谁先后领到资源的标准进程的优先级。优先级高的进程可以在运行队列排队过程中"优先"领到CPU资源;优先级低的进程,则是会被"插队",相对靠后享受到CPU资源。

3.为什么会有进程优先级

        因为计算机的资源是有限的,但是运行队列中的进程是多个的,而且它们之间竞争性很大的,操作系统必须保证良性竞争,所以要确立优先级。

3.1 情景解析:

再比如在食堂,我们作为学生需要在有限的窗口中,排队打饭。因为我们不可能给每一个学生都开一个窗口,不可能给每一个学生都开一个小灶,当然如果每个学生都开一个小灶的话,此时优先级就失去意义了,因为此时不需要排队了,人人平等,没有谁先谁后接受资源一说了。但是现实中,我们在一层食堂中,也就开20个窗口,为什么不给所有学生都开一个窗口呢?因为我们的资源太少了!我们没有足够的资源开几千个的打饭窗口。所以20个窗口需要好几千的学生进行排队打饭,而排队就存在优先级谁先谁后接收资源的问题,就存在插队被插队的问题。

所以优先级的本质其实是分配资源的一种方式!!!

其实不止CPU资源的分配,还有网卡资源,硬盘资源等待,都需要对多个进程进行分配。分配就需要有排队,排队过程就需要队列和谁先谁后的凭据。

所以我们有CPU资源的运行队列,有网卡,硬盘资源的等待队列,来供多个进程进行排队申领;所以我们的每个进程PCB中都有一个叫优先级的字段,来确认这个进程可以先/后申请到某种资源。

3.2 注意:

        如果进程长时间得不到cpu资源,该进程代码长时间得不到推进,就会产生进程饥饿问题。

 

 

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值