You are on page 1of 14

Employ real time operating systems to manage

computing resources.
a) Describe scheduling concepts of real time systems

Real-time systems are designed to respond to events or inputs within a


specific time frame to meet timing constraints. Scheduling in real-time
systems is crucial to ensure that tasks are executed in a timely and
deterministic manner. Here are some key scheduling concepts in real-
time systems:
Task: In real-time systems, the work to be done is often divided into
tasks. A task is a unit of work with a specific purpose that needs to be
executed by the system.
Hard Real-Time vs. Soft Real-Time: Real-time systems are categorized into
hard real-time and soft real-time systems. Hard real-time systems have strict and
non-negotiable timing constraints. Failure to meet these constraints can lead to
catastrophic consequences. Soft real-time systems also have timing constraints,
but missing a deadline does not necessarily lead to failure, although it degrades
system performance.
Deterministic Scheduling: Real-time systems require deterministic scheduling,
meaning that the time it takes to execute a task is predictable and consistent. This
helps in meeting the deadlines associated with tasks.

Priority-Based Scheduling: Tasks in a real-time system are often assigned


priorities based on their criticality and timing requirements. Higher priority tasks
are scheduled before lower priority tasks. Priority-based scheduling ensures that
more critical tasks are given precedence.
Rate Monotonic Scheduling (RMS): RMS is a priority assignment algorithm
used in real-time systems. It assigns priorities to tasks based on their periods,
with shorter periods receiving higher priority. This algorithm is optimal for a set
of independent periodic tasks.
Earliest Deadline First (EDF): EDF is another priority assignment algorithm
that schedules tasks based on their absolute deadlines. The task with the earliest
deadline is scheduled first. EDF is optimal for a set of sporadic tasks.
Preemption: Preemption allows a higher-priority task to interrupt the execution
of a lower-priority task. In real-time systems, preemption is often necessary to
meet the timing constraints of critical tasks.
Resource Sharing and Contention: Real-time systems must carefully manage
the sharing of resources among tasks to avoid contention and ensure that critical
tasks can access resources when needed.
Jitter: Jitter refers to the variability in the execution time of tasks. Minimizing
jitter is important in real-time systems to ensure predictable and consistent task
execution.
Deadline Miss Ratio: This metric measures the percentage of tasks that miss
their deadlines. In hard real-time systems, achieving a low deadline miss ratio is
crucial.
Synchronization: Real-time systems may involve synchronization mechanisms
to coordinate the execution of tasks, especially in multi-tasking environments.
b)Describing resource handling for real time
systems
In real-time systems, efficient and deterministic resource handling is crucial to
meet strict timing constraints and ensure reliable performance. Resources in this
context include both hardware resources (such as CPU, memory, and
peripherals) and software resources (such as communication channels and
software components). The following are key aspects of resource handling in
real-time systems:
Resource Allocation: Real-time systems must carefully allocate resources to
tasks based on their priority, criticality, and timing requirements. The allocation
process ensures that high-priority tasks have access to the necessary resources to
meet their deadlines.
Task Synchronization: Synchronization mechanisms are employed to
coordinate the execution of tasks and manage access to shared resources.
Techniques such as semaphores, mutexes, and event flags are used to prevent
conflicts and ensure orderly access to critical sections of code.
Interrupt Handling: Real-time systems often rely on interrupts to handle time-
sensitive events and tasks. Interrupt service routines (ISRs) must be designed to
execute quickly and deterministically to respond to events without introducing
significant delays.
Priority Inversion: Priority inversion occurs when a lower-priority task
holds a resource required by a higher-priority task, causing the higher-priority
task to be delayed. Techniques such as priority inheritance and priority ceiling
protocols are used to mitigate priority inversion and ensure that higher-
priority tasks are not unnecessarily delayed by lower-priority tasks.
Memory Management: Efficient memory management is critical in real-
time systems. This includes strategies for allocating and deallocating
memory, minimizing fragmentation, and ensuring that memory-related
operations do not introduce unpredictable delays.
Resource Reservation: In some real-time systems, resource reservation
techniques are employed to guarantee specific resources for critical tasks
during specified time intervals. This helps in ensuring that critical tasks have
access to the required resources when needed.
Communication and Inter-Process Communication (IPC): Real-time
systems often involve communication between tasks or processes. IPC
mechanisms, such as message passing or shared memory, must be designed to
minimize latency and provide deterministic communication between
components.
Watchdog Timers: Watchdog timers are used to detect and recover from faults
or failures in a real-time system. If a task or component fails to respond within
a predefined time interval, the watchdog timer triggers a system reset or takes
corrective action.
Resource Monitoring and Profiling: Real-time systems often incorporate
monitoring and profiling tools to track resource utilization, identify
performance bottlenecks, and optimize system behavior. This information is
valuable for ensuring that the system operates within its specified constraints.
C) Demonstrate process scheduling and scheduling
algorithms in Realtime systems
• Let's consider a simple example of process scheduling in a real-time
system with two common scheduling algorithms: Rate Monotonic
Scheduling (RMS) and Earliest Deadline First (EDF). We'll use three
periodic tasks:
1.Task A with a period of 10 ms and an execution time of 3 ms.
2.Task B with a period of 20 ms and an execution time of 5 ms.
3.Task C with a period of 30 ms and an execution time of 8 ms.
• Rate Monotonic Scheduling (RMS):
In RMS, tasks are assigned priorities based on their periods, with shorter
periods receiving higher priority.
• Earliest Deadline First (EDF):
In EDF, tasks are scheduled based on their absolute deadlines, with the
task having the earliest deadline scheduled first.
Deadline Order: A (deadline at 10 ms), B (deadline at 20 ms), C
(deadline at 30 ms)
d)Demonstrate computing resource
management for real time system.
• In a real-time system, effective computing resource management is crucial to
ensure that tasks meet their timing constraints and the system operates
predictably. Here, I'll provide a simplified demonstration of computing
resource management using a few key concepts:
• Let's consider a real-time system with two periodic tasks:
1.Task A with a period of 10 ms and an execution time of 3 ms.
2.Task B with a period of 20 ms and an execution time of 5 ms.
• Computing Resource Management:
1.Resource Allocation:
1. Task A and Task B are allocated CPU time based on their priority.
2. Assume Task A has a higher priority than Task B.
2.Scheduling Algorithm:
1. We'll use Rate Monotonic Scheduling (RMS), where tasks are assigned priorities based on their
periods.
1.Priority Order: A (highest), B (lowest)
3.Timeline:
1. Time 0 ms:
1. Execute Task A (3 ms)
2. Time 3 ms:
1. Execute Task B (5 ms)
3. Time 8 ms:
1. Execute Task A (3 ms)
4. Time 13 ms:
1. Execute Task B (5 ms)
5. Time 18 ms:
1. Execute Task A (3 ms)
6. ... and so on.
4.Priority Inversion Handling:
7. If Task B holds a resource required by Task A, priority inversion may occur.
8. Priority inheritance or priority ceiling protocols can be implemented to mitigate priority inversion.
5.Resource Sharing and Contention:
1. If both tasks require access to a shared resource (e.g., a memory region),
mechanisms like semaphores or mutexes can be used to prevent contention.
6.Memory Management:
2. Ensure efficient memory allocation and deallocation to minimize fragmentation.
3. Use memory protection mechanisms to prevent tasks from accessing unauthorized
memory regions.
7.Interrupt Handling:
4. Design interrupt service routines (ISRs) to be fast and deterministic.
5. Use interrupt prioritization to handle time-sensitive events.
8.Resource Monitoring:
6. Implement monitoring tools to track resource utilization, identify bottlenecks, and
optimize system behavior.
9.Fault Tolerance:
7. Introduce fault-tolerant mechanisms, such as redundancy or watchdog timers, to
handle failures.

You might also like