进程调度总结

1 进程调度指标

周转时间

T 周转时间 = T 完成时间 − T 到达时间 T_{周转时间}=T_{完成时间}-T_{到达时间} T周转时间=T完成时间T到达时间

响应时间

T 响应时间 = T 首次运行 − T 到达时间 T_{响应时间}=T_{首次运行}-T_{到达时间} T响应时间=T首次运行T到达时间

2 进程调度算法

先进先出 FIFO

最短任务优先 SJF

最短完成时间优先 STCF

轮转 RR

3 多级反馈队列 MLFQ

基本概念

(1) 多个独立队列,具有不同的优先级;

(2) 任何时刻,一个工作只能存在于一个队列中;

(3) 优先执行较高优先级队列中的工作;

(4) 每个队列中的工作具有同样的优先级,使用轮转调度;

关键

如何设置和调整优先级

一种设计方案

(1) 如果A的优先级>B的优先级,运行A;

(2) 如果A的优先级=B的优先级,轮转运行A和B;

(3) 工作进入系统时,放在最高优先级队列;

(4) 一旦工作用完了其在某一层的时间配额,就降低其优先级;

(5) 经过一段时间,就将系统中的所有工作重新加入最高优先级队列;

4 多处理器调度

区别

与单CPU调度的区别在于:

(1) 对硬件缓存的使用

(2) 多处理器之间共享数据的方式

缓存一致性

总线窥探:每个缓存都通过监听链接所有缓存和内存的总线,来发现内存访问。如果一个CPU发现其本地缓存中的数据在其他CPU缓存或内存中更新,作废或更新其本地缓存。

缓存亲和度

由于缓存,一个进程保持在一个CPU上执行会更快。

单队列多处理器调度 SQMS

所有CPU共用一个调度队列。

缺点:

(1) 缺乏可扩展性。需要加锁保证队列的原子性,存在性能损失。

(2) 缓存亲和度难以保证。

多队列多处理器调度 MQMS

每个CPU拥有一个自己的调度队列。

缺点:负载不均。

解决方案:通过工作窃取进行跨CPU迁移,达到负载均衡。

  • 25
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Linux 进程调度是指系统内核在多个进程之间调度 CPU 时间片的过程。它根据各种调度算法和优先级来决定每个进程获得 CPU 时间的顺序。常见的 Linux 调度算法有 Completely Fair Scheduler(CFS)和 Round Robin。 CFS 是 Linux 默认的调度算法,它根据每个进程的运行时间和优先级来决定调度顺序。 ### 回答2: Linux进程调度操作系统对于进程的管理和分配资源的算法。在Linux系统中,进程是运行程序的实体,而进程调度则是决定进程运行顺序和时间的机制。 Linux采用了基于优先级的进程调度算法,通过动态地调整进程的优先级来决定进程被选中的概率。Linux内核中定义了两种进程调度策略:一种是实时调度策略,包括FIFO(先进先出)和RR(时间片轮转);另一种是非实时调度策略,包括CFS(完全公平调度)。 在实时调度策略中,FIFO按照进程进入系统的先后顺序进行调度,时间片由进程自行声明。而RR则将时间分成固定大小的时间片,每个进程只能运行一个时间片,然后切换到下一个进程。这两种调度策略主要适用于对实时性要求较高的应用。 而在非实时调度策略中,CFS采用了完全公平调度算法。CFS通过计算进程的虚拟运行时间,并将其与其他进程进行比较,从而确定下一个被调度的进程。CFS倾向于将CPU时间平均地分配给每个进程,并避免某个进程独占CPU资源。 另外,Linux还引入了时间片的概念。时间片是CPU分配给每个进程的最小时间单位,它的大小直接影响着进程的调度顺序。时间片越小,进程切换的频率就越高,系统的响应速度也会更快。 总的来说,Linux进程调度根据进程的优先级、类型和运行状态等因素,动态地为每个进程分配CPU资源,从而实现多任务的并发执行,提高系统的整体性能和响应速度。 ### 回答3: Linux进程调度操作系统中重要的组成部分,它负责决定在多个进程同时运行时,每个进程被分配CPU的时间片长短和优先级。Linux通过采用时间片轮转和优先级调度的方式来管理进程。 时间片轮转调度算法是一种公平的调度方法,它将CPU的运行时间划分成较小的时间片,并按照轮转的方式分配给每个进程。当一个进程的时间片用完后,它会被放到就绪队列的末尾,等待下一次调度。这种调度方式保证了每个进程能够公平地使用CPU资源,避免了某些进程长时间占用CPU的情况。 Linux还采用了优先级调度算法,每个进程都有一个优先级值,数值越高表示优先级越高。在就绪队列中,调度器会将优先级最高的进程分配给CPU执行。如果两个进程的优先级相同,那么按照时间片轮转的方式进行调度。通过设定不同的进程优先级,可以实现进程的优先级控制和资源分配。 此外,Linux还引入了实时调度策略,包括实时先进先出和实时循环调度。实时调度算法是为了满足对实时任务有严格响应时间要求的场景,保证实时任务能够及时地被执行。 总结来说,Linux进程调度通过时间片轮转和优先级调度的方式,保证了进程的公平性和高优先级任务的及时响应能力。同时,引入实时调度策略,满足对实时任务的特殊需求。这些调度算法的运作机制和相互配合,为Linux操作系统的稳定性和高效性提供了重要的保障。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值