Search This Blog

Saturday, 26 November 2011

Need for Software in Computers

0 comments

HARDWARE & SOFTWARE 

The physical devices used to form a computer are called Computer Hardware. Examples for computer hardware are: Monitor, Keyboard, Printer, Hard Disk Drive, and Floppy Disk Drive etc. Computer hardware is responsible for implementing all necessary operations such as accepting user input, storing data, performing calculations, and displaying or printing results.
Hardware can’t operate on its own. To make them work, we need a set of programs called Software. Software that runs on PCs can be classified into four major categories:
  1. Operating Systems like DOS, Windows 95 and UNIX
  2. Programming languages such as Basic, Fortran, COBOL, and C++
  3. Application programs/packages such as Word Processors, Spreadsheet, and Database Management Systems
  4. Other application programs that can do a specific job such as Accounting, Payroll, Billing, Weather forecasting and Ticket Reservation software
Software
Software consists of computer programs that control the operations of computer hardware. Computer programs are nothing but sequence of instructions given by a programmer to perform certain operations on the computer. One of the most critical functions of software is to direct the workings of computer hardware. There are two basic types of software: System software and Application software.

System Software
System software is a set of programs designed to coordinate the activities and functions of hardware as well as various programs running on the hardware. System software is more system dependant and is designed for a particular hardware configuration. The combination of both hardware and the system software used for accessing the hardware is known as computer system Platform.
The main use of system software is to control the operations of computer hardware and to support the application programs problem-solving capabilities. An Operating System is one of the system software, which acts as an interface or layer between the user and the computer hardware. It also acts as a Resource Allocator, which manages and allocates resources to specific programs and users for performing various tasks on the computer.
Operating System
An OS consists of control routines for operating a computer and provides an environment for the execution of programs. It may be viewed as an organized collection of Software extension to hardware. The following are the two major goals of an OS:
  1. To provide users convenience in operating the system.
  2. To make use of the computer hardware efficiently.
The services provided by an OS can be accessed either directly or indirectly through an application program. Users may interact with the OS directly by means of its commands. Application programs have to user the Operating System API calls to access the computer resources like files and I/O devices.

The primary objective of an OS is to increase the productivity of computer hardware. OS may process its workload serially or concurrently. That is, resources in a computer system may be dedicated to a single program until its completion, or they may be allocated dynamically (whenever required) to execute multiple programs simultaneously.
Potential benefits of concurrent execution of multiple programs include increased performance, resource utilization and responsiveness of a computer system. In a multiprogramming OS, multiple active programs share the system resources like processor, memory and I/O devices.

Have an introduction to Operating System in a presentation here:

Operating System Functionalities
An OS is a set of computer programs that controls the computer hardware and acts as an interface between the application software and the hardware. Every OS is usually stored on disk (primary or secondary) and in files. For instance, DOS bundles its functions in a set of files, such as Command.com, Edit.exe, and Copy.exe.
In Windows, the major functionalities are provided in three Dynamic Link Library (DLL) files: GDI32.DLL, KERNAL32.DLL and USER32.DLL. As soon as a computer system is started, portions of the OS are transferred to memory as they are needed. The various functionalities provided by an OS are listed below:
  1. Performing common computer hardware functions
  2. Providing a User Interface (UI)
  3. Providing a degree of hardware independence
  4. Managing the system memory
  5. Managing the CPU in processing tasks
  6. Providing networking capabilities
  7. Controlling the access to system resources and
  8. Manage the files stored on the hard disk.
The Process & Kernel
A process or task is an instance of a program in execution. It is the smallest unit of work individually scheduled by an OS. A program is a passive entity, whereas a process is an active entity, with a PC (Program Counter) specifying the next instruction to execute and a set of associated resources. Each multiprogramming OS keeps track of all processes and allocates system resources to them according to policies devised to meet design performance objectives.
Kernel is the core or central part of the operating system that controls the most critical processes. It ties all the components of the OS together and regulates other programs.

Here is a live video Tutorial on Operating Systems.  It includes demonstration of some of the Operating Systems used now-a-days - Mac OS X, Fedora and Windows:

Common Hardware Functions
All application programs perform certain tasks as listed below:
  • Get input from keyboard or other input devices
  • Retrieve data from disks
  • Store data on disks
  • Display information on a monitor or printer
Each of these basic functions requires a more detailed set of instructions to complete the particular task. All such functionalities are provided as functions, which contain the set of detailed instructions required by the hardware. A typical OS performs hundreds of such functions, each of which is translated into one or more instructions for the hardware.
User Interface (UI)
A UI allows individuals to access and command the computer system. There are two types of UI: Command-based UI and Graphical User Interface. The early User Interface used in Mainframe and Personal Computer systems was command based.
Command-based OS requires that text commands be given to the computer to perform basic activities. Commands like RENAME and COPY are examples for DOS commands used for renaming and copying the files respectively. On the other hand, GUI based OS provides graphical elements like buttons, frames, pictures and icons to have an interaction with the user.
Hardware Independence
Hardware independence is achieved through the use of API (Application Program Interface). An API is a set of function definitions, which can be used from an application software to avail the services provided by OS.
Programmers can use APIs to create application software without having to understand the inner workings of the OS. Application software makes use of the services available in the OS by making request through the API. The following figure depicts how API links the application software to the OS:

Fig. 3: Use of API in application software
Suppose a computer manufacturer designs a new hardware that can operate much faster than the previous one and the same OS for which an application was developed can run on the new hardware, minimal changes are needed to the application to enable it to run on the new hardware. This in-dependency of application on hardware on which it runs is achieved only through API.

Leave a Reply