Q2. What do you understand by the terms ‘hardware’ and ‘software’? What is their significance? Classify software into its component softwares and give examples of each subtype of software.
Hardware represents the physical and tangible (touchable) components of the computer that is, the components that can be seen and touched. Or we can say that collectively, the electronic, electrical and mechanical equipment that makes up a computer is called Hardware. Input devices, output devices, CPU, floppy disk, hard disk etc. are examples of computer hardware.
Here you should also know another term (which is of course hardware) – peripherals. The peripherals are the devices that surround the system unit, for example, the keyboard, mouse, speakers, printers, monitors etc. are peripherals.
A computer consists of five primary hardware components:
- Input Devices
- CPU (Central Processing Unit)
- Output Devices
- Storage Devices
These components work together with software to perform calculations, organize data, and communicate with other computers.
Software represents the set of programs that govern the operation of a computer system and make the hardware run.
Software can be broadly classified into two categories:
(a) System Software
(b) Application Software
System Software represents the set of programs that govern the operation of a computer system and make the hardware run.
System software can be broadly classified into three categories:
(i) Operating System
(ii) Language Processors
Hardware is nothing but finely designed machinery. A machine is ultimately a machine only, which is always made to work. In case of computers, it is either us if we do that or ‘some other’ which does it for us. This ‘some other’ is nothing but our very own ‘Operating System’.
An operating system is a program which acts as an interface between a user and the hardware (that is, all computer resources).
Operating System is just like our secretary. As the boss gives orders to his secretary and the secretary does all the work for his boss. The secretary himself decides: How to do? What to do? When to do? etc. Same way, we pass our orders/requests to operating system and ‘the Operating System’ does it for us. ‘Operating System’ itself decides: How to do? What to do? When to do? The primary goal of an operating system is thus to make the computer system convenient to use and secondary goal is to use computer hardware in an efficient manner.
An operating system is an important component of a computer system which controls all other components of the computer system.
Major components of a computer system are:
- The Hardware
- The Operating System
- The Application program routines (Compiler, linkers, database management systems, utility programs)
- The Humanware (users)
Where hardware provides the basic computing resources, the application program routines define the ways in which these resources are used to solve the computing problems of the users and the Operating System controls and coordinate the use of the hardware among the various application programs for the various users.
By telling the computer how to perform common functions, the operating system frees the application software to concentrate on producing information. Following figure illustrates how the operating system insulates the user and application software from computer hardware.
Figure: Role of OS
The operating system performs the following functions:
(i) provides the instructions to prepare user-interface, that is, way to interact with user whether through typed commands or through graphical symbols.
(ii) loads necessary programs (into the computer memory) which are required for proper computer functioning.
(iii) coordinates how programs work with the CPU, keyboard, mouse, printer and other hardware as well as with other software.
(iv) manages the way information stored on and retrieved from disks.
There are various types of OSs – single user OS, multiuser OS, batch processing OS, multiprocessing OS etc.
As the names suggest, single user OS supports single user whereas multiuser OS can support multiple users. The batch processing OS processes the batches (groups) of jobs (process given to it) and multiprocessing OS is capable of handling multiple CPUs at the same time.
As programmer prefer to write their programs in one of the High Level Language (HLLs) because it is much easier to code in such languages. However, the computer does not understand any language other than its own machine language (binary language) therefore; it becomes necessary to process a HLL program so as to make it understandable to the computer. The system programs which perform this very job are language processors. The language processors are given below:
This language processor converts the program written in assembly language into machine language.
This language processor converts a HLL program into machine language by converting and executing it line by line. If there is any error in any line, it reports it at the same time and program execution cannot resume until the error is rectified. Interpreter must always be present in the memory every time the program is executed as every time the program is run, it is first interpreted and then executed. For error debugging, interpreter is very much useful as it reports the error(s) at the same time. But once errors are removed, unnecessary usage of memory takes place as it has to be present in the memory always.
It also converts the HLL program into machine language but the conversion manner is different. It converts the entire HLL program in one go, and reports all the errors of the program along with the line numbers. After all the errors are removed, the program is recompiled, and after that the compiler is not needed in the memory as the object program is available.
Therefore, if we combine interpreter and compiler, it gives the best combination for HLL program translation into object code. For the error removal, interpreter can be used and after all the errors are removed the program can be compiled enabling the removal of the language translator from the memory.
This type of software pertains to one specific application. For instance, software that can perform railway reservation functions cannot prepare result for a school.
Application software is the set of programs necessary to carry out operations for a specified application.
These are the programs written by programmers to enable computer to perform a specific task such as inventory control, medical accounting, financial accounting, result preparation, railway reservation, billing etc. Application software can further be subdivided into two categories:
- Customized Application Software
This type of software is tailor-made software according to a user’s requirements. The software is developed to meet all the requirements specified by the user. However, this cannot be directly installed at any other user’s workplace as the requirements of this user may differ from the first one and the software may not fit in the requirements of the new user.
- General Application Software
This type of software is developed keeping in mind the general requirements for carrying out a specific task. Many users can use it simultaneously as it fulfills the general requirements.