Real time systems are the systems that carry real time tasks. These tasks need to be performed immediately with cert degree of urgency. In particular these tasks are related to control of certain events (or) reacting to them. Real time tasks can be classified as heard real-time tasks and soft real-time task.
A hard real time task must be performed on specified time which could otherwise lead to huge losses. In a soft real-time tasks a specified deadline can be missed. This is because the task can be rescheduled (or) can be completed after the specified time,
In real-time systems, scheduler is considered as the must important component which is typically a short-term task scheduler. The main focus of this scheduler is to reduce the response time associated with each of the associated processes instead of handling the deadline.
If preemptive scheduler is used, the real-time task needs to wait until its corresponding tasks time slice completes. In case of non-preemptive scheduler, even if the highest priority is allocated to the task, it needs to wait till the completion of current task. This task can be slow (or) of the lower priority and can lead to a longer wait.
A better approach is designed by combining both preemptive and non-preemptive scheduling. This can be done by introducing time based interrupts in priority based systems which means currently running process in interrupted on a time based interval and if a higher priority process is present in a ready queue, it is executed by preempting the current process.
Based on schedulability, implementation (static (or) dynamic) and result (self (or) dependents) of analysis, the scheduling algorithm are classified as follows.
- Static table-driven approaches:
These algorithms usually performs a static analysis as Sociated with scheduling and captures the schedules that are advantageous. This helps in providing a schedule that can point out a task with which the execution must be started at run time.
- Static priority-driven preemptive approaches:
Similar to the first approach, these type of algorithms also uses static analysis of scheduling. The difference is that instead of selecting a particular schedule, it provides a useful ways of assigning priorities among various tasks in a preemptive scheduling.
- Dynamic planning-based approaches:
Here, the feasible schedules are identified dynamically (at run time). It carry certain fixed time interval and a process is executed if and only if satisfies the time constraint.
- Dynamic best effort approaches:
These types of approaches considers the deadlines in stead of feasible schedules. Therefore the task is aborted if its deadline is reached. This approach is used widely is most of the real-time systems.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Least Slack Time (LST) scheduling Algorithm in real-time systems
- Real Time Systems
- Characteristics of Real-time Systems
- Tasks in Real Time systems
- Conditioning in Real-time Systems
- Resource Reservation Protocol in Real-time Systems
- Difference between Hard real time and Soft real time system
- Difference between Firm Real-time Tasks and Soft Real-time Tasks
- Difference between Real-time Tasks and Non-Real-time Tasks
- Difference between Time Sharing OS and Real-Time OS
- Difference between Seek Time and Transfer Time in Disk Scheduling
- Difference between Turn Around Time (TAT) and Waiting Time (WT) in CPU Scheduling
- Difference between Arrival Time and Burst Time in CPU Scheduling
- CPU Scheduling in Operating Systems
- Embedded Real-time System
- Applications of Real-time System
- Operating Systems | CPU Scheduling | Question 2
- Operating Systems | CPU Scheduling | Question 1
- Two-level scheduling in Operating Systems
- Classification of Events in Real-time System
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.