An operating system (often referred to as OS) is an integrated set of programs that controls the resources (the CPU, memory, I/O devices, etc) of a computer system and provides its users with an interface or virtual machine that is more convenient to use than bare machine. According to this definition, the two primary objectives of an operating system are:
1. Makin a computer system convenient to use- An operating system is a layer of software on top of the bare hardware of a computer system, which manages all parts of the system, and presents to the user with an interface or virtual machine, which is easier to program and use. That is, the operating system hides the details of the hardware resources from the programmer and provides the programmer with a convenient interface for using the computer system. It acts as an intermediary between the hardware and its users, providing a high-level interface to low-level hardware resources, and making it easier for the programmer and other users to access and use those resources.
The logical architecture of a computer system is shown in figure………..
As shown in the figure, the hardware resources are surrounded by the operating system layer, which in turn is surrounded by a layer of other system software (such as compilers, editors, utilities, etc.)and a set of application programs(such as commercial data processing applications, scientific and engineering applications, entertainment and educational applications,etc).Finally, the end users view the computer system in term of the user interfaces provided by the application programs.
2. Managing the resources of a computer system. The second important objective of an operating system is to manage the various resources of the computer system. This involves performing such tasks as keeping track of who is using which resource, granting resource requests, accounting for resource usage, and mediating conflicting requests from different program and users. The efficient and fair sharing of resources among users and/or program is a key goal of most operating systems.
Main Functions of an Operating System
The main functions performed by most operating systems of today are as follows:
1. Process Management- The process management module of an operating system takes care of the creation and deletion of process, scheduling of various system resources to the different processes requesting them, and providing mechanisms for synchronization and communication among process.
2. Memory Management- The memory management module of an operating system takes care of the allocation and deallocation of memory space to the various programs in need of these resources.
3. File Management-The file management module of an operating system takes care of file-related activities such as organization, storing, retrieval, naming, sharing, and protection of files.
4. Security – The security module of an operating system protects the resources and information of a computer system against destruction and unauthorized access.
5. Command Interpretation – The command interpretation module of an operating system takes care of interpreting user commands, and directing the system resources to handle the requests. With this mode of interaction with the system, the user is usually not too concerned with the hardware details of the system.
In addition to the above listed major functions, an operating system also performs few other functions such as keeping an account of which users (or process) use how much and what kinds of computer resources, maintainance of log system usage by all users, and maintenance of internal time clock.
Measuring System Performance
The efficiency of an operating system and the overall performance of a computer system are usually measured in terms of the following:-
1. Throughput – Throughput is the amount of work that the system is able to do per unit time. It is measured as the number of process that is completed by the system per unit time. For example, if n processes are completed in an interval of t seconds, the throughput is taken as n/t process per second during that interval.Throughtput is normally measured in process/hour. Note that the value of throughput does not depend only on the capability of a system, but also on the nature of jobs being processed by the system. For long process, throughtput may be one process/hour: and for short processes, throughtput may be 100 process/hour.
2. Turnaround time – From the point of view of an individual user, an important criterion is how long it takes the system to complete a job submitted by him/her. Turnaround time is the interval from the time submission of a job to the system for processing to the time of completion of the job.Although, higher throughput is desirable from the point of view of overall system performance. Individual users are more interested in better turnaround time for their jobs.
3. Response time - Turnaround time is usually not a suitable measure for interactive systems, because in an interactive system process can produce some output early during its execution and can continue executing while previous results are being output to the user.Hence, another measure used in case of interactive systems is response time, which is the interval from the time of submission of a job to the system for processing to the time the first response for the job is produced by the system.
In any computer system, it is desirable to maximize throughput and minimize turnaround time and response time.