Operating System Structure
Operating System Structure
In this lecture, we will be discussing the structure of operating systems. We will focus on multi-programming and multitasking, which are two important topics in operating system design.
Multi-Programming
- Every operating system must be capable of multi-programming.
- Multi-programming means the capability of running multiple programs by the CPU.
- Multi-programming increases CPU utilization by organizing jobs so that the CPU always has one to execute.
- Jobs are kept in a job pool, and a subset of these jobs is loaded into memory for execution.
Multitasking (Time Sharing)
- Every operating system must be capable of multitasking or time-sharing.
- Jobs are assigned to the CPU by the operating system to help execute them efficiently.
- In multi-programming, when a job goes to use other resources like I/O devices, the CPU is released and can be used by another job until it becomes available again.
Memory Management
- Memory management is an essential part of any operating system's structure.
- The OS manages memory allocation and deallocation for processes running on it.
- Virtual memory allows processes to use more memory than physically available in RAM.
Process Management
- Process management involves creating and managing processes within an OS environment.
- The OS creates new processes as needed and terminates them when they are no longer required.
Device Management
- Device management involves managing input/output devices such as printers, keyboards, etc., connected to the computer.
- The OS manages device drivers, which are software components that allow the OS to communicate with hardware devices.
Security and Protection
- Security and protection are essential aspects of any operating system's structure.
- The OS provides security features such as user authentication, access control, and encryption to protect data from unauthorized access.
Conclusion
- In conclusion, we have seen that operating systems vary in their makeup internally but share commonalities such as multi-programming and multitasking. Memory management, process management, device management, security, and protection are other critical aspects of an operating system's structure.
Multi-Programming and Multi-Tasking
This section discusses the concepts of multi-programming and multi-tasking, highlighting their similarities and differences.
Multi-Programming
- Multi-programming is a technique used to utilize CPU resources efficiently by executing multiple jobs simultaneously.
- It allows for the execution of different tasks at the same time, ensuring that system resources like CPU, memory, and peripheral devices are used effectively.
- It does not provide for user interaction with the computer system.
Multi-Tasking
- Multi-tasking or time-sharing systems allow for the execution of multiple jobs by switching among them.
- The switching occurs so frequently that users can interact with each program while it is running.
- It requires an interactive or hands-on computer system that provides direct communication between the user and the system.
- A time-shared operating system allows many users to share the computer simultaneously.
Comparison
- Both multi-programming and multi-tasking involve executing multiple jobs simultaneously.
- In multi-programming, there is no user interaction with the computer system. In contrast, in multi-tasking, users can interact with each program while it is running due to frequent switching between jobs.
Introduction to Multi-Programming and Time-Sharing Systems
In this section, we will discuss multi-programming and time-sharing systems. We will learn how the CPU scheduling algorithm decides how the system's time is shared among users.
Users in a Time-Sharing System
- Each user is provided with a small portion of the time-shared system.
- Each user has at least one separate program waiting in memory to be executed.
- A program loaded into memory and executing is called a process.
CPU Scheduling Algorithm
- The CPU scheduling algorithm decides how the system's time is shared among users.
- We will discuss CPU scheduling algorithms in detail in later lectures.
Conclusion
- Process is an important term as far as operating systems are concerned.
- This concludes our discussion on multi-programming and time-sharing systems.