Korea Aerospace University Embedded Systems Laboratory School of Electronics and Information Engineering








Real Time Operating System (RTOS)

Full Field Digital Mammography (FFDM)

Wireless Sensor Networks (WSN, USN)

Embedded Systems (Software and Hardware)


Real-Time Operating System (RTOS)

  • A real-time operating system (RTOS) is a program that schedules execution in a timely manner, manages system resources, and provides a consistent foundation for developing application code. Application code designed on an RTOS can be quite diverse, ranging from a simple application for a digital stopwatch to a much more complex application for aircraft navigation. Good RTOSes are scalable in order to meet different sets of requirements for different applications.


  • A task is an independent thread of execution that can compete with other concurrent tasks for processor execution time. And applications are decomposed into multiple concurrent tasks to optimize the handling of inputs and outputs within set time constraints.

  • System tasks

    . initialization or startup task

    . idle task

    . logging task.

    . exception-handling task

    . debug agent task

  • A typical finite state machine for task execution states

  • Semaphores

      A semaphore is like a key that allows a task to carry out some operation or to access a resource. If the task can acquire the semaphore, it can carry out the intended operation or access the resource.

    • Binary semaphores

        A binary semaphore can have a value of either 0 or 1. When a binary semaphore's value is 0, the semaphore is considered unavailable; when the value is 1, the binary semaphore is considered available.

    • Counting semaphores

        A counting semaphore uses a count to allow it to be acquired or released multiple times.

    • Mutual Exclusion (Mutex) Semaphores

        A mutual exclusion semaphore is a special binary semaphore that supports ownership, recursive access, task deletion safety, and one or more protocols for avoiding problems inherent to mutual exclusion.

  • Message Queues

      A message queue is a buffer-like objects through which tasks and ISRs send and receive messages to communicate and synchronize with data. A message queue is like a pipeline. It temporarily holds messages from a sender until the intended receiver is ready to read them. This temporary buffering decouples a sending and receiving task; that is, it frees the tasks from having to send and receive messages simultaneously.

  • Pipes

      Pipes are kernel objects that provide unstructured data exchange and facilitate synchronizing among tasks.

  • Signals

      A signal is a software interrupt that is generated when an event has occurred. It diverts the signal receiver from its normal execution path and triggers the associated asynchronous processing.

  • Exceptions

      An exception is any event that disrupts the normal execution of the processor and forces the processor into execution of special instructions in a privileged state. Exception can be classified into two categories: synchronous exceptions and asynchronous exceptions.

  • Interrupts

      An interrupt is an asynchronous exception triggered by an event that an external hardware device generates. Interrupts are one class of exception.

  • Deadlocks

      Deadlock is the situation in which multiple concurrent threads of execution in a system are blocked permanently because of resource requirements that can never be satisfied.

    • Deadlock detection

        Deadlock detection is the periodic deployment of an algorithm by the RTOS. The algorithm, examines the current resource allocation state and pending resource requests to determine whether deadlock exists in the system, and if so, which tasks and resources are involved.

    • Deadlock recovery

        After deadlock is detected, the next step is to recover from it and find ways to break the deadlock.

    • Deadlock avoidance

        Deadlock avoidance is an algorithm that the resource allocation system deploys. The algorithm predicts whether the current allocation request, if granted, can eventually lead to deadlock in the future.

    • Deadlock prevention

        Deadlock prevention is a set of constraints and requirements constructed into a system so that resource requests that might lead to deadlocks are not made. Deadlock prevention differs from deadlock avoidance in that no run-time validation of resource allocation requests occurs. Deadlock prevention focuses on structuring a system to ensure that one or more of the four conditions for deadlock i.e., mutual exclusion, no preemption, hold-and-wait, and circular wait is not satisfied.

  • Priority inversion

      Priority inversion is a situation in which a low-priority task executes while a higher priority task waits on it due to resource contentions.

      A resource access control protocol is a set of rules that defines the conditions under which a resource can be granted to a requesting task and governs the execution scheduling property of the task holding the resource.

    • Priority inheritance protocol

        The priority inheritance protocol is a resource access control protocol that raises the priority of a task, if that task holds a resource being requested by a higher priority task, to the same priority level as the higher priority task.

    • Ceiling priority protocol

        In the ceiling priority protocol, the priority of every task is known, as are the resources required by every task. For a given resource, the priority ceiling is the highest priority of all possible tasks that might require the resource.

    • Priority ceiling protocol

        The priority of every task is known in the priority ceiling protocol. The resources that every task requires are also known before execution. The current priority ceiling for a running system at any time is the highest priority ceiling of all resources in use at that time.

(10540) ⵵ 籸 װз 76

76, Hanggongdaehak-ro, Deogyang-gu, Goyang-si, Gyeonggi-do, 10540, Korea

T:+82-2-300-0424 M:+82-10-2242-5136 Email:youngroh@kau.ac.kr;youngs.roh@gmail.com