A Computer System Consists of Two Major Elements
A Computer System Consists of Two Major Elements
A Computer System Consists of Two Major Elements
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
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.
Abstraction: The degree of abstraction allowed by a language directly affects its ease of
programming.
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.
Memory Management
Processor Management
Device Management
File Management
Security
Job accounting
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.
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.
CPU is often idle, because the speed of the mechanical I/O devices is slower than
the CPU.
Problem of reliability.
Question of security and integrity of user programs and data.
Problem of data communication.