Roadmap Operating System Objectives/Functions The Evolution of Operating Systems Major Achievements Developments Leading to Modern Operating Systems Microsoft Windows Overview UNIX Systems Linux
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
Layers and Views
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
Services cont… Controlled access to files Accessing different media but presenting a common interface to users Provides protection in multi-access systems System access Controls access to the system and its resources
Services cont… Error detection and response Internal and external hardware errors Software errors Operating system cannot grant request of application Accounting Collect usage statistics Monitor performance
The Role of an OS A computer is a set of resources for the movement, storage, and processing of data. The OS is responsible for managing these resources.
Operating System as Software The OS functions in the same way as an ordinary computer software It is a program that is executed by the CPU Operating system relinquishes control of the processor
OS as Resource Manager
Evolution of Operating Systems Operating systems will evolve over time Hardware upgrades plus new types of hardware New services Fixes
Roadmap Operating System Objectives/Functions The Evolution of Operating Systems Major Achievements Developments Leading to Modern Operating Systems Microsoft Windows Overview UNIX Systems Linux
Evolution of Operating Systems It may be easier to understand the key requirements of an OS by considering the evolution of Operating Systems Stages include Serial Processing Simple Batch Systems Multiprogrammed batch systems Time Sharing Systems
Serial Processing No operating system Machines run from a console with display lights, toggle switches, input device, and printer Problems include: Scheduling Setup time
Simple batch system Early computers were extremely expensive Important to maximize processor utilization Monitor Software that controls the sequence of events Batch jobs together Program returns control to monitor when finished
Monitor’s perspective Monitor controls the sequence of events Resident Monitor is software always in memory Monitor reads in job and gives control Job returns control to monitor
Job Control Language Special type of programming language to control jobs Provides instruction to the monitor What compiler to use What data to use
Desirable Hardware Features Memory protection for monitor Jobs cannot overwrite or alter Timer Prevent a job from monopolizing (taking charge) system Privileged instructions Only executed by the monitor Interrupts: Early computer models did not have this capability .
Modes of Operation User Mode User program executes in user mode Certain areas of memory protected from user access Certain instructions may not be executed Kernel Mode Monitor executes in kernel mode Privileged instructions may be executed, all memory accessible.
Multiprogrammed Batch Systems CPU is often idle Even with automatic job sequencing. I/O devices are slow compared to processor
Uniprogramming Processor must wait for I/O instruction to complete before preceding
Multiprogramming When one job needs to wait for I/O, the processor can switch to the other job
Multiprogramming
Time Sharing Systems Using multiprogramming to handle multiple interactive jobs Processor’s time is shared among multiple users Multiple users simultaneously access the system through terminals
Types of OS
Batch Operating System This type of operating system does not interact with the computer directly. There is an operator which takes similar jobs having the same requirement and groups them into batches. It is the responsibility of the operator to sort jobs with similar needs.
Advantages of Batch Operating System Multiple users can share the batch systems. The idle time for the batch system is very less. It is easy to manage large work repeatedly in batch systems.
Disadvantages of Batch Operating System O perators should be well known with batch systems. Batch systems are hard to debug. It is sometimes costly. The other jobs will have to wait for an unknown time if any job fails. processing time for jobs is commonly difficult to predict while they are in the queue. Examples of Batch Operating Systems: Payroll Systems, Bank Statements, etc.
Multi-Programming Operating System If more than one program is present in the main memory and any one of them can be kept in execution. This is basically used for better execution of resources.
Advantages of Multi-Programming Operating System Multi Programming increases the Throughput of the System. It helps in reducing the response time. Disadvantages of Multi-Programming Operating System There is not any facility for user interaction of system resources with the system.
Multi-Processing Operating System It is a type of Operating System in which more than one CPU is used for the execution of resources. It betters the throughput of the System.
Advantages of Multi-Processing Operating System It increases the throughput of the system. As it has several processors, so, if one processor fails, we can proceed with another processor. Disadvantages of Multi-Processing Operating System Due to the multiple CPU, it can be more complex and somehow difficult to understand.
Time-Sharing Operating Systems Each task is given some time to execute so that all the tasks work smoothly. Each user gets the time of the CPU as they use a single system. These systems are also known as Multitasking Systems. The task can be from a single user or different users also.
The time that each task gets to execute is called quantum. After this time interval is over OS switches over to the next task
Advantages of Time-Sharing OS Each task gets an equal opportunity. CPU idle time can be reduced. Resource Sharing Improved Productivity: Time-sharing allows users to work concurrently. Improved User Experience: interactive environment that allows users to communicate with the computer in real time .
Disadvantages of Time-Sharing OS Reliability problem. One must have to take care of the security and integrity of user programs and data. Data communication problem. Complexity Security Risks: With multiple users sharing resources, the risk of security breaches increases. Requires careful management of user access, authentication, and authorization to ensure the security of data and software .
Distributed Operating System These types of operating system is a recent advancement in the world of computer technology Are widely accepted all over the world and, that too, at a great pace. Various autonomous interconnected computers communicate with each other using a shared communication network. Independent systems possess their own memory unit and CPU.
it is always possible that one user can access the files or software which are not actually present on his system But on other system connected within this network i.e., remote access is enabled within the devices connected in that network.
Advantages of Distributed Operating System Failure of one will not affect the network Since resources are being shared, computation is highly fast and durable . Load on host computer reduces . Systems are scalable as many systems can be easily added to the network . Delay in data processing reduces.
Disadvantages of Distributed Operating System Failure of the main network will stop the entire communication . To establish distributed systems the language is used not well-defined yet . These types of systems are not readily available as they are very expensive.
Network Operating System These systems run on a server. P rovides the capability to manage data, users, groups, security, applications, and other networking functions. It allow shared access to files, printers, security, applications, and other networking functions over a small private network.
A ll the users are well aware of the underlying configuration, of all other users within the network. Hence are popularly known as tightly coupled systems.
Advantages of Network Operating System Highly stable centralized servers . Security concerns are handled through servers . New technologies and hardware up-gradation are easily integrated into the system . Server access is possible remotely from different locations and types of systems.
Disadvantages of Network Operating System Servers are costly . User has to depend on a central location for most operations . Maintenance and updates are required regularly . Examples: Microsoft Windows Server 2003, Microsoft Windows Server 2008, UNIX, Linux, Mac OS.
Real-Time Operating System These types of OSs serve real-time systems. The time interval required to process and respond to inputs is very small. This time interval is called response time . Real-time systems are used when there are time requirements that are very strict like missile systems, air traffic control systems, robots, etc.
Types of Real-Time Operating System: Hard Real-Time OS: Used for applications where time constraints are very strict. even the shortest possible delay is not acceptable. These systems are built for saving life like automatic parachutes or airbags which are required to be readily available in case of an accident. Virtual memory is rarely found in these systems.
Soft Real-Time System These OSs are for applications where time-constraint is less strict.
Advantages of RTOS Maximum Consumption: Maximum utilization of devices and systems, thus more output from all the resources . Task Shifting: The time assigned for shifting tasks in these systems is very less. Focus on Application: Focus on running applications and less importance on applications that are in the queue . Error Free: These types of systems are error-free . Memory Allocation: Memory allocation is best managed in these types of systems.
Disadvantages of RTOS Limited Tasks: Very few tasks run at the same time and their concentration is very less on a few applications to avoid errors. Use heavy system resources: Sometimes the system resources are not so good and they are expensive as well. Complex Algorithms: The algorithms are very complex and difficult for the designer to write on.
Examples: Scientific experiments, M edical imaging systems, I ndustrial control systems, W eapon systems, R obots , A ir traffic control systems, etc.
The Various Design Issues Efficiency Robustness Flexibility Portability Security Compatibility
The Various Design Issues Efficiency Robustness Flexibility Portability Security Compatibility
Roadmap Operating System Objectives/Functions The Evolution of Operating Systems Major Achievements Developments Leading to Modern Operating Systems Microsoft Windows Overview UNIX Systems Linux
Single-User Multitasking From Windows 2000 on Windows development developed to exploit modern 32-bit and 64-bit microprocessors Designed for single users who run multiple programs Main drivers are: Increased memory and speed of microprocessors Support for virtual memory
Windows Architecture
Client/Server Model Windows OS, protected subsystem, and applications all use a client/server model Common in distributed systems, but can be used internal to a single system Processes communicate via RPC
Windows Objects Windows draws heavily on the concepts of object-oriented design. Key Object Oriented concepts used by Windows are: Encapsulation Object class and instance
Roadmap Operating System Objectives/Functions The Evolution of Operating Systems Major Achievements Developments Leading to Modern Operating Systems Microsoft Windows Overview UNIX Systems Linux
Description of UNIX
Traditional UNIX Kernel
System V Release 4 (SVR4)
Roadmap Operating System Objectives/Functions The Evolution of Operating Systems Major Achievements Developments Leading to Modern Operating Systems Microsoft Windows Overview UNIX Systems Linux
Modular Monolithic Kernel Although monolithic, the kernel is structures as a collection of modules Loadable modules An object file which can be linked and unlinked at run time Characteristics: Dynamic Linking Stackable modules