# Tasks

A kernel task is defined by:

- Its task type (i.e., a constant value defined by the kernel, unique for each task)
- Its task descriptor, which is a structure as shown in the "Task Descriptor Construction" figure containing all the information about the task:
  - The messages handlers table
  - The states table
  - The number of instances of the task
  - The number of messages it can handle

The kernel keeps a pointer to each task descriptor, which is used to handle the scheduling of the messages transmitted from one task to another.

Figure: Task Descriptor Construction