调度是有效地管理资源(主要是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代表进程。请注意,一些文献也将过程分为行和时间片。
由于帮派调度包括多个进程和线程,因此需要进行同步。大致有两种同步方法。
- 并发调度:同步模块协调所有调度。所有帮派都运行特定的时间间隔“ t”,然后对其进行解释,然后另一个帮派可以开始。
- SHARE调度系统:在相同的时间段内收集并执行具有相同资源利用率的帮派。固定时间段可能每次都会更改,并且该时间大于等于任务可以不抢先的最短时间。
像流程调度一样,有多种类型的调度组:
- 一帮黑帮(BoG)
- 改编先到先得(AFCFS)
- 最大的团伙先到先得(LGFS)
- 配对帮派调度
- 调度算法
有关帮派调度类型的更多详细信息,请参见LINK。