Chapter 3 Overview of Operating Systems Copyright © 2008
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere2 Introduction Computing Environments and Nature of Computations Classes of Operating Systems Efficiency, System Performance, and User Service Batch Processing Systems
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere3 Introduction (continued) Multiprogramming Systems Time-Sharing Systems Real-Time Operating Systems Distributed Operating Systems Modern Operating Systems
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere4 Computing Environments and Nature of Computations A computing environment consists of a computer system, its interfaces with other systems, and the services provided by its operating system to its users and their programs Evolution: –Noninteractive Computing Environments –Interactive Computing Environments –Real-Time, Distributed, and Embedded Environments –Modern Computing Environments
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere5 Computing Environments and Nature of Computations (continued) Noninteractive Computing Environments –OS focuses on efficient use of resources –Computations in form of program or job Interactive Computing Environments –OS focuses on reducing average amount of time required to implement an interaction between a user and his computation –Execution of a program is called a process
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere6 Computing Environments and Nature of Computations (continued)
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere7 Computing Environments and Nature of Computations (continued) Real-Time, Distributed, and Embedded Environments –A real-time computation has specific time constraints OS ensures computations complete within constraints –Distributed computing environment: enables a computation to use resources located in several computer systems through a network –Embedded computing environment: computer system is a part of a specific hardware system OS has to meet the time constraints arising from the nature of the system being controlled
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere8 Computing Environments and Nature of Computations (continued) Modern Computing Environments –Has features of several of the computing environments described earlier OS uses complex strategies to manage user computations and resources
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere9 Classes of Operating Systems
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere10 Efficiency, System Performance, and User Service Two of the fundamental goals of an OS: –Efficiency of use Of a resource –User convenience Measurable aspect: User service –Turnaround time –Response time To a system administrator, performance of a system in its environment is more important –Typically measured as throughput
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere11 Efficiency, System Performance, and User Service (continued)
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere12 Batch Processing Systems Batch: sequence of user jobs formed for processing by the OS Batching kernel initiates processing of jobs without requiring computer operator’s intervention Card readers and printers were a performance bottleneck in the 1960s –Virtual card readers and printers implemented through magnetic tapes were used to solve this problem Control statements used to protect against interference between jobs Command interpreter read a card when currently executing program in job wanted the next card
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere13
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere14 Multiprogramming Systems Provide efficient resource utilization in a noninteractive environment Uses DMA mode of I/O –Can perform I/O operations of some program(s) while using the CPU to execute some other program Makes efficient use of both the CPU and I/O devices Turnaround time of a program is the appropriate measure of user service in these systems
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere15 Multiprogramming Systems (continued)
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere16 Multiprogramming Systems (continued)
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere17 Multiprogramming Systems (continued) An appropriate measure of performance of a multiprogramming OS is throughput –Ratio of the number of programs processed and the total time taken to process them OS keeps enough programs in memory at all times, so that CPU and I/O devices are not idle –Degree of multiprogramming: number of programs –Uses an appropriate program mix of CPU-bound programs and I/O-bound programs –Assigns appropriate priorities to CPU-bound and I/O- bound programs
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere18 Priority of Programs
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere19 Priority of Programs (continued) In multiprogramming environments, an I/O-bound program should have a higher priority than a CPU-bound program.
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere20 Performance of Multiprogramming systems How to improve performance?
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere21 Performance of Multiprogramming systems (continued) When an appropriate program mix is maintained, an increase in the degree of multiprogramming would result in an increase in throughput.
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere22 Time-Sharing Systems Provide a quick response to user subrequests –Round-robin scheduling with time-slicing Kernel maintains a scheduling queue If time slice (δ) elapses before process completes servicing of a subrequest, kernel preempts it, moves it to end of queue, and schedules another process –Implemented through a timer interrupt
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere23 Time-Sharing Systems (continued)
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere24 Time-Sharing Systems (continued) Response time (rt): measure of user service –If processing of a subrequest requires δ CPU seconds rt = n × (δ + σ) η = δ / (δ + σ) where η: CPU efficiency, σ: scheduling overhead, n: number of users using system, δ: time required to complete a subrequest Actual response time would be different because –Some users may be inactive –Some programs may require > δ CPU seconds
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere25 Time-Sharing Systems (continued)
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere26 Swapping of Programs Kernel performs swap-out and swap-in operations
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere27 Real-Time Operating Systems In real-time applications, users need computer to perform some actions in a timely manner –To control activities in an external system, or to participate in them –Timeliness depends on time constraints If application takes too long to respond to an activity, a failure can occur in the external system –Response requirement –Deadline: time by which action should be performed
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere28 Hard and Soft Real-Time Systems A hard real-time system meets response requirements under all conditions –It is typically dedicated to processing real-time applications A soft real-time system makes best effort to meet response requirement of a real-time application –Cannot guarantee that it will be able to meet it Meets requirements in a probabilistic manner –E.g., multimedia applications
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere29 Features of a Real-Time Operating System
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere30 Distributed Operating Systems A distributed computer system consists of several individual computer systems connected through a network –Each computer system could be a PC, a multiprocessor system, or a cluster –Many resources of a kind exist in system This feature is used to provide the benefits summarized in Table 3.8 –Handling network or individual computers’ failure requires special techniques –Users must use special techniques to access resources over the network
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere31 Distributed Operating Systems (continued)
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere32 Special Techniques of Distributed Operating Systems
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere33 Modern Operating Systems
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere34 Summary A computing environment consists of a computer system, its interfaces with other systems, and the services provided by its OS to users and programs –Evolved with advances in computer technology: Batch processing systems Multiprogramming operating system –Priority-based scheduling Time-sharing operating systems –Round-robin scheduling with time-slicing
Operating Systems, by Dhananjay Dhamdhere Copyright © Operating Systems, by Dhananjay Dhamdhere35 Summary (continued) Evolution (continued) Real-time operating systems –Priority-based scheduling and deadline-aware scheduling Distributed operating system –Lets programs share resources across network Modern operating system –Modern computing environment has elements of all the classic computing environments –Uses different techniques for different applications