LINUX进程调度

进程调度

  1. 进程调度是一个内核子系统
  2. 进程调度的主要任务就是决定哪一个“就绪”状态的进程来执行
  3. 就绪进程就是非阻塞几次呢好姑娘
  4. 阻塞的进程就是正在睡眠的进程,需要内核唤醒的进程。

从人的理解,就是长久的sleep,周期性检查是不是需要检查。

内核会告诉你你准备的东西是否就绪,你是不是已经等完成了

找工作会考的三态模型

一个进程在启动后有三个状态,分别是就绪、运行、阻塞,进程会一直在这三个状态之间切换,进程在运行的状态是

  1. 就绪被调度起来就会运行起来,调度到内存中,有可能会发现时间片消耗完,运行到就绪,就绪到运行。
  2. 如果运行的时候发现了IO请求,就要变成阻塞状态,也就是发生了等待某个事件发生
  3. IO结束,或等待的事件发生,我就会从阻塞状态到就绪的状态,等待被调度。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IjBWZZ0m-1596268709201)(/Users/zhangzhihan/Desktop/海贼学习C语言/屏幕快照 2020-08-01 下午3.29.21.png)]

讲进程调度,就要从最开始开始讲

早起的微软用的系统,

DOS是单任务操作系统,每次只运行一个进程。

在单处理器的操作系统中,进程交错运行,从用户的角度上看,仿佛是多个任务在同时运行

在多处理器的操作系统中,在不同的处理器上可以同时运行不同的任务,做到真正的并行运行。

所谓调度:运行哪个进程,运行多久?

并行和并发

  1. 并行:真的在不同的cpu上运行
  2. 并发:交错着运行

协同和抢占

  1. 协同:

    1. 进程会一直运行,直到它自己结束
    2. 操作系统不做任何干预
  2. 抢占

    1. 调度器决定进程何时结束并执行另一个进程,这叫抢占
    2. 进程被抢占前运行的时间称为该进程的时间片
    3. 调度器给每一个进程分配一个处理器时间片
  3. 时间片

    1. 时间片的长短会影响系统的 全局行为和性能来说是至关重要的
    2. 时间片过长:-》提升系统通吐率和全局性能
      1. 降低了并发运行
      2. 用户会感觉到明显的延迟
    3. 时间片过短:-〉可以提升响应能力,交互性能
      1. 花更多的时间在调度上
      2. 会限制,时间局部性 带来的性能的提升
        1. 时间局限性在讲catch(高级快速缓存算法)我们的系统汇总cpu是最快的,其次是高速缓存,再其次是catch,内存,然后是外存;
        2. 为什么要有外存呢,cpu算的很快但是磁盘读的很慢,所以说我们也看到弊端,是空间小,所以内存可以调和cpu和磁盘的不对等。
        3. 高速缓存区域里面保留的都是内存中用的,是高频访问的数据,如果时间片过短,那就导致了高速缓存区,刚做好,就要被清除。
        4. 空间局部性,同样还有一个问题,读的时候是一个字节一个字节地去读,在读了之后发现都是引用的,我下次的系统都会自作主张多读一些,(工程控制—回路反馈)在计算机中有很多这样的机制,是连续地用这样的机制
    4. 解决时间片长短的问题:*不用时间片
  4. IO约束型和处理器约束性

    1. 一直消耗完可用时间片的进程为处理器约束性进程
      1. (空转)没外设磁盘,读取这样的。cpu在就能一直转,需要更多的cpu资源,会耗掉全部的cpu
      2. 需要获取大量的CPU资源
      3. 消耗点调度器分配的全部CPU
    2. 多数时间处于阻塞状态或者等待资源的进程为IO约束型进程
      1. 经常阻塞在文件IO操作上:文件,网络,键盘,鼠标
      2. 也可能除了请求
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值