Operating System




Introduction:
An operating system manages and coordinates the functions performed by the computer hardware, including the CPU, input/output devices, secondary storage devices, and communication and network equipment. Operating systems are the most important program that runs on a computer.
Every general-purpose computer must have an operating system to run other programs. Operating systems perform basic tasks, such as recognizing input fro the keyboard, sending output to the display screen, keeping track of files and directories on the disk, and controlling peripheral devices such as disk drives and printers.
The operating system software must keep track of each hardware resource, determine who gets what, when the user will have access to the resource, allocate how much of the resource the user will be given, and terminate access at the end of the use period.
Operating systems vary in complexity from those that support single user microcomputers to those that handle multi-user mainframes. Their complexity depends on the computer system's size and scope, together with the type of performance provided to its users. A single stand-alone microcomputer will have a relatively simple operating system, whereas a mainframe that supports hundred of users accessing the system simultaneously will have one that is far more complex.
The primary purpose of an operating system is to maximize the productivity of a computer system by operating it in the most efficient manner and minimizing he amount of human intervention required. An operating system also simplifies the job of computer programmers, since it includes programs that perform common input/output and storage operations and other standard processing functions.

If you have any hands-on experience on a computer, you know that he operating system must be loaded and activated before you can accomplish other tasks. This emphasizes that operating systems are the most indispensable component of the software interface between users and the hardware of their computer systems.
Many operating systems are designed as a collection of program modules, which can be organized in combination with various capabilities around central module, or kernel. Such operating systems can be tailored to fit the processing power and memory capability of a computer system and the type of processing jobs that need to be done on it. For example, some operating system packages include a selected number of utility programs, language translator programs and even some application programs.
Examples of popular microcomputer operating systems are window, linux, and OS/2 for PCs, Mac OS for apple computers, etc. some examples of operating systems for minicomputers are UNIX OS/400, etc. an example of an operating system for a  mainframe is OS/z.

Functions of an operating system
Even the simplest operating system in a minicomputer or mainframe performs a number of resource management tasks or functions. These functions include job management, batch processing, on-line processing, data management, virtual storage, and input/output management.
·         Job management: job management software manages the jobs waiting to be processed. It recognizes the jobs, identities their priorities, determines whether the appropriate main memory and secondary storage capability they require is available, and schedules and finally runs each job at the appropriate moment.
·         Batch processing: system software is available to support the different methods of processing a job. With batch processing, the most basic method, data are accumulated processed in groups. Payroll applications, for example, are often processed this way. Once in every week, hourly records are grouped and the payroll software is run.
·         On-line processing: in on-line processing, data are processed instantaneously. For example, a sales person may need to find out whether a particular item requested by a customer is in stock for immediate shipment. Using on-line system the request for information will be instantly acknowledged by the on-line software, and the appropriate steps will be taken to access the central database and return the requested information to the terminal from which the request was made. All of these steps take less than a few seconds, at the most. Most on-line operating systems have multi-user and multitasking capabilities.
·         Data management: In the process of managing the resources of the computer system, operating system software also manages the storage and retrieval of data. As the system software handles many of the details associated with this process, such details are not a primary concern for users or programmers writing application programs.
·         Virtual storage: Operating systems also manage the allocation of main memory to specific jobs. Some operating systems have a feature called virtual storage. With this software it is possible to increase the capacity of main memory without actually increasing its size. This is accomplished by breaking a job into sequences of instructions, called pages or segments, and keeping only a few of these in main memory at a time; the remainder are kept on secondary storage devices. As a result, relatively large jobs can be processed by a CPU that in fact contains a relatively small memory.
·         Input/output management: Operating systems also manage the input to and output from a computer system. This applies to the flow of data among computers, terminals, and other devices such as printers. Application programs use the operating system extensively to handle input and output devices as needed. For large systems, the operating system has even greater responsibilities and powers. It is like a traffic policeman-it makes sure that 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.


Classification of operating systems
One way of classifying the operating systems is based on their use-desktop, server, mainframe, etc. another way of classifying the operating systems is based on their capabilities and features-multi user, multiprocessing, multitasking, multithreading, real time, etc. we will see each of these in the following sections.
§         Desktop operating systems: Operating systems that run on desktop computers are the most common. Generally the operating systems in this category include windows, Mac OS and DOS. Windows in its many versions is currently the leading desktop operating system, running on over 90% of all new systems sold. Mac OS runs on apple Macintosh and power PC and was the first widely used operating systems with a graphical interface. DOS was first introduced in 1980 with IBM's original IBM PC. This rapidly dying 8-bit operating system is at the low end of the scale, with character-based interface, single tasking, etc.
§         Server operating systems: computers in a modern organization's networks are connected to one another not directly but through powerful computers called servers that provide security to the networks and route traffic from one network to another, complicated tasks requiring special operating systems. These powerful 32 or 64-bit operating systems are secure, multitasking, multithreading and open. All have recently had graphical user interfaces developed for them. Some examples of server operating systems are UNIX, windows server 2008, eComstation, etc.
§         Mainframe operating systems: In the days when mainframes and minicomputers dominated the computing world, each computer company developed its own operating system. For example, some IBM mainframe computers use an operating system called OS/z and digital equipment corporation minicomputers use one called open VMS. These companies developed not only their own operating systems but also the applications that run on top of them. These are called proprietary systems.
§         Multi-user operating systems: Multi-user operating systems allow two or more users to run programs at the same time. Some operating systems permit hundreds or even thousands of concurrent users. The operating systems of mainframes and minicomputer are multi-user systems. Examples are Z/OS, UNIX, etc. another term for multi-user is time-sharing.
§         Multiprocessing operating systems: Multiprocessing refers to a computer system's ability to support more than one process at the same time. Multiprocessing operating systems enable several programs to run concurrently. Z/OS and UNIX is two of the most widely used multiprocessing systems, but there are may others, including eComstation for high-end PCs. Multiprocessing systems are much more complicated than single-process systems, because the operating system must allocate resources to competing processes in a reasonable manner. Multiprocessing also refers to the utilization of multiple CPUs in a single computer system. This is also called parallel processing.
§         Multitasking operating systems: Multitasking allows more than one program to run concurrently. Multitasking is the ability to execute more than one task at the same time, a task being a program. The terms multitasking and multiprocessing are often used interchangeably, although multiprocessing sometimes implies that more than one CPU is involved. In multitasking, only one CPU is involved, but it switches from one program to another so quickly that it gives the appearance of executing all of the programs at the same time. There are two basic types of multitasking: preemptive and cooperative.                                                            In preemptive multitasking, the operating system parcels out CPU time slices to each program. In cooperative multitasking, each program can control the CPU for as long as it needs it. If a program is not using the CPU, however, it can allow another program to use it temporarily. eComStation, windows vista, windows server 2008, the amiga operating system and UNIX use preemptive multitasking, whereas Microsoft windows vista and the multi finder computers use cooperative multitasking.
§         Multithreading operating systems: Multithreading allows different parts of a single program o run concurrently. Multithreading is the ability of an operating system to execute different parts of a program, called threads, simultaneously. The programmer must carefully design the program in such a way that all the threads can run at the same time without interfering with each other.
§         Real-time operating systems: Real-time operating systems that respond to input immediately. This category includes operating systems designed substantially for the purpose of controlling and monitoring external activities with timing constraints. They are used for such tasks as navigation, in which the computer must react to a steady flow of new information without interruption. Most general-purpose operating systems like DOS and UNIX are not real-time because they can take a few seconds, or even minutes, to react. Some examples of real-time operating systems are:
o       Basic real-time monitor
o       BLML
o       BSO/RTOS
o       C executive
o       CCP
o       CTOS
o       CTRON
o       DES RT
o       DMERT
o       FADOS
o       iRMX
Operating systems provides 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 oprating system. Your choice of operating system, therefore, determines to a great extent the application can run. As a user, you normally interact with the operating system through a set of commands. For example, the DOS operating system contains commands such as COPY and RENAME for copying files and changing the names of files, respectively. The commands are accepted and executed by a part of the operating system called the command processor or command line interpreter. Graphical user interface allow you to enter commands by pointing and clicking at objects that appears on the screen. A Microsoft window is an operating system, which uses a graphical user interface.