image-20240420163459407

CPU进程调度

1. CPU调度的概念

CPU调度是操作系统中的一个重要概念,用于在多任务环境下实现进程的切换和调度。当操作系统决定切换到另一个进程时,需要选择一个合适的进程来执行,这个过程就是CPU调度。

2. CPU调度类

CPU调度主要分为以下几类:

  1. 先来先服务(First Come First Serve,FCFS):按照进程到达的先后顺序进行调度,先到达的进程先执行,直到执行完毕或发生阻塞。
  2. 短作业优先(Shortest Job First,SJF):按照进程的执行时间进行调度,执行时间短的进程优先执行,可以减少平均等待时间。
  3. 优先级调度(Priority Scheduling):按照进程的优先级进行调度,优先级高的进程优先执行,可以根据进程的重要性和紧急程度来设置优先级。
  4. 时间片轮转(Round Robin,RR):按照时间片的方式进行调度,每个进程执行一个时间片后,切换到下一个进程执行,可以保证每个进程都有机会执行。
  5. 多级反馈队列调度(Multilevel Feedback Queue Scheduling):根据进程的优先级和执行时间设置多个队列,每个队列有不同的时间片大小,可以根据进程的特性进行调度。

3. 5种调度类

分别是停机调度类,限期调度类,实时调度类,公平调度类,空闲调度类。

  1. 停机调度类

    • 停机调度类是优先级最高的调度类别,用于处理系统中的关键任务或者紧急任务。这种调度类别通常用于处理系统的启动、关机、重启等关键操作,确保系统的正常运行和稳定性。只有迁移或者停机调度类别的任务才能够执行停机调度类别的任务。
    • 每个处理器都有一个迁移线程,他们负责将任务从一个处理器迁移到另一个处理器。迁移线程的优先级是最高的,因为迁移线程的任务是非常重要的,必须在其他任务之前执行。
  2. 限期调度类

    • 限期调度类主要用于处理有限期限的任务,即任务需要在特定的时间内完成。这种调度类别通常用于实时系统中,要求系统能够按时完成任务,避免因为任务延迟导致系统性能下降或者任务失败。
  3. 实时调度类

    • 实时调度类用于实时系统中,主要考虑任务的响应时间和时限。实时系统需要在特定时间内完成任务,并且保证任务的响应时间和完成时间可预测,以满足系统对实时性能的要求。
  4. 公平调度类

    • 公平调度类旨在确保系统中的任务或进程能够公平地获得CPU资源,避免出现资源不公平导致的饥饿或优先级倾向。这种调度类别通常考虑任务的优先级、轮转调度等机制,以实现公平分配资源的目标。
  5. 空闲调度类

    • 每个处理器都有一个空闲线程,他们负责处理空闲处理器上的任务。空闲线程的优先级是最低的,因为空闲线程的任务是最不重要的,只有在其他任务都完成之后才会执行。

这些调度类别在不同的系统和场景中有不同的应用,用于实现系统的性能优化、资源管理、任务调度等功能。选择合适的调度类别对于系统的稳定性、可靠性和性能至关重要。