Notes Computer
Notes Computer
The first is the computer hardware which does all of the physical work computers
are known for.
The second part is computer software which tells the hardware what to do and
how to do it.
COMPUTER SYSTEM
Memory
Disks
Processor
The computer hardware cannot think and make decisions on its own. So, it cannot be
used to analyze a given set of data and find a solution on its own. The hardware needs a
software (a set of programs) to instruct what has to be done. A program is a set of
instructions that is arranged in a sequence to guide a computer to find a solution for the
given problem. The process of writing a program is called programming.
Computer software is written by computer programmers using a programming language.
The programmer writes a set of instructions (program) using a specific programming
language. Such instructions are known as the source code.
Another computer program called a compiler is then used on the source code, to
transform the instructions into a language that the computer can understand. The result
is an executable computer program, which is another name for software.
Examples of computer software include:
Computer Games
Driver Software
Educational Software
Media Players and Media Development Software
Productivity Software
Operating Systems software
Classification of Computer Software
Computer software can be broadly classified into two groups: system software and
application software.
Application programs
For example, games, spreadsheets, word processor,
database, web browsers
System Software
For example, Operating System
Computer Hardware
For example, printer, mouse, scanner, keyboard,
CPU, disk
Computer Bios
1. BIOS or the basic input/output system is a de facto standard defining a firmware interface.
2. The BIOS is built into the computer and is the first code run by the computer when it is
switched on. The key role of the BIOS is to load and start the operating system.
3. When the computer starts, the first function that BIOS performs is to initialize and identify
system devices such as the video display card, keyboard and mouse, hard disk, CD/DVD drive
and other hardware. In other words, the code in the BIOS chip runs a series of tests called
POST (Power On Self Test) to ensure that the system devices are working correctly.
BIOS performs the following functions:
Initializes the system hardware
The BIOS Menu Initializes system registers
Initializes power management system
Tests RAM
Test all the serial and parallel ports
Initializes floppy disk drive and hard disk controllers
Displays system summary information
Operating System
The primary goal of an operating system is to make the computer system convenient
and efficient to use. The operating system offers generic services to support user
applications.
From the users point of view the primary consideration is always the convenience.
Users should find it easy to launch an application and work on it. For example, we use
icon which gives us a clue about which application it is.
An operating system ensures that the system resources (like CPU, memory, I/O
devices, etc.) are utilized efficiently. For example, there may be many service requests
on a web server and each user request need to be serviced. Similarly, there may be
many programs residing in the main memory. Therefore, the system needs to
determine which programs are active and which need to wait for some I/O operation.
Since, the programs that need to wait can be suspended temporarily from engaging
the processor. Hence, it is important for an operating system to have a control policy
and algorithm to allocate the system resources.
Utility software is used to analyze, configure, optimize and maintain the computer system. Utility
programs may be requested by application programs during their execution. for multiple purposes.
Some of them are listed below.
Disk defragmenters Disk checkers Disk cleaners
Disk space analyzers Disk partitions Backup utilities
Disk compression File managers System profilers
Anti-virus utilities Data compression utilities Cryptographic utilities
Launcher applications Registry cleaners Network utilities
Command line interface (CLI) Graphical user interface (GUI)
Compiler and Interpreter
A compiler is a special type of program that transforms source code written in a
programming language (the source language) into machine language comprising of just
two digits- 1s and 0s (the target language). The resultant code in 1s and 0s is known as
the object code. The object code is the one which will be used to create an executable
program.
If the source code contains errors then the compiler will not be able to its intended task.
Errors that limit the compiler in understanding a program are called syntax errors.
Syntax errors are like spelling mistakes, typing mistakes, etc. Another type of error is
logic error which occurs when the program does not function accurately. Logic errors
are much harder to locate and correct.
Interpreter: Like the compiler, the interpreter also executes instructions written in a
high-level language.
While the compiler translates instructions written in high level programming language
directly into the machine language; the interpreter on the other hand, translates the
instructions into an intermediate form, which it then executes.
Usually, a compiled program executes faster than an interpreted program. However,
the big advantage of an interpreter is that it does not need to go through the
compilation stage during which machine instructions are generated. This process can
be time-consuming if the program is long. Moreover, the interpreter can immediately
execute high-level programs.
Linker and Loader
Linker: Also called link editor and binder, a linker is a program that combines object
modules to form an executable program.
Generally, in case of a large program, the programmers prefer to break a code into
smaller modules as this simplifies the programming task. Eventually, when the source
code of all the modules has been converted into object code, we need to put all the
modules together. This is the job of the linker. Usually, the compiler automatically invokes
the linker as the last step in compiling a program.
Loader: A loader is a special type of program that copies programs from a storage device
to main memory, where they can be executed. Most loaders are transparent to the users.
Application Software
Application software is a type of computer software that employs the capabilities of a
computer directly to perform a user-defined task. This is in contrast with system
software which is involved in integrating a computer's capabilities, but typically does
not directly apply them in the performance of tasks that benefit the user.
To better understand application software consider an analogy where hardware would
depict the relationship of an electric light bulb (an application) to an electric power
generation plant (a system).
Typical examples of software applications are word processors, spreadsheets, media
players, education software, CAD, CAM, data communication software, statistical and
operational research software, etc. Multiple applications bundled together as a
package are sometimes referred to as an application suite.
Stored Program Concept
All digital computers are based on the principle of stored program concept, which was
introduced by Sir John von Neumann in the late 1940s. The following are the key
characteristic features of this concept:
Before any data is processed, instructions are read into memory.
Instructions are stored in the computer’s memory for execution.
Instructions are stored in binary form (using binary numbers—only 0s and 1s).
Processing starts with the first instruction in the program, which is copied into a control
unit circuit. The control unit executes the instructions.
Instructions written by the users are performed sequentially until there is a break in the
current flow.
Input/Output and processing operations are performed simultaneously. While data is
being read/written, the central processing unit (CPU) executes another program in the
memory that is ready for execution.
Note: A stored program architecture is a fundamental computer architecture wherein
the computer executes the instructions that are stored in its memory.
Programming Languages
5GLs are centered on solving problems using constraints given to the program, rather
than using an algorithm written by a programmer.
Most constraint-based and logic programming languages and some declarative
languages form a part of the fifth-generation languages.
5GLs are widely used in artificial intelligence research.
Typical examples of a 5GL include Prolog, OPS5, and Mercury.
Another aspect of a 5GL is that it contains visual tools to help develop a program. A good
example of a fifth generation language is Visual Basic.
With 5GL, the programmer only needs to worry about what problems need to be solved
and what conditions need to be met, without worrying about how to implement a
routine or algorithm to solve them.