Computer system is made up of computer hardware & software. Hardware is a physical part of computer system & we call logical part of system is a software. So, operating system is fall in the computer software. Operating system plays an important role between user & computer hardware. It works like a mediator between the computer hardware & user.
There are three categories of software.
a) System Software
b) Application Software
c) Software Development Languages & advanced & web tools
An Operating System is fall in the category of system software. OS is a bridge between computer hardware & user.
System Software consists of programs that control the operations of computer system itself. This software is specially design for the system.
Software that can perform a specific task for the user, such as word processing, accounting, budgeting fall under the category of application software.
Some software is design to develop software by using specific language is sometime called as web tools.
Components Of Computer System:
There are four Components Of Computer System:
1) Hardware: These are the physical part of machine which provides basic computing resources. Classification of hardware are; Input Devices, Output Devices, CPU, Networking Devices, Other Devices like motherboard, Power Supply, DVD Writers, etc.
2) Operating System: OS plays important role here. It works like a mediator between the computer hardware & user. Since it is system software, it can interact with hardware. User use different programs or application called as software.
3) Application Program: Application Program is the way in which the system resources are used to solve the computing problems of the user. E.g. web browser, video games, etc. Applications are readymade packages ready to use.
4) Users: Users are the human being, machines & other computers. Following figure shows the components of computer system.
Function Of Operating System:
1. Resource Management: This function of OS allocates computer resources such as CPU time, main memory, secondary storage and input and output devices for use.
2. Data management: It observes input and output of the data and their location, storage and retrieval.
3. Task management: Task is a collection of one or more related programs and their data. This function prepares, schedules, controls and monitors jobs submitted for execution to ensure the most efficient processing.
4. Allocation of Resources: Handles system resources such as computer’s memory and sharing of the central processing unit (CPU) time by various applications or peripheral devices
5. Communication between User and Computer : Provides a user interface, e.g. command line, graphical user interface (GUI).
6. Transferring input from input devices to memory & transferring input from memory to CPU.
7. Operating system provides number of services such as for the programmer it provides utilities i.e. debugger, editors, file management which refers to the way that the operating system manipulates, stores, retrieves and saves data. It interpret the commands executed by the user. It handle disk input/output settings.
1. Process Management – Managing the programs that are running.
2. Memory Management – Managing and rationing the memory between processes and data.
3. Storage Management – Managing the permanent Storage of data on disks or other media
4. I/O Management – Managing the input and output
5. Device / Resource Management – Managing devices and resources and allowing the users to share the resources
6. Security and Protection – Securing the system against possible unauthorized access to data or any other entity. Protecting the parts of the system against damage.
7. Booting the System and getting it ready to work.
Operating System Evaluation & Generations:
History of operating system is of a great interest & it is strongly linked with the development & history of different generations of computer. Following are the generation of computer system:
1. Zeroth Generations Computers: (Mechanical Parts 1792-1871)
The first zeroth generation computer was made up of analytical engine which was designed by an English Mathematicians Charles Babbage. This machine was mechanical design with wheels, cogs, gears, etc. This machine was able to do certain basic calculation only. Due to slow speed &unreliability, this design was not to popular.
2. First Generation Computers:
Around mid-1940 first generation of computer is develop be Howard Aiken at Harvard, John von Neumann. This generation gave electrical design instead of mechanical one. Due to electrical design the machine speed was fast as compare to mechanical design. This machine was a calculating machine with vacuum tube as a central component. But vacuum tubes were having the problem of heating & they required the large space as compare to other components in the machine. Due to the heating problem & space vacuum tubes were unreliable. In this generation, the programs written were in machine language. Again there was no OS in this system.
3. Second Generation Computers: (1955-1965)
Around 1955 the vacuum tubes were replaced by transistors. The problem of space & size was solved. The cost of machine was changed dramatically. The drawback of transistors was the current leakage due to this problem the transistors are replaced in the third generation. An assembly language was a second generation languages. Second generation followed batch system. i.e. one by one job were executed in the system. Assembly languages are; Basic, COBOL, FORTRAN.
4. Third Generation Computers: (1965-1980)
The transistors were replaced by Silicon chin in third generation. In this generation IBM introduce the range of system/360 series of machines, which were knows as “Family of Computers”. For this range they delivered the following OS:
CP-67/CMS for powerfull 360/76, using virtual storage, OS/MVT for bigger 360 system, OS/MFT for medium 360 system, DOS/360 for the small 360 system.
5. Fourth Generation Computers: (1980 & Present)
The personal computers were designed with the development of LSI (Large Scale Integration) circuits & the chips having thousands of transistors on silicon. Initially, personal computers are called as microcomputer because their architecture were same. During mid-1980 two important OS for network were developed; Network OS & Distributed OS.
OS can be defined as a system software without which machine can not boot. There are various types of OS available as per the requirements of processing. Following are the various types of OS:
1. Batch Processing System
2. Multi-programming System
3. Multitasking System
4. Time Sharing System
5. Desktop System
1. Batch Processing System:
• In early days punch cards were used to record the user’s jobs. But, this was manual & tedious job which was done by human operator. To avoid the continuous human operators devotion the concept of batch processing grown up.
• A batch stands for the sequence of user jobs. In this type of OS the job sequences was decided by an operator. The job is recognized with the special markers which were indicating the start & end of those jobs.
• In system jobs were submitted to the batch processing system & then those were executed automatically without any operator interruption. After execution of a job, it was send to that particular user who owes it. Each job was an independent job in a batch.
• Batch monitor or supervisor was the major component which permanently placed in the part if the memory. Another part of memory is used to process user’s job. i.e. the current job in the batch. A batch monitor area is also known as system working area & current job of batch is known as user working area. Following figure shows
Batch Monitors Function:
Following are the function of BPS;
3. Sharing & Protection
The first two functions were done before the execution of program & third one was done after job was done.
• Scheduling is the activity of determining which service request should be handled next by a server. Here, service request means the user jobs & server is nothing but CPU.
• BPS uses FCFS scheduling criteria. i.e. the job which comes first is executed first . i.e. as per job sequences jobs are executed.
2. Memory Management:
• During batch processing operations, memory is divided into two parts called system area & user area. An issue of partitioning of memory for system area & user area is handled by an operating system area.
3. Sharing & Protection:
• These are the major function which OS provides for the purpose of multi user system. The sharing of the data can be done by choosing an appropriate OS. This result in reducing the cost of hardware & processing time.
2. Multi-programming System:
• Multi-programming is the most important features of an Operating System. A single user cannot keep I/O devices as well as CPU busy. Using Multi-programming techniques we can avoid CPU & I/O devices idle time & maximum processing can be done.
• Multi-programming is a technique to execute number of programs simultaneously by a single processor. In this OS, number of processes resides in main memory at a time.
• From the pool of jobs OS picks one job & begins executing it. While execution is stop due to some reason i.e. job may wait for some time e.g. may be waiting for storage or for any sort of I/O operation.
• In Non- Multi-programming system OS may wait or idle, but in Multi-programming system an OS will switch to next job & will start executing it. When this current job is wait it switch to next job & so on. In this way Multi-programming technique continuously keep CPU & I/O devices in use.
• Another method is used for keeping CPU devices is continuously in use we can use spooling & buffering techniques.
In Short: Multi-programming is also the ability of an operating system to execute more than one program on a single processor machine. More than one task/program/job/process can reside into the main memory at one point of time. A computer running excels and Firefox browser simultaneously is an example of multi-programming.
• The solution to the slowness of I/O devices is buffering. In buffering when input devices accept data, it transfers to CPU for process. At this time instead of keeping I/O devices idle, input devices are instructed to accept next data. When it finishes accepting new data, CPU get free & starts processing next data.
• The temporary memory is used to for buffering or storing the data. In the same way output can also be kept continuously busy.
• The task of taking input, processing the inputs & producing the outputs were perform simultaneously. Due to spooling it is possible for the input devices to accept more data; also it is possible to store the output till O/P devices gets ready for accepting the data.
Advantages: a) High CPU Utilization b) Main memory utilization
Disadvantages: a) CPU scheduling is required b) It requires memory management, as multipl jobs are stored in memory.
3. Multitasking System:
• A Multitasking OS is distinguished by its ability to support simultaneous or concurrent execution of two or more processes.
• The characteristics of multitasking OS are its capability to execute more than one task concurrently. The multitasking is achieved by simultaneous maintenance of code & data of several processes in the memory at the same time & CPU & I/O resources are multiplexed among the active task; i.e. the CPU switches from one task to another for reading & processing. Thus idle time of peripherals gets reduced.
• In Multitasking resources are made continuously working.
• Multiple jobs are executed by the CPU switching between them.
In Short: Multitasking is the ability of an operating system to execute more than one task simultaneously on a single processor machine. Though we say so but in reality no two tasks on a single processor machine can be executed at the same time. Actually CPU switches from one task to the next task so quickly that appears as if all the tasks are executing at the same time. More than one task/program/job/process can reside into the same CPU at one point of time.
4. Time Sharing OS:
• Time sharing OS is also called as multitasking system. It is logical extension of multiprogramming. Multiple jobs are executed by switching the CPU between them. In this the CPU time is shared by different processes, so it is called as “Time Sharing OS”. Time slice is defined by the OS, for sharing CPU time between processes.
• A time sharing OS uses multiprogramming technique to support multiple programs. But, the strategies of the scheduling & memory allocation used by timesharing system are different from the multiprogrammed batch systems.
• In time sharing system, users can run two or more processes at any given time, while in a batch system; only one program at a time can be executed.
• Eg. In this OS, one process translates a document from one format to another, at the same time another process can read a mail file. Thus, a time sharing OS allows many users to share the computer simultaneously.
• In this OS the time is managed properly for multiple users in an interactive manner & at a reasonable cost.
5. Desktop System:
• Desktop System is generally a single user system. i.e. it is dedicated to a single user. Desktop system is also called as personal computers. In this system user convenience is more important than resource utilization. The waiting time for the person was minimized with this system.
• This OS is user friendly which provides maximum user convince & responsiveness.
Multiprocessor System: (Parallel System)
• The today’s normal machines are generally single processor system. i.e. they use just a single CPU for processing. The new concept or trend evolving in the market is multiprocessor system.
• More than one processor can be placed in a single cabinet which shares bus, resources, and clock & might be memory. These systems are called as tightly coupled systems.
• The main advantages of parallel systems are to get maximum work done in shorter period. Also this is an economical solution for the users. i.e. instead of many single CPU system they can choose a multiprocessor system.
• The same copy of the data into main memory can be shared by multiple processors for processing them instead of making its copies. The system provides reliability that if one processor gets failed the system does not get halt or fail.
• The most common multiprocessor system uses symmetric or asymmetric multiprocessing.
• In symmetric multiprocessing the same copy of OS is assigned to both the processor & in asymmetric multiprocessing the same copy of OS is assigned to other processor.
• Advantages of Multiprocessor system:
- Increased throughput
- Increased reliability
In Short: Multiprocessing is the ability of an operating system to execute more than one process simultaneously on a multi processor machine. In this, a computer uses more than one CPU at a time.
• An OS that manages a group of independent computers & makes them appear to be single computer is known as a Distributed System. Due to the development of computer network the importance of distributed computing will increase.
• Distributed Systems are loosely coupled systems. They are exactly opposite to tightly coupled systems i.e. Multiprocessor systems. In this OS processor does not share memory or devices even clock. Each processor has got its own memory. The processor will communicate with each other through high-speed buses or telephones lines.
• The two processors in this system may be different i.e. they may be microprocessors, workstations, minicomputers, etc. The main advantages of distributed systems are resource sharing. If number of sites or machines is connected to each other then user can shares the resources of other terminal or sites.
• Due to the partitioned of the computation the work gets done in short period so, it increase the speed of computation.
• If any machines or node gets fail, the other machines can work continue. i.e. reliability is good.
• Communication among the different system is possible. It may be electronic messaging or file transfer or exchange of program or data.
• Clustered architectures interconnect two or more computers using additional networks & software technology to make a single virtual or logical server. Clustered system also uses multiple CPUs as the multiprocessor system. These systems also perform the computational work by using multiple CPUs. The difference between clustered system & multiprocessor systems is that clustered system is composed of two or more individual system coupled together.
• Clustered System are defined as the clustered computers sharing storage & closely linked by a local area network. In Clustered System, even if one or more system fails, the service will be continued.
• Clustered System are integrated with hardware & software cluster. Hardware cluster means sharing of high performance disks. Software cluster is in the form of unified control of the computer system in a cluster.
• Clustered system can be categorized in two groups: Symmetric & Asymmetric clustering. In asymmetric clustering, there is a hot-standby host machine which monitors the active server. If server fails, this host becomes the active server. In symmetric clustering, there are two or more hosts that run the application & also monitor each other. This mode is more efficient because, it uses all the available hardware.
Real Time Operating System:
• A real time system has well defined fixed time constraints. Processing should be done within the defined constraints -Hard and Soft real time system.
• The system is also known as online system. In this system reports or result O/P in given time constraint. An instant O/P are generated in this type of system, some of the examples of these system are Railway Reservation, Airline Reservation, Flight Control System, Banking, etc.
• Real Time system is also called as Multitasking System. Multiple jobs are executed by CPU switching among them.
• Logical extension of Multiprogramming System.
o Hard real-time
• Guarantees critical task completion on time.
• Secondary storage limited or absent, data stored in short term memory, or read-only memory (ROM)
• Conflicts with time-sharing systems, not supported by general-purpose operating systems.
• Advanced OS features are absent (e.g. virtual memory is absent).
• Less restrictive.
• A critical real time task gets priority over other tasks and it retains its priority until it completes.
• Limited utility in industrial control of robotics.
Example – Flight Control System All tasks in that system must execute on time.
Example: Satellite application of real time OS-The satellite connected to the computer system sends the digital samples at the rate of 1000 samples per second. The computer system has an application program that stores these samples in a file. The sample sent by the satellite arrives every millisecond to the application. So computer must store or respond the sample in less than 1 millisecond. If the computer does not respond to the sample within this time, the sample will lost. Some of the examples of Real time systems are : A web server, A word processor, An audio/video media center, A microwave oven, A chess computer.
Features of Recent OS:
• The most recent OS includes various releases by Microsoft. And these OS have following features:
- User Friendly
- Multitasking & Multiprogramming
- Online Compatibility
- High GUI Interfaces
- Plug & Play Technology
- High Security
- Stand alone & Multiuser Features
- Easy Updating in Programs.
- Function Of OS:
• Resource Management
• Data Management
• Job (Task) Management
• The allocation of Resources
Difference Between Multitasking and Multiprogramming:
|1.In multiprogramming, more than one program lies in the memory i.e. in terms of operating system, the scheduler selects the jobs to be placed in ready queue from a number of programs. The ready queue is placed in memory and the existence of more than one program in main memory is known as multiprogramming.||1. Multitasking means performing multiple tasks in parallel. Usually, CPU processes only one task at a time but the switching of CPU between the processes (also known as Context Switching) is so fast that it looks like CPU(or processor) is executing multiple processes at a time.|
|2. Since there is only once processor, there can be no simultaneous execution of different programs. Instead the operating system executes part of one program, then the part of another and so on.||2. In multitasking systems the CPU executes multiple jobs by switching among them, but the switching occurs so frequently that the users can interact with each program while it is running.|
|3. Multiprogramming is the simple form of parallel processing in which several programs run at the same time on a processor.||3. Multitasking is a logical extension of multiprogramming in which several tasks executed at same time.|
|4. Example of multiprogramming, we open word, excel, access and other applications together but while we type in word other applications such as excel and access are just present in main memory but they are not performing any task or work. Or we can say that are not being used at the same time.||4. Example of multitasking, we listen to music and do internet browsing at the same time (they execute parallel).|