|WP1 - RTOS State of the Art Analysis: Deliverable D1.1 - RTOS Analysis|
|Prev||Chapter 10. RTEMS 4.5+||Next|
RTEMS executive does not implement multiprocess environment with separated application address spaces. As a result, next functions supporting independent process creation and deletion are not implemented: fork(), execl(), execv(), execle(), execve(), execlp(), execvp(), pthread_atfork() and wait().
RTEMS executive is focused on multithread applications and its Task Manager supports full set of functions in classic and POSIX API. Cancellation functions are implemented by Cancellation Manager.
Table 10-1. Thread Creation and Deletion calls
|POSIX API||Classic API||Description|
|pthread_create()||rtems_task_create()||Create a new thread of execution.|
|pthread_exit()||rtems_task_delete()||Destroy a thread.|
|pthread_cancel()||Cancel a thread at the next cancellation point.|
|pthread_detach()||Detach a thread so it doesn't need to be joined.|
|pthread_join()||Join a thread waiting for its exit status.|
Event-driven, priority-based, preemptive scheduling
Optional rate monotonic scheduling
RTEMS do not provide any special API call to schedule peritodic threads.
255 executive kernel priority levels (1 the highest till 255 the lowest)
POSIX API defines its own priority range from 1 to 254 (1 the lowest and 254 the highest)
Maximal number of threads can be defined for each application and configurable maximum depends on amount of available memory.
Threads can be created dynamically.
Controlled thread deletion?. Yes