Software – Introduction:
As we know stand alone hardware cannot do nothing, for the smooth operation of our Computer System there should be proper coordination between hardware and software. Software helps to mobilize the hardware and other resources. In order to mobilize hardware we have to write several set of instruction which instruct computer what to do, what not o. These set of instruction are collectively know as program and the term software is the collection of related programs and associated documents. In Order to produce useful output, hardware and software must work together. Nothing useful can be done with the hardware only and software cannot be utilize without hardware. The different types of software are:
1) System software: System software is set of one or more programs designed to control the operation of our computer system. This type of software doesn’t fulfill the specific requirement of the user. They are general program written to assist human in the use of the computer system. In general system software support the running of other software, communicate with peripheral device, support the development of other types of software and monitors the use of various hardware resources. Thus, the system software makes the operation of the computer system more effective and efficient. The system software is categorized into two categories.
1.1) System Management: It is responsible for proper management and functioning of the computers system. All types of management between computer hardware and software is performed by system management software. There are 3 types of system management software:
1.1.1) Operating System: Operating system is a collection program that controls the overall operation of the computer system. It is the 1st program that is loaded into memory when the computer is turned on. It provides platform for other application program to run and execute. It provides user with an interface so that uses can easily communicate with computer. For example Linux, Windows, Mac etc
1.1.2) Utility software: It is the supporting software which is used to perform specific task related to the maintenance of the computer system. Some of the utility software are included in operating system where as some are available as separate utility in market. They are also called service program. For example Norton Utility, PC tools, win zip etc
1.1.3) Device driver: A device driver is a software which is responsible for smooth functioning of the hardware device that is connected to the computer. When we add a new device to the computer, we need to install new software called device driver. Device driver will co-ordinate with the operating system and the newly installed hardware functions properly and smoothly.
1.2) System Development: It refers to set of programs that are use to develop computer program. This type of software are not used by a normal user of the computes. They are used by programmers for the development of new program. There are two types of system development software:
1.2.1) Programming language: The language with which we give instruction to the computer is known as programming language. Programming language are the set of different keywords, variable, operators, loops and other symbols etc. They help to make communication between computer and user. These are two types of programming language low level language and high level language.
1.2.2) Language translator: It is a special kind computer software which translates the programs written one language in another language. It is compulsory for both low and high level language. It is also called language processor. The types of language translator are compiler, interpreter and assembler.
2) Application Software: Application software is a set of one or more program which are design to do a specific task. It is made to fulfill the user demand. This program directs a computer to solve user oriented problem such as preparing bills, calculating mathematical equation, preparing mark sheet etc. The software that are develop for user purpose is called application software.These types of software are generally develop by using high level language. for example Ms-Excel, Photoshop, Billing software etc. There are two types of application software.
2.1) Packaged software: They are the generalized set of programs design and develop for general purpose. It is generally large sized, error-free, advance and standard software with much more functionality fir especial work. This type of software doesn’t perfectly match the requirement of many organization or user. They cannot be changed easily are developed and designed by reputed software Company so they are trust worthy. They are expensive for small organization. for example Ms-Office, Adobe, Macromedia etc.
2.2) Customized /Tailored software: This is a software develop in high level language for special task. This types of software is developed for some specific purpose for solving specific problem of specific user or organization. The requirement on the user or organization can be perfectly matched. They can be changed easily since they are made by local programmer. for example: payroll system, inventory management, school management, billing software, mark sheet evaluation etc.
Operating system – Introduction
An operating system (OS) is an integrated set of program that controls overall resources such as CPU, memory, input-output device of the computer system. The major objective of operating system is to improve the performance and efficiency of a computer system. Like the manager of a company, an operating system is responsible for the smooth and efficient functioning of the entire computer system. The operating system provides the platform for other application program/software to run and execute. It provides user with an interface so that user can easily communicate with computers, which is more convenient to use and operate.
An operating system is a collection of program that controls the overall operation of the computer system. It also controls and co-ordinate the use of hardware, among the various application program for various user. So, it act as an interface between user and the computer hardware. The other major functions of operating system are:
- It controls, monitor and co-ordinate overall operation of our computer system.
- It act as an interface between user and computer.
- It provide platform to develop, run and execute other computer program.
- It manages hardware resources such as CPU, memories, input-output terminals, networking equipment etc.
- It hides programming and hardware complexity to the user.
The primary goal of an operating system is to maximize the productivity of a computer system by operating it in most efficient manner and maintaining the amount of human intervention. Some example of operating system are: MS-DOS, Windows, LINUX, MACOS, UNIX, Chrome, Fedora, Ubuntu etc.
Functions / Features / Advantages of Operating System (OS) – V.imp
1) Input-Output (I/O) Management: Input-Output is essential to operate any computer. It allows computer to interact with several peripheral devices such as keyboard, mouse, printer, scanner etc.
2) User Interface (UI): User Interface means an ideal environment in which user can work on it so that s/he can interact with the computerized system. Every operating system provides the feature of user interface in order to enhance the experience and joy of using computer or any other computerized system. It act as a bridge between user and computer. There are 2 types of user Interface.
- Character/Command User Interface ( CUI ): Eg MS-DOS
- Graphical User Interface (GUI ): Eg Windows, MAC OS
3) Security: The operating system of a computer has a number of built-in tools to protect against security threats such as viruses, unauthorized access, suspicious network activity etc. The basic security in a OS is to control access to your computer by setting users and password.
4) Process Management: The process management allocates a processor to execute a chosen process. OS acts as a traffic controller, job scheduler, process scheduler and dispatcher.
5) Memory Management: Memory is a large array of bytes, each with its own address. When the user request CPU for read-write operation. OS determines the amount of memory required for the program instruction and data. Then OS allocates required memory to load the program and data into RAM. When the program terminates it freeze up the space and new program is loaded.
6) Data Management: Data management allows organizing their data into logical grouping called files.Earlier Operating system does not provide features of data management. Hence, they were inflexible but nowadays, every operating system provide this feature.
7) Command Interpreter: The command interpreter reads the command that a user types in at a terminal, interprets them and translate them into detail set of instruction that computer hardware can understand. Every operating system must have command interpreter for its operation.
8) Dead-Lock prevention: During processing a situation can arise in which a resources shared by two or more process cannot continue because the resources required by a process is held by other. This situation is known as dead lock. For eg. If process-1 allocates resources A and later required resources B and process-2 allocates resources B and later requires resources A. In this situation neither process-1 nor process-2 will be executed. Such situation is called deadlock. Operating system ensure prevention of deadlock by taking situation action by careful allocation of resources.
9) Time sharing: The function of OS that involves CPU to allocate time in a number of user on same computer. This property generally found in network operating system such as windows NT.
10) Virtual Memory: Virtual memory is the feature of an operating system that allows a computer to compensate for shortage of physical memory by transferring temporary files from RAM to disk. Virtual memory has twice as many address as main memory. The process of translating virtual address into real address is known as mapping. The copying of virtual pages from disk to main memory is swapping.
Types of Operating System (OS) – V.imp
Types of Operating System (OS) | ||
Basis of Processing | Basis of User Interface (UI) | Basis of mode of user |
Multi programming OS | Character User Interface | Single user |
Multi tasking OS | Graphical User Interface | Multi user |
Multi processing OS | ||
Time sharing OS | ||
Batch processing OS | ||
Multi threading OS | ||
Online processing OS | ||
Real time OS |
A) On the basis of processing
1) Multi-programming OS: Multi-programming is used in multi-user environment. It is the technique in which multiple user program are executed simultaneously by single processor. Multi-programming means when two or more than two program are provided to the CPU for processing or loaded in the internal storage of CPU at the same instant of time. From the loaded program once the portion of one program is executed and the portion of another program is executed and so on. Thus, multi-programming refers to concurrent execution of several program. The main purpose of multi-programming is to increase the utilization of computer and its resources. Different forms of multi-programming OS are multi-tasking, multi-processing and multi-user.
2) Multi-tasking OS: Multi-tasking OS allows more than one program to run concurrently mainly in a single user system. These computer are capable of executing several tasks or program at the same time. For executing several task it can be single or multi-processing system. In some multi-tasking system one of the process is called fore-ground (active) other are called background (inactive). Multi-tasking OS increase the productivity of the user by executing many task simultaneously. Some of the most common example are MS-Windows, Linux, MAC OS etc.
3) Multiprocessing OS: Multi-processing system has more than one processor linked in a coordinated way. Multiprocessing OS supports running a program in more than one CPU. Generally, super server are especially designed to support multiple processor. UNIX is commonly used multi-processing OS. Multi-programming and multiprocessing are no the same concept. Multi-programming involves concurrent execution of two or more programs by a single CPU, whereas multi-processing involves two or more processor (CPU) for controlling the different activities or execution of many program simultaneously. Multi-processing concept is also known as parallel processing. It is more costly and complex technique the multi-programming which dramatically increase the program execution speed of computer.
4) Time-Sharing OS: Time sharing is a technique which enable many people located in various terminal to use a particular computer system at a same time. Processors time which is shared among multiple user simultaneously is termed as time sharing. Multiple jobs are executed by the CPU by switching between then, but the switches occurs so frequently that user can receive a immediate response.
Advantages:
- Provide quick response.
- Reduce CPU idle time.
Disadvantages:
- Problem of reliability.
- Less security.
- Integrity.
5) Batch processing OS: Batch processing is a technique which requires grouping of similar jobs, which consists of program, data and system command. It is also known offline processing. This type of processing is suitable in program with large completion or involvement. For example, Payroll, Weather forecasting, Statistical analysis and many more. User need not wait while the job is being processed. They can submit their program to the operator and collect them later which means, the jobs are entered stored on a disk in a batch or queue and is executed one after another under the control of the OS.
Major disadvantage of batch processing is that it does not allow interaction between user and program during execution.
6) Multi-threading OS: A program in execution is known as process and can be divide into multiple smaller sub process. This sub-process are known as thread. Multi-threading OS has the ability to divide process into threads and execute them concurrently. Threads are individual process that execute simultaneously in multi-tasking OS.
7) Real time OS: Real time processing method is one that controls environment by receiving data and taking action quickly to affect the functioning of the environment at the same instant of time. It is an online processing system in which processing time is critical. The entire processing task has to be completed in the predefined time. The real time OS is suitable for following type of operation.
- Airlines or flight seat availability.
- Rocket Launching system
- Whole sell supplier and manufacturer. etc
8) Online processing OS: It is a popular processing technique at present. In this method transaction are processed as soon as it happen at the place of its origin. It is quite simple compare to real time OS. In this type, user can interact or provides input during processing as well. The output is provided back to the user as soon as processing is completed.
B) On the basis of User Interface ( UI )
A user interface allows user to interact with the computer system. It provides user with an ideal environment so that user can experience better computing. It brings structure to the interaction between user and computer. Without user interface it is almost impossible to operate a computer smoothly. Hence, in order to enhance the experience of using computer, UI plays vital role. Mainly there are 2 types of User Interface (UI).
- Character User Interface (CUI)
- Graphical User Interface (GUI)
1) Character User Interface (CUI): It is a type of operating system in which whole computer operates or depend upon the command issued by user. All the operations that take place in CUI have their own specific command. Hence, they are known as Character User Interface. User have to remember all the command need to operate the computers. So, they are non user friendly. Only the people people having technical knowledge would operate this type of operating system. It is primitive type of OS, in which graphics, pictures, icons, drop-down menu, dialogue box etc are not used which make it more difficult to use. It uses the character or text mode of computer such as DOS and UNIX. A command prompt is a sequence of character used in CUI. Commands are typed in to instruct computer. MS-DOS is a Character User Interface operating system.
The major advantage of this type of OS is they can have quick response as long as user enters correct command whereas, the disadvantages of command driven User Interface is that, they are very difficult to use if the user is beginner and doesn’t know correct command. However, it can be used in older system with no processing capabilities and low storage.
Features of CUI
- It is single user and single tasking operating system.
- Less user friendly than GUI.
- Commands are used to instruct the computer.
- User needs to remember the command for operating this system.
- It cannot display graphics, icon, pictures and multimedia.
- It is faster then GUI system
- Pointing devices such as mouse, joystick, track-pad are not recognize.
- It can be used in low memory and low processing computer.
2) Graphical User Interface (GUI): It is a type of operating system in which computer are operated just by clicking or selecting the required icon or dialogue box instead of writing a direct command to the system. Since graphics like icons, pictures, drop-down menus, dialogue boxes etc are used which makes it more user-friendly than CUI. Since, user doesn’t have to remember a single command, every user without technical knowledge can also use this type of OS. Due to user friendly interface, they are simple to use and widely used for domestic application. The goal of graphical operating system is to create a system that the computer user can turn on and operate in right way without any training or by remembering commands. The main advantages of GUI is that they are easy to use especially for beginners. The main disadvantage of GUI is they consume more memory for operation.Windows, MAC OS etc are the example of GUI.
The first Graphical User Interface was designed by Xerox corporations Palo’s Alto research center in 1970’s, but it was not popular whereas in until the 1980’s the emergence of Apple Macintosh that use GUI became popular.
Features of GUI
- It is user-friendly. So, it is easy to use.
- User don’t have to remember supports full multimedia and animation.
- It requires larger memory for its processing.
- GUI environments supports full multimedia and animation.
- It can be used in network environment.
- It is multi-tasking, multi-programming, multi-user operating system.
- Every type of peripheral devices can be used.
GUI environment have following basic components.
Icon: Icons are the small pictures that represent commands, files or windows.
Pointer: A symbol (usually angled arrow) that appears on the display screen and that are moved to select objects and commands. They are controlled by a pointing device such as a mouse, track pad, light pens etc.
Desktop: The area on the display screen where icons are grouped is refereed as desktop.
Windows: Windows are displayed on screen and we can change their shape and size at will. Each windows can run a different program or display different information.
Menus: Most graphical user interface let us to execute commands by selecting a choice from a menu.
Folders: Graphical representation of a directory.
Differentiate between Character User Interface and Graphical User Interface [ CUI v/s GUI ] V. imp
Character User Interface [ CUI ] | Graphical User Interface [ GUI ] |
In CUI has to interact with the applications by making use of commands. | It is a user interface in which user interact with applications by making use of graphics |
CUI stands for Character User Interface. | GUI stands for Graphical User Interface. |
In CUI only one task can run at a time i.e. Single tasking | In GUI more than one task can run at a time simultaneously. |
It is not user friendly interface. | It is very user friendly interface. |
The user do everything by using commands. | Everything are interacted by pointing the application using devices like mouse. |
Faster than GUI. | Slower than CUI. |
Older computers were operated on CUI. | Modern computers use GUI. |
eg DOS, UNIX etc | eg, Windows, MAC-OS |
C) On the mode of user:
There are two types of OS on the basic of mode of user.
- Single User.
- Multi User.
1) Singe User: A single user OS is a type of OS that is develop and intended for use on a computer or similar machine that will only have a single user at any given time. This is the most common type of OS used on a home computer as well as on computer in office or other work environment. There are two general type of single user system. Single user single tasking and another is single user multi tasking. The example of single user single tasking are not much ore feasible for general purpose computing. For eg MS-DOS, PC-DOS etc
2) Multi User: Multi user OS is computer operating system that allows multiple user on different terminal to access a single system with one OS in it . A multi user OS differs from a single user system on network, in that each user is accessing same OS at different machine. The multi user OS shares computer resources among different users, allowing each user a small slice of the processor time. This concept is also known as time sharing. Due to that, it gives the user the impression that they are all being served simultaneously even though the OS serves them one at a time for example: Linux, UNIX etc.
Some important Operating System in use:
Open source Operating System: Open source generally refers to those applications which source code is freely available in the internet to the world wide user. Basically, the software that falls under general public license are open source software. User can customize the source code of the open source software according to the user requirements. They need not buy the license to use the software. Source code can be modified and re-distributed to any other person legally. This software are free of cost. Some of the examples of Open Source Software are Linux, Unix, Mozilla, Apache etc. Similarly, Open Source operating system are those operating system whose program code are open to all the user. Some common examples of open source operating system are Linux, Unix, Minix, Open Solaris etc.
UNIX: UNIX is a powerful flexible and manageable operating system with good utilities and communication abilities. It is multi-user, multi-tasking and multi-processing operating system. It is used in bigger size machine like mainframe and mini computer. It was develop by AT&T Bell lab around 1970 AD. UNIX is developed in C and Assembly language. The development of the UNIX has given birth to many operating system such as Linux, Solaris etc. These operating system inherits its main feature from UNIX.
Linux: It is open source powerful UNIX based operating system, that can run on variety of platform including Intel, Power PC, DEC Alpha processor as well as multiprocessing system. It was developed by Linux Torvalds at the university of Helsinki as a college project. He release the version of Linux including all the source code. It is user develop product, meaning that user around the world who ran this OS for their own use have develop many of its components and drivers. It is multi-user, multi-tasking and multi-programming OS mainly popular for server system. It is distributed through different distributor such as Red Hat, Open USE, Ubuntu, Fedora, Debian, Granular Linux, Mandriva etc
MAC OS: MAC OS is a popular GUI based OS for Apple Inc. It is used in Apple Macintosh computer. It has very high quality graphical user interface. Earlier version of this OS were only compatible with motorola 68000 series of processors but now they are compatible with Intel processors also.
Some terminologies related with OS.
Spooling: These process is used to balance the difference in speed of high speed CPU and slow speed input-output device. It is primarily used for printing purpose. When we provide multiple file to print to printer together, although printer can print one file at a time. But, all file get lined up in a queue and get printed one by one. In this process, CPU remains free and user can work on other application. These technique of printing is possible through a capability of operating system known as spooling. The term spooling is derive from the term SPOOL ( Simultaneous Peripheral Operation On Line ).
Process: A process is basically a program in execution. It doesn’t mean a program. Program itself is a static while process is dynamic. For simplicity we can define program as a job that resides into the secondary storage ( which is not loaded in main memory ). A process is a program which is currently in running or ready state ( which is loaded in main memory ). A process in a computer maybe in a different possible state.
- Running state: A process is said to be in running state if it is currently running in the processor.
- Ready state: A process is said to be in ready state if it is temporary stopped to let other process run in the processor.
- Blocked state: A process is said to be in blocked state if it is unable to run until some external events happens.
Thread: A single process is divided into multiple sub-process and even once of process goes for input-output operation another piece of same process start executing. This minimize the burden of context switching to some extend. When multiple process are loaded in a memory at once. When one process goes in blocked or ready state, another process is chosen by the scheduler to be in running state. During this phase, the current state of previously running process must be stored somewhere, so that it can resume from that state at the next time. This mechanism is known as context switching. It is very costly operation and it reduces efficiency. To solve such problem newer operating system use the mechanism of threading ( Light-weight process ).
Scheduling: When more than one process are run the operating system must decide which one to run first. This part of OS concerned with this decision is called scheduler and the algorithm it use is called scheduling algorithm. Scheduling can be two types.
- Priority scheduling: Each program or job is assigned with a priority set to the program. In this scheduling job or program having highest priority are treated first or selected to run. The only demerits of this scheduling that small job may have to wait for longer period of time due to having less priority.
- Time-sharing scheduling: Each program loaded in a memory are given fixed amount of time to execute. Every program that are to be executable have equal processing time. So that none of the job depends upon the time taken by another job while processing.
Buffering: A buffer is a small, high-speed storage device, located in I/O units, used to hold data at the time of input/output operations. So it is divided into the input buffer and output buffer. Input buffer accepts data as low speed and release at high speed at CPU, output buffer works in reverse order, it accepts data at high speed from main memory and releases at low speed to output device. Buffering is the process of using buffer during I/O operation. The term buffering is also used while accessing files like audio/video through the internet. Here, it is the process of holding downloaded data before it can be played.
Virtual Memory: In a multi-programming system, when we use multiple programs at the same time, the space of primary memory (RAM) may not be enough to store all the programs. In this case, operating system uses free space of secondary memory to store these data. This free space in secondary memory, used to store the contents of primary memory temporarily is known as virtual memory. An operating system is responsible for creating, managing and operating virtual memory.
It is not an actual memory but it is a technique used by operating system to execute large size program with small size available primary memory. This is done by dividing the larger program into small size segments known as pages.