▼ software | |
▼ include | |
api.h | Implements the API for the user's task and defines the structure Message, used by tasks to exchange messages |
plasma.h | Plasma Hardware Definitions |
services.h | Kernel services definitions. This services are used to identifies a packet |
stdlib.h | Manual implementation of stdlib for HeMPS |
▼ kernel | |
▼ master | |
kernel_master.c | Kernel master is the system manager kernel |
kernel_master.h | Header of kernel_master with important defines |
▼ slave | |
kernel_slave.c | Kernel slave is the system slave used to execute user's tasks |
kernel_slave.h | Kernel_slave is the core of the OS running into the slave processors |
▼ modules | |
applications.c | Implements the function to manage a insertion, accessing, and remotion of an applications structure This modules is only used by manager kernel |
applications.h | Defines structures Application, Task, and Dependence |
cluster_scheduler.c | Selects where to execute a task and application Cluster scheduler implements the cluster resources management, task mapping, application mapping, and also can implement task migration heuristics. Adittionally it have a function named: SearchCluster, which selects the cluster to send an application. This function in only used in the global master mode |
cluster_scheduler.h | This module defines the function relative to mapping a new app and a new task into a given slave processor. This module is only used by manager kernel |
communication.c | Implements the PIPE and MessageRequest structures management. This module is only used by slave kernel |
communication.h | Defines the PipeSlot and MessageRequest structures |
local_scheduler.c | Local_scheduler is a kernel module in charge of implementing task scheduling following a LST (Least Slack Time) algorithm |
local_scheduler.h | Defines Scheduling structure. This struct is used to manages the scheduling informations relative to each task |
new_task.c | This module implements the function of NewTask FIFO. This module is used only by the manager kernel |
new_task.h | This module defines the structure and some the function of NewTask FIFO. The NewTask structure stores information about new task requests received by the manager kernel |
packet.c | This module implements function relative to programming the DMNI to send and receibe a packet. It is a abstraction from the NoC to the software components. This module is used by both manager and slave kernel |
packet.h | This module defines the ServiceHeader structure. This structure is used by all software components to send and receive packets. It defines the service header of each packets |
pending_service.c | This module implements function relative a FIFO of the incomming packets (ServiceHeader FIFO) received by slave and that cannot be immediately handled. This modules is used only by the slave kernel |
pending_service.h | This module defines function relative a FIFO of the incomming packets received by slave by which not can be immediately handled. This modules is used only by the slave kernel |
processors.c | This module implements function relative to the slave processor management by the manager kernel. This modules is used only by the manager kernel |
processors.h | This module defines function relative to the slave processor management by the manager kernel. The Processor structure is defined, this structure stores information relative the slave processor, which are used by the kernel master to search task locations and get the number of free pages of each slave during the mapping processes |
reclustering.c | This module implements function relative to reclustering This module is used by the kernel manager Reclustering is a functionality that enable the system to borrow some resources (free pages) of a cluster to another cluster |
reclustering.h | |
task_control.c | This module implements function relative to task control block (TCB) This module is used by the slave kernel |
task_control.h | This module defines function relative to task control block (TCB) The TCB structure is defined, this structure stores information of the user's task that are running into each slave processor |
task_location.c | This module implements function relative to task location structure. This module is used by the slave kernel The task location gives to the slave kernel, the location (slave process address) of the other task |
task_location.h | This module defines function relative to task location structure. The TaskLocation structure is defined, this structure stores the location (slave process address) of the other task |
task_migration.c | This module implements function relative to task migration. This module is used by slave kernel |
task_migration.h | This module defines function relative to task migration |
utils.c | This module implements utils functions |
utils.h | This module defines utils functions |