Define Operating System
Operating system, OS ((computer science) software that controls the execution of computer programs and may provide various services)
An operating system (commonly abbreviated to either OS or O/S) is an interface between hardware and user; an OS is responsible for the management and coordination of activities and the sharing of the resources of the computer. The operating system acts as a host for computing applications that are run on the machine. As a host, one of the purposes of an operating system is to handle the details of the operation of the hardware.
Operating systems are the software that makes the hardware usable. Hardware
provides “raw computing power.” Operating system makes the computing power
conveniently available to users, by managing the hardware carefully to achieve good
An operating system is a software component that acts as the core of a computer system. It performs various functions and is essentially the interface that connects your computer and its supported components. In this article, we will discuss the basic functions of the operating system, along with security concerns for the most popular types.
Software that controls the allocation and usage of hardware resources such as memory, CPU time, disk space, and input and output devices.
Major Function of an Operating System
Job management controls the order and time in which programs are run and is more sophisticated in the mainframe environment where scheduling the daily work has always been routine. IBM’s job control language (JCL) was developed decades ago. In a desktop environment, batch files can be written to perform a sequence of operations that can be scheduled to start at a given time.
Multitasking, which is the ability to simultaneously execute multiple programs, is available in all operating systems today. Critical in the mainframe and server environment, applications can be prioritized to run faster or slower depending on their purpose. In the desktop world, multitasking is necessary for keeping several applications open at the same time so you can bounce back and forth among them.
Data management keeps track of the data on disk, tape and optical storage devices. The application program deals with data by file name and a particular location within the file. The operating system’s file system knows where that data are physically stored (which sectors on disk) and interaction between the application and operating system is through the programming interface. Whenever an application needs to read or write data, it makes a call to the operating system.
Device management controls peripheral devices by sending them commands in their own proprietary language. The software routine that knows how to deal with each device is called a “driver,” and the OS requires drivers for the peripherals attached to the computer. When a new peripheral is added, that device’s driver is installed into the operating system.
All graphics based today, the user interface includes the windows, menus and method of interaction between you and the computer. Prior to graphical user interfaces (GUIs), all operation of the computer was performed by typing in commands. Not at all extinct, command-line interfaces are alive and well and provide an alternate way of running programs on all major operating systems.
Operating systems may support optional interfaces, both graphical and command line. Although the overwhelming majority of people work with the default interfaces, different “shells” offer variations of appearance and functionality.
Operating systems provide password protection to keep unauthorized users out of the system. Some operating systems also maintain activity logs and accounting of the user’s time for billing purposes. They also provide backup and recovery routines for starting over in the event of a system failure.
The four major functions of an operating system are:
Handling input and output
Services Provided by an Operating System
Following are the five services provided by operating systems to the convenience of the users.
Program Execution (Initial loading of programs and transfer of programs between secondary storage and main memory)
The purpose of a computer system is to allow the user to execute programs. So the operating system provides an environment where the user can conveniently run programs. The user does not have to worry about the memory allocation or multitasking or anything. These things are taken care of by the operating systems.
Running a program involves the allocating and deallocating memory, CPU scheduling in case of multiprocess. These functions cannot be given to the user-level programs. So user-level programs cannot help the user to run programs independently without the help from operating systems.
I/O Operations (Supervision of the input/output devices)
Each program requires an input and produces output. This involves the use of I/O. The operating systems hides the user the details of underlying hardware for the I/O. All the user sees is that the I/O has been performed without any details. So the operating system by providing I/O makes it convenient for the users to run programs.
For efficiently and protection users cannot control I/O so this service cannot be provided by user-level programs.
File System Manipulation (File management)
The output of a program may need to be written into new files or input taken from some files. The operating systems provide this service. The user does not have to worry about secondary storage management. User gives a command for reading or writing to a file and sees his/her task accomplished. Thus operating systems make it easier for user programs to accomplish their task.
This service involves secondary storage management. The speed of I/O that depends on secondary storage management is critical to the speed of many programs and hence I think it is best relegated to the operating systems to manage it than giving individual users the control of it. It is not difficult for the user-level programs to provide these services but for above mentioned reasons it is best if this service s left with operating system.
There are instances where processes need to communicate with each other to exchange information. It may be between processes running on the same computer or running on the different computers. By providing this service the operating system relieves the user of the worry of passing messages between processes. In case where the messages need to be passed to processes on the other computers through a network it can be done by the user programs. The user program may be customized to the specifics of the hardware through which the message transits and provides the service interface to the operating system.
Error Detection (Protection facilities)
An error is one part of the system may cause malfunctioning of the complete system. To avoid such a situation the operating system constantly monitors the system for detecting the errors. This relieves the user of the worry of errors propagating to various part of the system and causing malfunctioning.
This service cannot allow to be handled by user programs because it involves monitoring and in cases altering area of memory or deallocation of memory for a faulty process. Or may be relinquishing the CPU of a process that goes into an infinite loop. These tasks are too critical to be handed over to the user programs. A user program if given these privileges can interfere with the correct (normal) operation of the operating systems.
Components of an Operating System
The operating system comprises a set of software packages that can be used to manage interactions with the hardware. The following elements are generally included in this set of software:
- The kernel, which represents the operating system’s basic functions such as management of memory, processes, files, main inputs/outputs and communication functionalities.
- The shell, allowing communication with the operating system via a control language, letting the user control the peripherals without knowing the characteristics of the hardware used, management of physical addresses, etc.
- The file system, allowing files to be recorded in a tree structure.
History of an Operating System
Historically operating systems have been tightly related to the computer architecture, it is good idea to study the history of operating systems from the architecture of the computers on which they run.
Operating systems have evolved through a number of distinct phases or generations which corresponds roughly to the decades.
The 1940’s – First Generations
The earliest electronic digital computers had no operating systems. Machines of the time were so primitive that programs were often entered one bit at time on rows of mechanical switches (plug boards). Programming languages were unknown (not even assembly languages). Operating systems were unheard of.
The 1950’s – Second Generation
By the early 1950’s, the routine had improved somewhat with the introduction of punch cards. The General Motors Research Laboratories implemented the first operating systems in early 1950’s for their IBM 701. The system of the 50’s generally ran one job at a time. These were called single-stream batch processing systems because programs and data were submitted in groups or batches.
The 1960’s – Third Generation
The systems of the 1960’s were also batch processing systems, but they were able to take better advantage of the computer’s resources by running several jobs at once. So operating systems designers developed the concept of multiprogramming in which several jobs are in main memory at once; a processor is switched from job to job as needed to keep several jobs advancing while keeping the peripheral devices in use.
For example, on the system with no multiprogramming, when the current job paused to wait for other I/O operation to complete, the CPU simply sat idle until the I/O finished. The solution for this problem that evolved was to partition memory into several pieces, with a different job in each partition. While one job was waiting for I/O to complete, another job could be using the CPU.
Another major feature in third-generation operating system was the technique called spooling (simultaneous peripheral operations on line). In spooling, a high-speed device like a disk interposed between a running program and a low-speed device involved with the program in input/output. Instead of writing directly to a printer, for example, outputs are written to the disk. Programs can run to completion faster, and other programs can be initiated sooner when the printer becomes available, the outputs may be printed.
Note that spooling technique is much like thread being spun to a spool so that it may be later be unwound as needed.
Another feature present in this generation was time-sharing technique, a variant of multiprogramming technique, in which each user has an on-line (i.e., directly connected) terminal. Because the user is present and interacting with the computer, the computer system must respond quickly to user requests, otherwise user productivity could suffer. Timesharing systems were developed to multiprogram large number of simultaneous interactive users.
With the development of LSI (Large Scale Integration) circuits, chips, operating system entered in the system entered in the personal computer and the workstation age. Microprocessor technology evolved to the point that it becomes possible to build desktop computers as powerful as the mainframes of the 1970s. Two operating systems have dominated the personal computer scene: MS-DOS, written by Microsoft, Inc. for the IBM PC and other machines using the Intel 8088 CPU and its successors, and UNIX, which is dominant on the large personal computers using the Motorola 6899 CPU family.