|
What is an Operating System
An Operating System is a program that controls the execution of application programs and acts as an interface between applications and computer hardware.
There have been five major theoretical advances in the development of Operating System. They are:
- Processes
- Memory Management.
- Information Protection and Security.
- Scheduling and Resource Management.
- System Architecture..
Taken together these five areas span the key design and implementation issues of modern Operating System.
Processes:
A process can be defined as an instance of a program running on a computer. Evolution of the concept of Process was contributed mainly due to timing and synchronization problems caused due to the multiprogramming batch operation, time sharing and real time transaction systems. The design of the system software to coordinate these various activities turned out to be remarkably difficult. A systematic way to monitor and control the various programs executing on the processor was the most sought after solution. This is where the concept of processes came into picture.
A process can either be executing or avaiting execution.
Memory Management:
The need of user can be met best by a computing environment that supports modular programming and the flexible use of data. System managers need efficient and orderly control of storage allocation. The operating system to satisfy these requirements has five principal storage management responsibilities.
- Process Isolation.
- Automatic Allocation and Management.
- Support of Modular Programming.
- Protection and access control.
- Long-term storage.
Typically operating system meets these requirements with virtual memory and file system facilities. The file system implements a long-term store, with information stored in named objects, called files. Virtual memory is a facility that allows programs to address memory from a logical point of view, without regard to the amount of main memory physically available.
Information Protection and Security:
Information Protection and Security has become an important point of concern in today’s world. However there are some general-purpose tools that can be built into computers and operating system that support a variety of protection and security mechanisms.
Much of the work in security and protection as it relates to operating system can be roughly grouped into three categories.
- Access control: Concerned with regulating user access to the total system, sub-system and data within the system.
- Information flow control: regulates the flow of data within the system and its delivery to the users.
- Certification: Relates to proving that access and flow control mechanisms perform according to their specifications and that they enforce desired protection and security policies.
Scheduling and Resource Management:
A key task of Operating System is to manage the various resources available to it and to schedule their use by the various active processes.
Three factors which should always be taken into consideration while formulating any resource allocation and scheduling policy are:
- Fairness
Typically equal and fair access to the resource should be given to all processes that are competing to use that resource, provided jobs are of same demands and priority.
- Differential Responsiveness
Operating Systems should be able to discriminate among different classes of jobs with different service requirements. The operating system should attempt to make allocation and scheduling decisions to meet the total set of requirements.
- Efficiency
The operating system should attempt to maximize throughput, response time, and, in the case of time sharing, accommodate as many users as possible.
System Architecture:
As more and more features have been added to operating system and as underlying hardware has become more capable and versatile/ the size and complexity of operating system has grown.
The size of a fully featured operating system, and difficulty of the task it addresses, has led to three common problems. First operating systems are chronically late in being delivered. Second the systems have latent bugs that show up in the field and must be fixed and reworked. Third, the performance is often not what was expected.
To manage the complexity of operating system and to overcome these problems, there has been much focus over the years on the software structure of the operating system. The software must be modular. The modules must have well-defined interfaces to each other and the interfaces must be as simple as possible. This makes the task of evolution easier as it reduces the programming task. Moreover concepts of hierarchical layers and information abstraction are also being used.
|