Advanced Operating Systems - Lecture 19: Characteristics of real-time operating systems. This lecture will cover the following: degradation of performance may have catastrophic consequences; features of real-time operating systems; real-time scheduling; static priority-driven preemptive;...
CS703 Advanced Operating Systems By Mr Farhan Zaidi Lecture No. 19 Characteristics of RealTime Operating Systems Reliability Degradation of performance may have catastrophic consequences Fail-soft operation Ability of a system to fail in such a way as to preserve as much capability and data as possible Stability Features of RealTime Operating Systems Fast process or thread switch Small size Ability to respond to external interrupts quickly Multitasking with inter-process communication tools such as semaphores, signals, and events Features of RealTime Operating Systems Use of special sequential files that can accumulate data at a fast rate Preemptive scheduling base on priority Minimization of intervals during which interrupts are disabled Delay tasks for fixed amount of time Special alarms and timeouts RealTime Scheduling Static table-driven Static priority-driven preemptive Traditional priority-driven scheduler is used Dynamic planning-based Determines at load or even compile time when a task begins execution Feasibility determined at run time Dynamic best effort No feasibility analysis is performed Deadline Scheduling Information used Ready time Starting deadline Completion deadline Processing time Resource requirements Priority Subtask scheduler Rate Monotonic Scheduling Assigns priorities to tasks on the basis of their periods Highest-priority task is the one with the shortest period Dynamic Memory Allocation Application Dynamic Memory Allocator Heap Memory Explicit vs Implicit Memory Allocator Explicit: application allocates and frees space E.g., malloc and free in C Implicit: application allocates, but does not free space E.g garbage collection in Java, ML or Lisp Allocation In both cases the memory allocator provides an abstraction of memory as a set of blocks Gives out free memory blocks to application Process Memory Image kernel virtual memory memory invisible to user code stack %esp Memory mapped region for shared libraries Allocators request additional heap memory from the operating system using the sbrk function the “brk” ptr run-time heap (via malloc) uninitialized data (.bss) initialized data (.data) program text (.text) Assumptions Memory is word addressed (each word can hold a pointer) Allocated block (4 words) Free block (3 words) Free word Allocated word Constraints Applications: Can issue arbitrary sequence of allocation and free requests Free requests must correspond to an allocated block Allocators Can’t control number or size of allocated blocks Must respond immediately to all allocation requests i.e., can’t reorder or buffer requests Must allocate blocks from free memory i.e., can only place un-allocated blocks in free memory Must align blocks so they satisfy all alignment requirements byte alignment for GNU malloc (libc malloc) on Linux machines .. .Lecture? ?No. 19 Characteristics of RealTime Operating? ?Systems Reliability Degradation of performance may have catastrophic consequences Fail-soft operation Ability... timeouts RealTime Scheduling Static table-driven Static priority-driven preemptive Traditional priority-driven scheduler is used Dynamic planning-based Determines at load or even compile... Stability Features of RealTime? ?Operating? ? Systems Fast process or thread switch Small size Ability to respond to external interrupts quickly Multitasking with inter-process communication tools