📜  操作系统中的Gang调度

📅  最后修改于: 2021-08-27 17:56:59             🧑  作者: Mango

调度是有效地管理资源(主要是I / O,CPU,内存等硬件资源)以完成给定任务集的过程。大多数调度方法都是进程调度,例如先到先服务(FCFS),最短作业优先(SJF),循环调度(RR)等。有许多任务需要多个进程或线程才能同时工作–只有一个进程正在工作而其他进程正在等待,将会危害系统。即使执行一个进程而抢先停止另一个进程也可能会危及系统。

什么是任务?

任务是最小的逻辑工作单元。一个任务可以由多个作业组成。作业可以是子任务(类似于任务)或流程。所有作业必须按特定顺序作为块工作才能完成任务。可以预期这些作业将并行运行或顺序运行,或者将两者混合运行。

例如–开汽车。驾驶员必须按下离合器和制动器,然后转动钥匙。这三个过程都必须发生,否则汽车将无法启动。在计算机科学中,我们可以在神经网络中找到类似的例子。所有边缘的权重必须在一个段中更新。

什么是帮派?

帮派意味着一项任务。因此,帮派调度是高效的帮派调度。将帮派调度与其他调度分开的点在于,它将帮派(任务)视为一个量子,并对其进行调度。帮派可能需要多个进程或线程,或者需要两者(线程和进程)的组合。

帮派调度使用Outsterhout矩阵作为数据结构来简化所有调度任务。它是一个二维矩阵,其中行表示时间片,列表示进程或线程。

  P1 P2 P3 P4 P5
Time Slice 0 J1 J1 J1 J1 J1
Time Slice 1 J2 J2 J2 J2 J2
Time Slice 2 J3 J3 J4 J4 J4

上表演示了Outsterhout矩阵的形成方式和作业的调度方式。 J1-J4代表帮派,P1-P5代表进程。请注意,一些文献也将过程分为行和时间片。

由于帮派调度包括多个进程和线程,因此需要进行同步。大致有两种同步方法。

  1. 并发调度:同步模块协调所有调度。所有帮派都运行特定的时间间隔“ t”,然后对其进行解释,然后另一个帮派可以开始。
  2. SHARE调度系统:在相同的时间段内收集并执行具有相同资源利用率的帮派。固定时间段可能每次都会更改,并且该时间大于等于任务可以不抢先的最短时间。

像流程调度一样,有多种类型的调度组:

  1. 一帮黑帮(BoG)
  2. 改编先到先得(AFCFS)
  3. 最大的团伙先到先得(LGFS)
  4. 配对帮派调度
  5. 调度算法

有关帮派调度类型的更多详细信息,请参见LINK。