An operating system (OS) is software, consisting of programs and data that runs on computers and manages the computer hardware and provides common services for efficient execution of various application software.

For large systems, the operating system has even greater responsibilities and powers. It makes sure those different programs and users running at the same time do not interfere with each other. The operating system is also responsible for security, ensuring that unauthorized users do not access the system. Operating systems provide a software platform on top of which other programs, called application programs, can run. The application programs must be written to run on top of a particular operating system. Handheld computer operating system is designed to provide an environment in which a user can easily interface with the

computer to execute programs. Thus, some operating systems are designed to be convenient, others to be efficient, and others combination of the two. Modern general-purpose computers, including personal computers and mainframes, have an operating system to run other programs, such as application software. Examples of operating systems for personal computers include Microsoft Windows, Mac OS, UNIX, and Linux.

1.1 What is an Operating System?
An operating system is an important part of almost every computer system. An Operating system mainly performs three functions  Convenience: It makes computer more convenient to use  Efficiency: It allows the computer system resources to be used in an efficient manner  Ability to solve: It should be constructed in such a way as to permit the effective development, testing and introduction of new system functions at the same time interfacing with services. It also provides basics for application program and act as an intermediate between a user of a computer and the computer hardware. Without operating System, a computer is basically a useless lump of metal. A computer system can be divided roughly into four components: the hardware, the operating system, the application program, and the users.

spreadsheets. compilers. central processing unit (CPU). such as controlling and allocating memory. controlling input and output devices. . It was purely mechanical design.2 History of Operating Systems An operating system (OS) is a software program that manages the hardware and software resources of a computer. The application program – such as word processors. 1. The OS performs basic tasks. prioritizing the processing of instructions. facilitating networking. First three digital computers were designed by English Mathematician Charles Babbage in 1792-1871. The operating system controls and co-ordinates the use of the hardware among the various application programs for the various users. and web browsers-defines the ways in which these resources are used to solve the computing problems of the user.The hardware. memory. and the input/output (I/O) devices provide the basic computing resources. and managing files.

operated and maintained each machine. bring the card deck down to Input / Output room batch system was to collect a tray full of jobs in the Input / Output room and then read them onto a magnetic tape just to reduce the wasted time. The first computers did not have operating systems. Each user had sole use of the computer and would arrive at a scheduled time with program and data on punched paper cards and tape.2. which were built up from individual transistors. To run a job. Integrated circuits were used. built. Here for the first time between the programmers and maintenance persons. programmed. As the Central Processing Unit time is very precious this wasted time is not significant. In these days a single group of people designed.1. In the early 1950s. Concept of Multiprogramming was introduced.2 Second Generation (1955-65):.3 Third Generation (1965-1980):- Integrated Chips and Multiprogramming In this generation. . providing a major price/performance advantage over second generation machines.2. The program would be loaded into the machine. When the current job was to wait for a tape or other Input / Output operation to complete the Central Processing Unit simply sat idle until the Input / Output finished. then punch it on cards.1 First Generation (1945-1955):- In First Generation Computers with Vacuum tubes and plug boards were evolved.Transistors and batch System. Programming was done in Machine Language.2. Transistors Were introduced. a programmer would first write the program on paper. 1. a computer could execute only one program at a time. and the machine would be set to work until the program completed or crashed. 1.

3 Basic Functions of an operating system At the simplest level. 1. as well as husbanding the limited capacity of the system to the greatest good of all the users and applications.2. the age of personal computers dawned. they include the keypad. It manages the hardware and software resources of the system. A computer. is essentially of no use. consistent way for applications to deal with the hardware without having to know all the details of the hardware. as various programs and input Methods compete for the attention of the central processing unit (CPU) and demand memory. the address book. without any software. managing the hardware and software resources. (On a cell phone. process and retrieve information. chips containing thousands of transistors in a square centimeter of silicon. the phone dialer.1.)It provides a stable. In this capacity. storage and input/output (I/O) bandwidth for their own purposes. providing a consistent application interface. these resources include such things as the processor. the operating system plays the role of the good parent. Usually they are connected together by hardware. universities and government installations are usually called Work Stations (Large Personal Computers).4 Fourth Generation (1980-present):- Personal Computers With the development of LSI (Large Scale Integration) circuits. etc. If it is with its software that it can store. the battery and the network connection. an operating system does two things. is especially important if there is to be more than one of a particular type of computer using the operating system. The most powerful Personal Computers used by business. Personal Computers are not that different from mini computers. is very important. memory. In a desktop computer. disk space. the screen. or if the hardware making up the computer is ever open to change. making sure that each application gets the necessary resources while playing nicely with all the other applications. An . The second task. The first task.

are not real-time. Many concepts and techniques found in operating system have general applicability in other applications. 1. such as DOS and UNIX. User interacts with the computer through operating system in order to accomplish his task since it is his primary interface with a computer.4 Feature of Operating System  Multi-User: Allows two or more users to run programs at the same time.  Real time: Responds to input instantly.  The operating system is also responsible for security.  Multithreading: Allows different parts of a single program to run concurrently.  Multi Tasking: Allows more than one program to run concurrently.operating system is the program that controls all the other parts of a computer system both the hardware and the software. ensuring that unauthorized users do not access the system. General-purpose operating systems. .  Multi Processing: Supports running a program on more than one CPU. Some operating systems permit hundreds or even thousands of concurrent users.  Performs many low-level tasks on behalf of users and application programs. There are many important reasons for studying operating systems. It helps user to understand the inner function of a computer very closely.

determine which processes can utilize which memory locations.  Forgiving: -Errors can be recovered from. or do awkward procedures to accomplish things.1 Resource Management/Allocation  CPU . 1.Not necessary to repeat things.  Powerful: .Has high-level facilities. Provides a way for users to interact with the computer.  Main memory . 1.determine which process the CPU works on. cheap and frequent things are easy. 1.2 Types of resource management allocation  Extended Machine .6.5 Qualities of Operating System  Usability  Robustness: -accept all valid input without error.6. and gracefully handles all invalid inputs.  Convenient: . Reasonable error messages.6 Utilities of operating system 1.  Consistency  Proportionality: .Simple.

6. of course. These services are in the form of utility programs that are accessible through the Operating System. 1.Operating systems as primarily providing its users with a convenient interface are a top-down view. simple view of named files that can be read and written is. to grant resource requests.  Program Execution: Program execution needs instructions and data to be loaded in to main menu.  Access to Input/output devices: Each Input/output device requires its own peculiar set of instructions of control signals for . the operating system. this view of the operating system holds that its primary task is to keep track of who is using which resource.7 Operating system services  Program Creation: Operating system services editors and debuggers. to assist programmer in creating programs.6. to record for usage. The operating system handles all these Tasks for the user.2.The program that hides the truth about the hardware from the programmer and presented a nice.2. Input/output devices and files to be initialized and other resources to be prepared.1 Extended Machine: . The function of the operating system is to present the user with the equivalent of an extended machine or virtual machine that is easier to program than the underlying hardware. and to solve conflicting requests from different programs and users. In short. 1. Resource Manager 1.2 Resource Manager: .

which can be used for billing purposes on a multiuser system. i. Five major achievements in the development of Operating System are  Process  Memory Management  Information protection and security  Scheduling and Resource Management It is somewhat more general term than job. internal and external hardware errors.8.. 1.8 Operating System Concepts: Operating Systems are among the most complex pieces of software.e. such as memory error.operation. various software errors.  Accounting: A good Operating System collects usage statistics for various resources and monitors performance parameters such as response time.  System Access: Operating System controls access to the system as a whole and to specific system resources.1 Process: . Operating system takes care of details so. Three major lines of computer 1. Process is a program that is in execution. inability of Operating System to grant request of an application errors and so on.  Error detection and response: Variety of errors can occur which a computer system is running. the programmers can think in terms of simple read and writes. device failure error.

efficient and orderly 1. Process index register contain the index in to the process list of the process currently controlling the processor.system development created problems in timing and synchronization that contributed to the development of the concept of the process. The entire state of process is contained in its context. If two processes A and B exist in a portion of the main memory. With many jobs in progress at any one time.1. Base and limit register defines the region in memory occupied by the process. • An executable program • The associated data needed by the program • Execution context of program 1.8.8. : Users need a computing environment that supports the flexible use of data. which is maintained by Operating System. each process is Recorded in process list. A process can either be executing or Awaiting execution. To tackle these problems. The concept of process provides the foundation process consists of the following three components.1 Execution context includes the information that the Operating System needs to manage the process and that the processor needs to properly execute the process. it became impossible to analyze all the possible combination of sequences of events. it is required to monitor and control the various programs executing on the Processor in a systematic way.2 Memory Management: . So many errors were detected which were difficult to diagnose because they needed to be distinguished from application software errors and hardware errors. The design of system software to co-ordinate the various activities turned out to be difficult. Thus process is realized as a data structure. each of which involved numerous steps to be performed in sequence. Program counter points to the next instruction in that process to be executed.

Operating Systems meet these requirements with the concept of Virtual Memory and file system facilities. destroy and alter the size of modules dynamically. Some overall protection policies are:  No sharing : In this case. processes are completely isolated from each other and each process has exclusive control over resources statically or dynamically assigned to it. 1.  Protection and Access Control: Sharing of memory at any level of memory Hierarchy. Virtual Memory is a facility that allows program to address memory from a logical point of view without regard to the amount of main memory Physically available.  Automatic Allocation and Management : Programs should be dynamically allocated memory across the memory is required.control of storage allocation.8.3 Information protection and security Operating System must support a variety of protection and security mechanism to computer system and the information stored in them. An Operating System.  Long term storage: Many users and application require means for storing information for extended periods. Operating System must allow portions of memory to be accessible in various ways by various users.  Support of Modular Programming : Programmers should be able to define program modules and to create. to satisfy these Requirements has five principal storage management responsibilities as follows:  Process Isolation: Operating System must prevent independent process from interfacing with data and memory of each other. . Operating System can achieve efficiency by assigning memory to jobs only as needed.

4 Scheduling and Resource Management A key task of the Operating system is manage the various resources available to it (main memory space. and data. security classes are defined to enforce a particular dissemination policy.  Differential responsiveness : On the other hand.  Access Control : Is concerned with regulating user access to the total system.g. I/O devices. 1. and regulating process access to various resources and objects within the system. The operating system should also view these decisions dynamically. This is especially so for jobs of the same class. that is.8. Any resource allocation and scheduling policy must consider the Following three factors:  Fairness : Typically. I/O devices) are given security classifications. if a process is waiting for . we would like all processes that are competing for the Use of a particular resource to be given approximately equal and fair access to That resource. processors) and to schedule their use by the various active processes. Controlled information dissemination : In some systems. The operating system should attempt to make allocation and scheduling decisions to meet the total set of requirements. Users and applications are given security clearances of a certain level. jobs of similar demands. whereas data and other resources (e. the operating system may need to discriminate between different classes of jobs with different service requirements. For example. which are charged the same rate.  Information flow control: Regulates the flow of data within the system and its delivery to users.. sub systems.

This helps to organize the software development process and limits the task of diagnosing and fixing errors. Certain points seem obvious. and in the case of time sharing. and the interfaces must be as simple as possible.  Efficiency : Within the constraints of fairness and efficiency. And finally.the use of an I/O device. the systems have latent bugs that show up in the field and must be fixed and reworked. The modules must have well-defined interfaces to each other. minimize response time. much attention has been given over the years to the software structure of the operating system. The size of a full-featured operating system and the difficulty of the task it addresses have led to three unfortunate but all too common problems. Again. The software must be modular. minimal interfaces between modules. 2. the operating system should attempt to maximize throughput. To manage the complexity of operating Systems and to overcome these problems. Second. First. This goes for new operating systems and for upgrades of older systems. the operating system may wish to schedule that process for execution as soon as possible to free up the device for later demands from other processes. accommodate as many users as possible 1. It also makes the task of system evolution easier.9 System Structure As more and more features have been added to operating systems and as the underlying hardware has become more complex and versatile. With clean. one module can be changed with minimal impact on other modules. performance is often not what was expected. the size and complexity of operating systems has grown. this eases the Programming task. operating systems are chronically late in being delivered.0 Classification of Operating Systems .

But there was one problem in making batch processing efficient that is during this transition from one job to the next. It means that the resources of computer system may be dedicated to a single program until its completion or they may be allocated among several programs in different stages of execution. The feature of operating system to execute multiple programs in interleaved fashion or different time cycles is called as multiprogramming system. the whole process must be restarted from the beginning. Jobs with similar requirement were batched together and run through the computer as a group. the CPU sat idle. 2. To .1 Serial processing:The process of development and preparation of a program in such environment is slow and cumbersome due to serial processing and numerous manual processing. If syntax errors are detected.2 Batch Processing The next logical step in the evolution of operating system was to automate the sequencing of operations involved in program execution and in the mechanical aspects of program development.1 Evolution of Operating Systems An operating system may processes its task serially (sequentially) or concurrently (several task simultaneously).1. In a typical sequence first the editor is called to create a source code of user program written in programming language.2. translator is called to covert a source code into binary code and then finally loader is called to load executable program into main memory for execution.1. 2.

2. 2. The Palm O.2.S.2 Single-user. single tasking As the name implies. for Palm handheld computers is a good example of a modern Singleuser. System supporting multiprogramming approach allows more than utilization. single-task operating system. Resident monitor acts according to the directives given by a programmer through control cards which contain information like marking of job’s beginning and endings. 2. 2. More number of programs competing for system resources better will be resource utilization. a small program called a resident monitor was created which is always resident in the memory. Multiprogramming offers a more efficient approach to increase system performance. These commands belong to job control language.2 Types of operating system: Operating system can be classified into following types based on number of users using the same system simultaneously.2. multi-tasking .3 Multiprogramming A single user cannot always keep CPU or I/O device busy at all. this operating system is designed to manage the computer so that one user can effectively do one thing at a time. It automatically sequenced one job to another job. Multiprogramming has been employed to increase the resource utilization of a computer system and to support multiple simultaneous interactive users (terminals).overcome this idle time. commands for loading and executing programs etc.1.1 Single-user.

2. having a part move more quickly just because system resources .3 Multi-user. Windows 2000 and Novell Netware can each support hundreds or thousands of networked users. For example.4 Real-Time operating System Instruments and industrial systems need Real Time Operating Systems (RTOS). and that each of the programs they are using has sufficient and separate resources so that a problem with one user doesn't affect the entire community of users. and no end-user utilities.S. A very important part of an RTOS is managing the resources of the computer so that a particular operation executes in precisely the same amount of time every time it occurs. In a complex machine. since the system will be a sealed box when delivered for use. The network support and the entire remote user logins the network enables are. `but the operating systems themselves aren't true multi-user operating systems. are both examples of an operating system that will let a single user have several programs in operation at the same time. It's important to differentiate here between multi-user operating systems and single-user operating systems that support networking. 2. The operating system must make sure that the requirements of the various users are balanced. it's entirely possible for a Windows user to be writing a note in a word processor while downloading a file from the Internet while printing the text of an e-mail message.This is the type of operating system most people use on their desktop and laptop computers today.2. The system administrator is the only user for Windows 2000 or Netware. An RTOS typically has very little user-interface capability.2. Windows 98 and the Mac O. in the overall plan of the operating system. multi-tasking A multi-user operating system allows many different users to take advantage of the computer's resources simultaneously.

2. 2.This strategy supports real-time and process control systems.7 Personal computing This strategy supports a single user running multiple programs on a dedicated machine.2. robots. users establish an interactive session with the computer and then provide commands.5 Batch This strategy involves reading a series of jobs (called a batch) into the machine and then executing the programs for each job in the batch. which control satellites. more attention is given to establishing predictable response times from the system. The dedicated strategy must guarantee certain response times for particular computing tasks or the application is useless. These are the types of systems.are available may be just as catastrophic as having it not move at all because the system is busy. 2. and air traffic control. Rather than preparing a job for execution ahead of time. as they are needed during the session.2. This approach does not allow users to interact with programs while they operate. Since only one person is using the machine. .6 Timesharing This strategy supports multiple interactive users. This strategy is quite common today because of the popularity of personal computers. programs and data. Dedicated:.2.

2 Definition and concept of Process Process Management concerns the control of programs within the system. It also includes the current activity. as represent by the value of the program . so the process will execute in either user mode or system mode (system mode has direct access to resources).3 Process State Although each process is an independent entity. stack. Time-shared systems. Textbook uses the terms job and process almost interchangeably. with its own program counter and internal state. is utilizing CPU time resources.e. 3. Process – a program in execution.3. Recall that only the operating system can allocate system resources. Batch system – jobs. process often need to interact with other process.1 Introduction An operating system executes a variety of programs. One process may generate some output that another process uses as an input. In order for different user processes to exist. process execution must progress in sequential fashion. user programs or tasks. the operating system must be able to create and delete both user and system processes. 3.0 Process Management 3. A process is more than the program code. A process includes: program counter. and data section etc. We use the term process to refer to a program that is loaded into computer memory and is being executed i.

e. Two processes may be associated with same program.. To keep track of the state of all the processes.counter and the processor’s registers. The running state means that the process has all the resources it need for execution and it has been given permission by the operating system to use the processor. The operating system is responsible for managing all the processes that are running on a computer and allocated each process a certain amount of time to use the processor. the waiting and ready states are implemented as queues. Processes can be in one of three states: running. In a real operating system. Inside this table. Only one process can be in the running state at any given time. the operating system maintains a table known as the process table. waiting for some external event to occur such as user input or a disk access) or a ready state (i. ready. The remaining processes are either in a waiting state (i. which hold the processes in these states. every process is listed along with the resources the processes are using and the current state of the process. “Different states of a process” 3. waiting for permission to use the processor)..4 Process Scheduling . or waiting.e.

5. 3. the scheduler then either admits the process. the operating system can make the computer more productive. Soft real time systems acceptably in an environment require careful design of the scheduler and related aspect of the operating system.CPU scheduling is the basis of multi-programmed operating systems. 4.5 Real-Time Scheduling 3. The main function of process scheduling is to schedule the process in such a way that none of the resource is wasted. and lack the full functionality of modern computer and operating system. A process is submitted along with a statement of the amount of time in which it needs to complete or perform I/O. Systems are required to complete a critical task within a guaranteed amount of time.1 Hardware real-time systems – required completing a critical task within a guaranteed amount of time. and real time process must have the highest priority. It requires that critical processes receive priority over less fortunate ones. Although adding software real-time functionality to a time sharing system may cause an unfair allocation of resources and may result in longer delays.5. It is less restrictive. The system must have priority scheduling.2 Software real-time computing – requires that critical processes receive Priority over less fortunate ones. By switching the CPU among processes. Hard real time systems are composed of special-purpose software running on hardware dedicated to their critical process. 3. guaranteeing that the process will complete on time.0 VIRTUAL MEMORY .

never used. Virtual memory is a technique that allows execution of processes that may not be entirely in memory. users are freed from worrying about memory requirements and availability.Memory management strategies like paging and segmentation help implement the concept of multiprogramming. Code used to handle error and exceptional cases is executed only in case errors and exceptional conditions occur which is usually a rare occurrence.1 Need for Virtual Memory Technique Every process needs to be loaded into physical memory for execution. 4.  Even though entire program is needed.  Certain features and options provided in the program as a future enhancement. as enhancements are never implemented. It also raises the degree of multiprogramming and increases CPU utilization. One problem with the above strategies is that they require the entire process to be in main memory before execution can begin. . Processes whose memory requirement is larger than the maximum size of the memory available will never be execute.  Static declarations of arrays lists and tables declared with a large upper bound but used with no greater than 10% of the limit. Because of the above features. Another disadvantage is the limitation on the size of the process. Many a time the entire process need not be in memory during execution. Also virtual memory allows mapping of a large virtual address space onto a smaller physical memory. One brute force approach to this is to map the entire logical space of the process to physical memory as in the case of paging and segmentation. But they have a few disadvantages. all its parts may not be needed at the same time because of overlays. may be one or no occurrence in an execution.

ensuring that unauthorized users do not access the system. and others combination of the two. 5. This scheme also has the following benefits:  Physical memory is no longer a constraint for programs and therefore users can write large programs and execute them  Physical memory required for a program is less. Operating system consists of graphical user interface (GUI). It acts as an interface between hardware and software applications.All the examples show that a program can be executed even though it is partially in memory. some operating systems are designed to be convenient.  I/O time needed for load / swap is less. . Thus. Operating system is designed to provide an environment in which a user can easily interface with computer to execute programs. The operating system is also responsible for security. others to be efficient.0 CONCLUSION An operating system (OS) is software that runs on computers and manages the computer hardware and provides common services for efficient execution. Hence degree of multiprogramming can be increased because of which utilization and throughput increase.

Sign up to vote on this title
UsefulNot useful