Introduction to operating systems
Software that manages the hardware of a computer is known as an operating system. Additionally, it serves as an intermediary between the user and the computer hardware, providing a basis for application programs. A fascinating aspect of operating systems is the way in which they accomplish these tasks in a variety of computing environments. Various forms of operating systems are found everywhere, including cars and home appliances that are connected by the Internet of Things, as well as smartphones, laptops, desktops, and servers in the cloud.
An understanding of the organization and architecture of computer hardware is essential in order to understand the role of operating systems in a modern computing environment. These include the CPU, memory, I/O devices, and storage. Operating systems are fundamentally responsible for allocating resources to applications.
The functions of operating systems
As shown in the figure below, computer systems can be roughly divided into four components: hardware, operating system, application programs, and users.
The hardware consists of the CPU, memory, and input/output (I/O) devices that provide the system with its basic computing resources. The applications that define how these resources are utilized to solve users' computing problems, such as word processors, spreadsheets, compilers, and web browsers, are known as application programs. A computer operating system is responsible for controlling the hardware and coordinating its use among various applications for different users.
A computer system can also be viewed as a combination of hardware, software, and data. In order for the computer system to function properly, the operating system provides the necessary means for utilizing these resources. An operating system is similar to a government. Like a government, it does not perform any useful functions on its own. It is simply a framework that allows other programs to perform useful tasks within it.
As a way to gain a deeper understanding of the operating system's role, we will examine it from two perspectives: that of the user and that of the computer.
1. The user's perspective
Users view computers differently depending on the interface they are using. In most cases, computer users use a laptop or a PC that includes a monitor, keyboard, and mouse. The purpose of such a system is to allow one user to have monopolistic control over its resources. In this case, the goal is to maximize the user's productivity (or enjoyment). In this case, the operating system is designed primarily for ease of use, with only a minimal amount of consideration given to performance and security, and no consideration of resource utilization - how different hardware and software resources are shared.
It has been observed that more and more users are interacting with mobile devices, such as smartphones and tablets, which are now replacing desktops and laptops for some users. In most cases, these devices are connected to networks via cellular or wireless technologies. It is generally the case that the user interface for mobile computers consists of a touch screen, through which the user is able to interact with the system rather than using a physical keyboard and mouse.
2. The computer perspective
The operating system is the program that has the most direct interaction with hardware from the perspective of the computer. As a result, an operating system can be viewed as a resource allocator. To solve a problem, a computer system may require many resources: CPU time, memory space, storage space, I/O devices, and so on. The operating system is responsible for managing these resources. Having to deal with multiple and possibly conflicting requests for resources, the operating system must decide how to allocate them to specific programs and users in order for the system to operate efficiently and fairly.
Another perspective emphasizes the need to control the various input and output devices as well as user programs within an operating system. An operating system is a program that controls a computer. In order to prevent errors and improper use of the computer, a control program manages the execution of user programs. Specifically, it focuses on the operation and control of I/O devices.