Get / set / increment(add) / decrement(sub) a variable in one atomic, uninterruptable operation.
Lists can be used for packet queues and data interchange between two tasks or an ISR and a task. There are two modes of lists, blocking and nonblocking. Nonblocking lists are universal, whereas blocking lists are ideal for packet queues and data interchange in common.
Bottom Halfs are used in conjunction with interrupt service routines. The ISR is the "top half" that does the time critical operations, whereas the "bottom half" does the non critical parts of an usual ISR. Bottom halfs are executed at task level, so all operating system features can be used within a bottom half.
This is a nano-layer feature.
pico]OS supports its own version of printf. The console outputs are serialized, so strings remain readable even when multiple tasks will write to the console. Standard console input from a keyboard is also supported, pico]OS supports a keyboard input buffer and multitasking able functions comparable to getch() and kbhit().
Because pico]OS comes with its own version of the printf-functions, you may not need a runtime library in some special cases, so code size would shrink.
This is a nano-layer feature.
pico]OS comes with its own multitasking able memory manager. The memory manager can be configured to replace the manager from the runtime library, or the memory manager of the runtime library can be used by pico]OS. A locking mechanism ensures task protection, and enables the RTOS core to dynamically allocate memory.
With the dynamic memory manager enabled, pico]OS is capabil to support an "unlimmit count of resources" like events, timer and messages.
This is a nano-layer feature.
The registry is used to store short ASCII strings paired with binary data. This mechanism enables pico]OS to manage named resources, such like named semaphores, mutexes and tasks. This feature enables you to access a semaphore by just nowing their ASCII name, for example. Further more, you can use the registry to store your own (configuration) data.
This is a nano-layer feature.