Operating Systems: Internals and Design Principles William Stallings Operating Systems review index 2-16 : Architecture & Process 17-22 : Concurrency 23-32 : Scheduling 33-40 : Memory Management 41-48 : File management 49-52 : Distributed Computing Operating System • Exploits the hardware resources of one or more processors • Provides a set of services to system users • Manages secondary memory and I/O devices Operating System • A program that controls the execution of application programs • An interface between applications and hardware • Main objectives of an OS: – Convenience – Efficiency – Ability to evolve A Computer’s Basic Elements • • • • Processor Main Memory I/O Modules System Bus Services Provided by the Operating System • Program development – Editors and debuggers. • Program execution – OS handles scheduling of numerous tasks required to execute a program • Access I/O devices – Each device will have unique interface – OS presents standard interface to users Microkernel Architecture • Most early OS are a monolithic kernel – Most OS functionality resides in the kernel. • A microkernel assigns only a few essential functions to the kernel – Address spaces – Interprocess communication (IPC) – Basic scheduling Benefits of a Microkernel Organization • Uniform interfaces on requests made by a process. • Extensibility • Flexibility • Portability • Reliability • Distributed System Support • Object Oriented Operating Systems Benefits of Microkernel (1) • Uniform interfaces: Processes need not distinguish between kernel-level and userlevel services because all such services are provided by means of message passing. • Extensibility: facilitates the addition of new services as well as the provision of • multiple services in the same functional area. • Flexibility: not only can new • features be added to the operating system, but existing features can be subtracted to produce a smaller, more efficient implementation. • Portability: all or at least much of the processor-specific code is in the microkernel; thus, changes needed to port the system to a new processor are fewer and tend to be arranged in logical groupings. Benefits of Microkernel (2) • Reliability: A small microkernel can be rigorously tested. Its use of a small number of application programming interfaces (APIs) improves the chance of producing quality code for the operating-system services outside the kernel. • Distributed system support: the message orientation of microkernel communication lends itself to extension to distributed systems. • Support for object-oriented operating system (OOOS): An object-oriented approach can lend discipline to the design of the microkernel and to the development of modular extensions to the operating system. Symmetric multiprocessing (SMP) • An SMP system has – multiple processors – These processors share same main memory and I/O facilities – All processors can perform the same functions • The OS of an SMP schedules processes or threads across all of the processors. SMP Advantages • Performance – Allowing parallel processing • Availability – Failure of a single process does not halt the system • Incremental Growth – Additional processors can be added. • Scaling Symmetric multiprocessing (SMP) • An SMP system has – multiple processors – These processors share same main memory and I/O facilities – All processors can perform the same functions • The OS of an SMP schedules processes or threads across all of the processors. SMP Advantages • Performance – Allowing parallel processing • Availability – Failure of a single process does not halt the system • Incremental Growth – Additional processors can be added. • Scaling Multiprocessor OS Design Considerations • The key design issues include – Simultaneous concurrent processes or threads – Scheduling – Synchronization – Memory Management – Reliability and Fault Tolerance Process Control Block • Contains the info about a process • Created and manage by the operating system • Allows support for multiple processes Role of the Process Control Block • The most important data structure in an OS – It defines the state of the OS • Process Control Block requires protection – A faulty routine could cause damage to the block destroying the OS’s ability to manage the process – Any design change to the block could affect many modules of the OS Concurrency Concurrency arises in: • Multiple applications – Sharing time • Structured applications – Extension of modular design • Operating system structure – OS themselves implemented as a set of processes or threads Multiple Processes • Central to the design of modern Operating Systems is managing multiple processes – Multiprogramming – Multiprocessing – Distributed Processing • Big Issue is Concurrency – Managing the interaction of all of these processes Deadlock • A set of processes is deadlocked when each process in the set is blocked awaiting an event that can only be triggered by another blocked process in the set – Typically involves processes competing for the same set of resources • No efficient solution – Deadlock is permanent because none of the events is ever triggered. – Unlike other problems in concurrent process management, there is no efficient solution in the general case. The Three Conditions for Deadlock • Mutual exclusion : Only one process may use a resource at a time. • Hold and wait : A process may hold allocated resources while awaiting assignment of others. • No preemption : No resource can be forcibly removed from a process holding it. Requirement for Mutual Exclusion • 1. Mutual exclusion must be enforced: only one process at a time is allowed into its critical section, among all processes that have critical sections for the same resource or shared object. • 2. A process that halts in its non-critical section must do so without interfering with other processes. • 3. It must not be possible for a process requiring access to a critical section to be delayed indefinitely: no deadlock or starvation. • 4. When no process is in a critical section, any process that requests entry to its critical section must be permitted to enter without delay. • 5. No assumptions are made about relative process speeds or number of processors. • 6. A process remains inside its critical section for a finite time only Strong/Weak Semaphore • A queue is used to hold processes waiting on the semaphore – In what order are processes removed from the queue? • Strong Semaphores use FIFO • Weak Semaphores don’t specify the order of removal from the queue Producer/Consumer Problem • General Situation: – One or more producers are generating data and placing these in a buffer – A single consumer is taking items out of the buffer one at time – Only one producer or consumer may access the buffer at any one time • The Problem: – Ensure that the Producer can’t add data into full buffer and consumer can’t remove data from empty buffer Producer/Consumer Animation Functions • Assume an infinite buffer b with a linear array of elements Producer while (true) { /* produce item v */ b[in] = v; in++; } Consumer while (true) { while (in <= out) /*do nothing */; w = b[out]; out++; /* consume item w */ } Buffer Incorrect Solution Possible Scenario Correct Solution Semaphores Scheduling • An OS must allocate resources amongst competing processes. • The resource provided by a processor is execution time – The resource is allocated by means of a schedule Aim of Short Term Scheduling • Main objective is to allocate processor time to optimize certain aspects of system behaviour. • A set of criteria is needed to evaluate the scheduling policy. Short-Term Scheduling Criteria: User vs System • We can differentiate between user and system criteria • User-oriented – Response Time • Elapsed time between the submission of a request until there is output. • System-oriented – Effective and efficient utilization of the processor Short-Term Scheduling Criteria: Performance • We could differentiate between performance related criteria, and those unrelated to performance • Performance-related – Quantitative, easily measured – E.g. response time and throughput • Non-performance related – Qualitative – Hard to measure Decision Mode • Specifies the instants in time at which the selection function is exercised. • Two categories: – Nonpreemptive – Preemptive Preemptive VS Nonpreemptive • Preemptive scheduling allows a process to be interrupted in the midst of its execution, taking the CPU away and allocating it to another process. • Nonpreemptive scheduling ensures that a processor relinquishes control of the CPU only when it finishes with its current CPU burst Overall Aim of Scheduling • The aim of processor scheduling is to assign processes to be executed by the processor over time, – in a way that meets system objectives, such as response time, throughput, and processor efficiency. Scheduling Objectives • The scheduling function should – Share time fairly among processes – Prevent starvation of a process – Use the processor efficiently – Have low overhead – Prioritise processes when necessary (e.g. real time deadlines) Process Scheduling Example • Example set of processes, consider each a batch job – Service time represents total execution time Process Scheduling Process Burst Time Priority P1 8 3 P2 4 1 P3 3 2 a). Using algorithms: FCFS, SJF, nonpreemptive priority. b). What is the turnaround time ? c). waiting time ? average waiting time ? The need for memory management • Memory is cheap today, and getting cheaper – But applications are demanding more and more memory, there is never enough! • Memory Management, involves swapping blocks of data from secondary storage. • Memory I/O is slow compared to a CPU – The OS must cleverly time the swapping to maximise the CPU’s efficiency Memory Management Memory needs to be allocated to ensure a reasonable supply of ready processes to consume available processor time - Memory Requirement •Relocation •Protection •Sharing •Logical organisation •Physical organisation Page Frame • The number of page frames is the size of memory divided by the page size - Page frame = size of memory/page size • How many bits does the system use to maintain the displacement = as much as page size • Ex: contains 128MB of main memory and has a page size of 8KB Replacement Policies optimal Policy • The optimal policy produces three page faults after the frame allocation has been filled. Least Recently Used (LRU) • Replaces the page that has not been referenced for the longest time • By the principle of locality, this should be the page least likely to be referenced in the near future • Difficult to implement – One approach is to tag each page with the time of last reference. – This requires a great deal of overhead. LRU Example • The LRU policy does nearly as well as the optimal policy. – In this example, there are four page faults First-in, first-out (FIFO) • Treats page frames allocated to a process as a circular buffer • Pages are removed in round-robin style – Simplest replacement policy to implement • Page that has been in memory the longest is replaced – But, these pages may be needed again very soon if it hasn’t truly fallen out of use FIFO Example • The FIFO policy results in six page faults. – Note that LRU recognizes that pages 2 and 5 are referenced more frequently than other pages, whereas FIFO does not. File Management • File management system consists of system utility programs that run as privileged applications • Concerned with secondary storage Criteria for File Organization • Important criteria include: – Short access time – Ease of update – Economy of storage – Simple maintenance – Reliability • Priority will differ depending on the use (e.g. read-only CD vs Hard Drive) – Some may even conflict File Organisation Types • Many exist, but usually variations of: – Pile – Sequential file – Indexed sequential file – Indexed file – Direct, or hashed, file File Allocation Methods • Contiguous allocation: a single contiguous set of blocks is allocated to a file at the time of file creation. • Chained allocation: allocation is on an individual block basis. Each block contains a pointer to the next block in the chain. • Indexed allocation: the file allocation table contains a separate one-level index for each file;the index has one entry for each portion allocated to the file. File Allocation Records-Blocking methods • Fixed-length: records are used, and an integral number of records are stored in a block. - Unused space at the end of a block is internal fragmentation • Variable-length Spanned Blocking: records are used and are packed into blocks with no unused space. Some records may span multiple blocks -Continuation is indicated by a pointer to the successor block • Variable-length unspanned Blocking: Uses variable length records without spanning – Wasted space in most blocks because of the inability to use the remainder of a block if the next record is larger than the remaining unused space Definition : B=block size, R=record size, P=size of block pointer, F=blocking factor(expected number of records with a block) Spanned F = unspanned F= Bit Tables • This method uses a vector containing one bit for each block on the disk. • Each entry of a 0 corresponds to a free block, – and each 1 corresponds to a block in use. • Advantages: – Works well with any file allocation method – Small as possible – Certain amount of memory(in bytes) are required for a block bitmap : Formula? Distributed Computing - Traditional Data Processing • Traditionally data processing was centralised • Typically involving centralised – Computers – Processing – Data Distributed Data Processing • Distributed Data Processing (DDP) departs from the centralised model in one or multiple ways. • Usually smaller computers, are dispersed throughout an organization. • May involve central node with satellites, or be a dispersed peer to peer approach – Interconnection is usually required Middleware • Set of tools that provide a uniform means and style of access to system resources across all platforms • Enable programmers to build applications that look and feel the same • Enable programmers to use the same method to access data • TCP/IP does not provide the APIs and the intermediate-level protocols to support a variety of applications across different hardware and OS platforms Role of Middleware in Client/Server Architecture