Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 9

A computer system consists of two major elements: hardware and software.

Computer hardware is the collection of all the parts you can physically touch.
Computer software, on the other hand, is not something you can touch. Software is a set of
instructions for a computer to perform specific operations. You need both hardware and
software for a computer system to work.
HARDWARE
Computer hardware is the collection of physical parts of a computer system. This includes the
computer case, monitor, keyboard, and mouse. It also includes all the parts inside the
computer case, such as the hard disk drive, motherboard, video card, and many others.
Computer hardware is what you can physically touch. In a computer, hardware is what
makes a computer work.

SOFTWARE
Computer software is the set of programs that makes the hardware perform a set of tasks in particular
order. Hardware and software are complimentary to each other. Both have to work together to produce
meaningful results. A computer program is a list of instructions that tell a computer what to do.
The main difference between hardware and software is that hardware is always in a tangible form
while software is in intangible form and is a set of instruction without which computer can’t operate.
Computer software is classified into two broad categories; system software and application software.

System Software
System software manages and operates computer hardware thereby providing a platform for
other application software. The one name that comes to mind in hearing the words “system
software” is Operating System like Linux, Mac OS X, or Windows. Operating System makes it
possible for different computer parts to work in tandem.
It is also known as low-level software as it operates on the lowest computer level. It makes data
movement possible between the memory and disks and manages the output to display devices.
Another system software is BIOS and firmware.
It act as an interface between the application programs and the computer.

Application Software
Application Software is a software written in a high-level language

Application Software is user specific and is design to meet the requirements of the user. It may be a
computing software, editing software, designing software, etc. That means each Application
Software is designed for a specific purpose.

The Application Software run on the platform created by the System Software. Application Software
is an intermediary between the end user and System Software. You can install multiple Application
Software on a System Software. Application Software is not essential to run a system, but it makes
the system useful. The examples for Application Software are MS Office, Photoshop, etc
Relationship between software & hardware.

In order for a computer to produce useful output , its hardware & software must work together .
Nothing useful can be be done with the computer hardware on its own & software can’t be utilized
without supporting hardware . So , there is a close connection between software & hardware

 Mutually dependent. Both of them must work together to make computer produce a
useful output.
 Software cannot be utilized without supporting hardware.
 Hardware without set of programs to operate upon cannot be utilized and is useless.
 To get a particular job done on the computer, relevant software should be loaded
into the hardware
 If hardware is the 'heart' of a computer system, then software is its 'soul'. Both are
complimentary to each other.

Computer Languages
When user wants to give any instruction to the computer the user needs a specific language and that
language is known as computer language.

Every computer programming language contains a set of predefined words and a set of rules
(syntax) that are used to create instructions of a program.

Computer language establishes a flow of communication between software programs. The language
enables a computer user to dictate what commands the computer must perform to process data. These
languages can be classified into following categories .

1. Machine language

2. Assembly language

3. High level language

Machine Language
Machine Language is the low-level programming languages which is the first generation language
developed for communicating with a Computer.

A computer can directly understand the binary language. Machine language is also known as Machine
Code.The binary language contains only two symbols 1 & 0. All the instructions of binary language
are written in the form of binary numbers 1's & 0's As the CPU directly understands the binary
language instructions, it does not requires any translater.
High level language
High level language is a computer language which can be understood by the users. High level language is
very similar to the human languages and have a set of grammar rules that are used to make instructions
more easily.

High level language is more easier to understand for the users but the computer can not understand it.
High level language needs to be converted into low level language to make it understandable by the
computer.

We use Compiler or interpretor to convert high level language to low level language.

Languages like COBOL, FORTRAN, BASIC, C ,C++, JAVA etc., are the examples of high level languages.

COMPILER
It is a program that translates the instructions of higher-level languages to machine language. It is called
compiler because it compiles every program instruction given in higher-level languages into machine
language. Thus compiler is a program translator like assembler but more sophisticated. It scans the
entire program first and then translates it into machine code. The program written by the programmer
in higher-level language is called source program. After this program is converted to machine language
by the compiler it is called object program.

interpreter
An interpreter is another type of program translator used for translating higher-level language
instructions into machine language instructions. It takes one statement of higher-level language at a
time, translates it into machine language and executes it immediately. Translation and execution are
carried out for each statement
characteristics of a good programming language
Simplicity : A good programming language must be simple and easy to learn and use. It
should provide a programmer with a clear, simple and unified set of concepts, which can
be easily grasped. The overall simplicity of a programming language strongly affects the
readability of the programs written in that language, and programs, which are easier to
read and understand, are also easier to maintain

Naturalness: A good language should be natural for the application area, for which it has
been designed. That is, it should provide appropriate operators, data structures, control
structures, and a natural syntax to facilitate the users to code their problem easily and
efficiently.

Efficiency :- Programs written in a good programming language are efficiently translated


into machine code, are efficiently executed, and acquire as little space in the memory as
possible. That is a good programming language is supported with a good language
translator which gives due consideration to space and time efficiency.

Abstraction: The degree of abstraction allowed by a language directly affects its ease of
programming.

Suitability to its Environment


Depending upon the type of application for which a programming language has been
designed,the language must also be made suitable to its environment.

Compactness :- In a good programming language, programmers should be able to


express intended operations concisely. A verbose language is generally not liked by
programmers, because they need to write too much.

Extensibility: A good language should also allow extensions through a simply,natural and
elegant mechanism.Almost all languages provide subprogram definition mechanisms for the
purpose,but some languages are weak in this aspect
Definition
Operating System is software that works as an interface between a user and
the computer hardware. The primary objective of an operating system is to make computer
system convenient to use and to utilize computer hardware in an efficient manner. The
operating system performs the basic tasks such as receiving input from the keyboard,
processing instructions and sending output to the screen.
An operating system is a software which performs all the basic tasks like file management, memory
management, process management, handling input and output, and controlling peripheral devices
such as disk drives and printers.

Some popular Operating Systems include Linux, Windows, OS X, VMS, OS/400, AIX, z/OS, etc.

Operating system manages overall activities of a computer and the input/output devices
attached to the computer. It is the first software you see when you turn on the computer, and the
last software you see when the computer is turned off.

Following are some of important functions of an operating System.

 Memory Management

 Processor Management

 Device Management

 File Management

 Security

 Control over system performance

 Job accounting

 Error detecting aids

 Coordination between other software and users

Memory Management
Memory management refers to management of Primary Memory or Main Memory.
Main memory is a large array of words or bytes where each word or byte has its
own address.
Main memory provides a fast storage that can be accessed directly by the CPU. For
a program to be executed, it must in the main memory. An Operating System does
the following activities for memory management −
 Keeps tracks of primary memory, i.e., what part of it are in use by whom, what part are
not in use.
 In multiprogramming, the OS decides which process will get memory when and how
much.
 Allocates the memory when a process requests it to do so.
 De-allocates the memory when a process no longer needs it or has been terminated.
Processor Management
In multiprogramming environment, the OS decides which process gets the
processor when and for how much time. This function is called process
scheduling. An Operating System does the following activities for processor
management −
 Keeps tracks of processor and status of process. The program responsible for this task is
known as traffic controller.
 Allocates the processor (CPU) to a process.
 De-allocates processor when a process is no longer required.

Device Management
An Operating System manages device communication via their respective drivers.
It does the following activities for device management −
 Keeps tracks of all devices. Program responsible for this task is known as the I/O
controller.
 Decides which process gets the device when and for how much time.
 Allocates the device in the efficient way.
 De-allocates devices.

File Management
A file system is normally organized into directories for easy navigation and usage.
These directories may contain files and other directions.
An Operating System does the following activities for file management −
 Keeps track of information, location, uses, status etc. The collective facilities are often
known as file system.
 Decides who gets the resources.
 Allocates the resources.
 De-allocates the resources.

Other Important Activities


Following are some of the important activities that an Operating System performs

 Security − By means of password and similar other techniques, it prevents
unauthorized access to programs and data.
 Control over system performance − Recording delays between request for a service
and response from the system.
 Job accounting − Keeping track of time and resources used by various jobs and users.
 Error detecting aids − Production of dumps, traces, error messages, and other
debugging and error detecting aids.
 Coordination between other softwares and users − Coordination and assignment of
compilers, interpreters, assemblers and other software to the various users of the
computer systems.

Types of Operating System


Batch operating system
This os process the jobs in batches, known as batch processing system. In this approach similar
jobs were submitted to the CPU for processing and were run together.

The users of a batch operating system do not interact with the computer directly. Each
user prepares his job on an off-line device like punch cards and submits it to
the computer operator. To speed up processing, jobs with similar needs are
batched together and run as a group. The programmers leave their
programs with the operator and the operator then sorts the programs with
similar requirements into batches.

Jobs are processed in the order of submission, i.e., first come first served
fashion.

The problems with Batch Systems are as follows −

 Lack of interaction between the user and the job.

 CPU is often idle, because the speed of the mechanical I/O devices is slower than
the CPU.

 Difficult to provide the desired priority.

Multiprocessor Operating System refers to the use of two or more central processing


units (CPU) within a single computer system. These multiple CPUs are in a close
communication sharing the computer bus, memory and other peripheral devices. These
systems are referred as tightly coupled systems.
These types of systems are used when very high speed is required to process a large
volume of data. These systems are generally used in environment like satellite control,
weather forecasting etc.
Multiprocessor systems prove more reliable in the situations of failure of one processor.
In this situation, the system with multiprocessor will not halt the system; it will only slow
it down. 
Definition of Multiprogramming Operating System
To overcome the problem of underutilization of CPU and main memory, the
multiprogramming was introduced. The multiprogramming is interleaved execution of
multiple jobs by the same computer.
In multiprogramming system, when one program is waiting for I/O transfer; there is
another program ready to utilize the CPU. So it is possible for several jobs to share the
time of the CPU
ADVANTAGES
It increases CPU utilization.
It maximizes the total job throughput of a computer.
In Multiprogramming system, CPU will never be idle and keeps on processing.

Time Sharing Operating System


Time-sharing is a technique which enables many people, located at various
terminals, to use a particular computer system at the same time. Time-sharing or
multitasking is a logical extension of multiprogramming. Processor's time which is
shared among multiple users simultaneously is termed as time-sharing.
The main difference between Multiprogrammed Batch Systems and Time-Sharing
Systems is that in case of Multiprogrammed batch systems, the objective is to
maximize processor use, whereas in Time-Sharing Systems, the objective is to
minimize response time.
Multiple jobs are executed by the CPU by
switching between them, but the switches occur
so frequently. Thus, the user can receive an
immediate response.
The term 'Time Sharing' is no longer commonly
used, it has been replaced by 'Multitasking
System'.

Advantages of Timesharing operating systems are as follows −

 Provides the advantage of quick response.


 Avoids duplication of software.
 Reduces CPU idle time.
Disadvantages of Time-sharing operating systems are as follows −

 Problem of reliability.
 Question of security and integrity of user programs and data.
 Problem of data communication.

You might also like