TYPES OF OPERATING SYSTEMS
Outline Operating Systems Multiprogramming Systems Time-sharing Systems Multitasking Systems Operating System Architectures
OS: A Usual View What is an operating system? An interface between user and hardware. Incorporated for convenience & efficiency. USER OS H/W
Operating System: A Different Prespective The programs implemented in either software and firmware, that make hardware usable. Hardware provides raw computing power. OS makes it convenient to use hardware and achieve good performance.
OS: Real View as Resource Manager Manage hardware : Processors, Storage, I/O Devices, Communication Devices and Data Manage Functions: Implementing user interface, hardware sharing, data sharing among users, facilititating I/O etc. Scheduler File Manager I/O Memory Mgmt Dispatcher
History Earliest (1940 onwards): Electronic Digital Computers had no OS. Programs were entered one bit at a time on rows of mechanical switches. Then, machine language programs were entered on punch cards. Assembly Language were developed. 1950 : First OS by General Motors Research Lab for IBM701. Single Stream Batch Processing System: Only One Job at a Time. Programs and data were submitted in groups and batches.
Batch Processing Systems : Offline Processing 1960 : Running several jobs at a time by utilizing the resources effectively. Many Peripheral Devices such as card readers, punches, printers, tape drives, disk drives. Any job rarely utilized all resources effectively. Running a mixture of jobs to optimize computer utilization.
Batch Processing Systems : Issues Users were not present when their jobs were run. Jobs were submitted on punch cards and would remain waiting till loaded in system. High Waiting time : Ranged from hours to days. Slightest error even comma implies user to correct the error, resubmit the job and the same process reiterates. Solution is : Online Processing
Online Processing: Interactive Users Users communicate with terminals which are directly connected to computers. Here, user is present interacting directly so computer must respond quickly else the productivity suffers. To address the issue : Multiprogramming and time sharing systems were developed.
MultiProgramming (1960) Method of benefiting from the speed of CPU compared to slower peripheral devices, by allowing two or more programs to be processed apparently simultaneously Several Jobs in the main memory at once. I/O bound Vs CPU bound. Uses Interleaving Job 1 Job 2 Job 3 Job 4
Multiprogramming Contd. Advantages: On the spot enter Program, compile it, receive errors, correct them immediately, recompile and continue execution. Significant reduction in development time as no waiting time. Greater CPU Efficiency Complete Memory Utilization Issues: Which Program will be resident? Which resident Program will be executed?
TimeSharing Systems A means of providing multiaccess CPU Comp1 Comp2 Comp3 Comp4
TimeSharing Systems Contd. Fixed Amount of Time given to a process. Either Job completes Or Leaves CPU bcoz of I/O request Or allotted time is over
TimeSharing Systems Contd. Improves Response Time. Provides Interactive Environment Quick Response Time to every user sharing the system. System resources such as printer can be shared.
Multitasking The ability of Computer to do several tasks for a single user at the same time Efficient CPU Utilization Memory Utilization CPU Quick response to single user Slow Response to multiple users User
MultiProcessing Multiprocessor : Computer System with several independent processors, MultiProcessing: CPU operates in parallel either several programs or several parts of same program, share common primary memory and a single operating system. MultiUser : Implements distributed computing. Number of users are connected to one system through dumb terminals assuming each of them have their own copy of resources.
Real-Time Systems Real-time systems Require that tasks be performed within particular (often short) time frame Autopilot feature of an aircraft must constantly adjust speed, altitude and direction Such actions cannot wait indefinitely and sometimes cannot wait at all
Interaction between applications and the operating system
Core Operating System Components User interaction with operating system Often, through special application called a shell Kernel Software that contains core components of operating system Typical operating system components include: Processor scheduler Memory manager I/O manager Interprocess communication (IPC) manager File system manager
Operating System Goals Users expect certain properties of operating systems Efficiency Robustness Scalability Extensibility Portability Security Protection Interactivity Usability
Operating System Architecture Today s operating systems tend to be complex Provide many services Support variety of hardware and software Operating system architectures help manage this complexity Organize operating system components Specify privilege with which each component executes
Types of OS Architectures Architecture Types Monolitihic Layered Microkernel Networked and Distributed Operating Systems
Monolithic Architecture Every component is in kernel Any component can directly communicate with any other Tend to be highly efficient Disadvantage is difficulty determining source of errors
Layered Architecture Tries to improve on monolithic kernel designs Groups components that perform similar functions into layers Each layer communicates only with layers immediately above and below it Processes requests might pass through many layers before completion System throughput can be less than monolithic kernels
Microkernel operating system architecture Provides only small number of services Attempt to keep kernel small and scalable High degree of modularity Extensible, portable and scalable Increased level of intermodule communication Can degrade system performance
Network & Distributed Operating system Network operating system Runs on one computer Allows its processes to access resources on remote computers Distributed operating system Single operating system Manages resources on more than one computer system Goals include: Transparent performance Scalability Fault tolerance Consistency
Network & Distributed Operating system