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
. initialization or startup task
. idle task
. logging task.
. exception-handling task
. debug agent task
A typical finite state machine for
task execution states
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.
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
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
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
Pipes are kernel objects that provide
unstructured data exchange and facilitate synchronizing among tasks.
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
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.
An interrupt is an asynchronous exception
triggered by an event that an external hardware device generates. Interrupts
are one class of exception.
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 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.
After deadlock is detected, the next step is
to recover from it and find ways to break the deadlock.
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 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 is a situation in which a
low-priority task executes while a higher priority task waits on it due to
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
(10540) °æ±âµµ °í¾ç½Ã ´ö¾ç±¸ Ç×°ø´ëÇÐ·Î 76
76, Hanggongdaehak-ro, Deogyang-gu, Goyang-si, Gyeonggi-do, 10540, Korea