Skip to content

Task model

关于task model的内容

Component

NOTE: 本节介绍task model的component,即它的组成

Manager

在task model中,往往有**管理者**(manager)的角色,它负责**控制**整个系统:

1) 调度task,具备**调度者**的角色

关于调度,参见:

2) 监控task,如对task的resource usage进行监控,具备**监控者**的角色

用户可以向manager请求创建task、操作task等。

Executor

执行task。

How to model?

NOTE: 本节介绍如何来进行建模。

使用task model的时候,需要考虑的一些问题:

  • task是什么
  • **管理者**是什么
  • task的**执行者**是什么

下面使用task model来描述一些系统:

1) Computer multitasking

**管理者**是operating system kernel,task是process或thread的执行,它的执行者是CPU。

2) Celery

Task就是一个一个由用户定义的task function,执行者其实就是process了,**调度者**其实就是它的task queue了,显然和OS kernel的调度者相比,它的调度策略是非常简单的。

3) Coroutine

Schedule operations

本节介绍在task model中,对task进行schedule的时候,会执行的一些操作。

Suspend/yield

yield是主动让渡;

suspend是被动被挂起;

Resume

Context switch是task模型的必备操作

本节所描述的context switch是广义的context switch,而不是仅仅局限于process的context switch。因为task model中存在着的并发执行的task,并且管理者会进行调度,所以就会发生context switch,比如:

所以,context switch是task模型的必备操作。

与task model相关的另外一个概念就是:task manager,比如Task Manager (Windows)