zephyr/doc/kernel/overview/overview.rst
Rodrigo Caballero d1e57e1569 Doc: Change the Architecture part to the Overview section.
Moves the files from Architecture to the Overview section of the Kernel
Primer. Cross-references and figures were updated to reflect the new
structure. Headings and content were changed as little as possible.
These changes are needed to implement the proposed new structure of the
documentation. Content was changed as created as little as possible.

Change-Id: Id1f91ff6c8f858bfd48ad034594ba38531c7e1c4
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:15:19 -05:00

40 lines
1.6 KiB
ReStructuredText

.. _overview:
Overview
########
The |codename| is composed of a microkernel operating on top of a nanokernel.
Device drivers must operate on top of either a microkernel or a nanokernel
and must be developed accordingly. Applications can be developed to operate
on top of a nanokernel, a microkernel or both.
The |codename| provides three scheduling or execution contexts. The
:abbr:`ISRs (Interrupt Service Routines)` are the execution context closest
to the hardware. They are followed by the fibers execution context. Finally,
the tasks comprise the third and last execution context.
ISRs can interrupt fibers and tasks. By default, it is possible to nest ISRs
but that option can be disabled. The main purpose of ISRs is to mark fibers
and tasks as runnable.
Fibers are typically used for device drivers and performance critical work.
They are cooperatively scheduled and each fiber possesses a priority. Fibers
run until they yield or call a blocking
:abbr:`API (Application Program Interface)`. Once a fiber is marked as not
runnable, the next highest priority fiber runs.
Tasks are used, primarily for data processing. A task is scheduled only when
no fibers are marked as runnable. Tasks can be preempted and the highest
priority task runs first. Tasks of equal priority use round-robin time-
slicing between them.
The following sections describe the general functionality and basic
characteristics of the nanokernel and the microkernel as well as the
principles behind the development of drivers and applications.
.. toctree::
:maxdepth: 1
overview_nanokernel
overview_microkernel
overview_apps