Memory
Memory refer to computer components, devices and recording
media that retain digital data used for computing for some interval of time.
Computer memory includes internal and external memory.
Internal
memory
The internal
memory is accessible by a processor without the use of the computer
input-output channels. It usually includes several types of storage, such as
main storage, cache memory, and special registers, all of which can be directly
accessed by the processor.
- Cache memory : A buffer, smaller and faster than main storage, used to hold a copy of instructions and data in main storage that are likely to be needed next by the processor and that have been obtained automatically from main storage.
- Main memory (Main Storage) : addressable storage from which
instructions and other data may be loaded directly into registers for
subsequent execution or processing.
Storage capacity of the main memory is the total amount of stored information that the memory can hold. It is expressed as a quantity of bits or bytes. Each address identifies a word of storage. So the capacity of the main memory depends on the number of bits allowed to address. For instance, a computer allows also 32-bit memory addresses; a byte-addressable 32-bit computer can address 232 = 4,294,967,296 bytes of memory, or 4 gigabytes (GB). The capacity of the main memory is 4 GB.
The main memory consists of ROM and RAM.
Random Access Memory (RAM):
The primary storage is referred to as random access memory
(RAM) because it is possible to randomly select and use any location of the
memory directly store and retrieve data. It takes same time to any address of
the memory as the first address. It is also called read/write memory. The
storage of data and instructions inside the primary storage is temporary. It
disappears from RAM as soon as the power to the computer is switched off.
Read Only Memory
(ROM):
There is another memory in computer, which is called Read
Only Memory (ROM). Again it is the ICs inside the PC that form the ROM. The
storage of program and data in the ROM is permanent. The ROM stores some
standard processing programs supplied by the manufacturers to operate the
personal computer. The ROM can only be read by the CPU but it cannot be changed.
The basic input/output program is stored in the ROM that examines and
initializes various equipment attached to the PC when the switch is made ON.
External
Memory
The external
memory holds information too large for storage in main memory. Information on
external memory can only be accessed by the CPU if it is first transferred to
main memory. External memory is slow and virtually unlimited in capacity. It
retains information when the computer is switched off and is used to keep a permanent
copy of programs and data.
- Hard Disk: is made of magnetic material. Magnetic disks used in computer are made on the same principle. It rotates with very high speed inside the computer drive. Data is stored on both the surface of the disk. Magnetic disks are most popular for direct access storage device. Each disk consists of a number of invisible concentric circles called tracks. Information is recorded on tracks of a disk surface in the form of tiny magnetic spots. The presence of a magnetic spot represents one bit and its absence represents zero bit. The information stored in a disk can be read many times without affecting the stored data. So the reading operation is non-destructive. But if you want to write a new data, then the existing data is erased from the disk and new data is recorded. The capacity of a hard disk is possibly 20 GB, 30 GB, 40 GB, 60 GB or more.
- Floppy Disk: It is similar to magnetic disk discussed above. They are 5.25 inch or 3.5 inch in diameter. They come in single or double density and recorded on one or both surface of the diskette. The capacity of a 5.25-inch floppy is 1.2 mega bytes whereas for 3.5 inch floppy it is 1.44 mega bytes. The floppy is a low cost device particularly suitable for personal computer system.
- Optical Disk : With every new application and software (includes sounds, images and videos) there is greater demand for memory capacity. It is the necessity to store large volume of data that has led to the development of optical disk storage medium. There are two commonly used categories of optical disks: CD with the approximate capacity of 700MB and DVD with the approximate capacity of 4.7GB.
- Memory Stick (Flash card, flash drive): a removable flash memory card format, with 128MB, 256 MB, 512 MB, 1 GB, 2 GB , 4 GB or more capacities.
Input-Output Devices
A computer is only useful when it is able to communicate
with the external environment. When you work with the computer you feed your
data and instructions through some devices to the computer. These devices are
called Input devices. Similarly the computer after processing, gives output
through other devices called output devices.
Common input and output devices are: Speakers, Mouse,
Scanner, Printer, Joystick, CD-ROM, Keyboard, Microphone, DVD, Floppy drive,
Hard drive, Magnetic tape, and Monitor. Some devices are capable of both input
and output.
Input Devices
Input devices
are necessary to convert our information or data in to a form which can be
understood by the computer. A good input device should provide timely, accurate
and useful data to the main memory of the computer for processing followings
are the most useful input devices.
Keyboard: -
This is the standard input device attached to all computers.
The layout of keyboard is just like the traditional typewriter. It also
contains some extra command keys and function keys. It contains a total of 101
to 104 keys. You must press correct combination of keys to input data. The
computer can recognize the electrical signals corresponding to the correct key
combination and processing is done accordingly.
Mouse: -
Mouse is an input
device that is used with your personal computer. It rolls on a small ball and
has two or three buttons on the top. When you roll the mouse across a flat
surface the screen censors the mouse in the direction of mouse movement. The
cursor moves very fast with mouse giving you more freedom to work in any
direction. It is easier and faster to move through a mouse.
Scanner:
The keyboard can
input only text through keys provided in it. If we want to input a picture the
keyboard cannot do that. Scanner is an optical device that can input any
graphical matter and display it back.
Output
Devices
- Monitor: The most popular input/output device is the monitor. A Keyboard is used to input data and Monitor is used to display the input data and to receive massages from the computer. A monitor has its own box which is separated from the main computer system and is connected to the computer by cable. It can be color or monochrome. It is controlled by an output device called a graphics card. Displayable area measured in dots per inch, dots are often referred to as pixels. Standard resolution is 640 by 480. Many cards support resolution of 1280 by 1024 or better. Number of colors supported varies from 16 to billions
- Printer: It is an important output device which can be used to get a printed copy of the processed text or result on paper. There are different types of printers that are designed for different types of applications.
Buses
Bus is a subsystem that transfers data or power between
computer components inside a computer or between computers. Bus can logically
connect several peripherals over the same set of wires. Each bus defines its
set of connectors to physically plug devices, cards or cables together. The
buses are categorized depending on their tasks:
- · The data bus transfers actual data.
- · The address bus transfers information about where the data should go.
- · The control bus carries signals that report the status of various devices.
Programs and Programming Languages
Programs
A computer
program is an algorithm written for a computer in a special programming
language.
Programming
languages
A programming
language is an artificial language that can be used to control the behavior of
a machine, particularly a computer. It is defined through the use of syntactic
and semantic rules, to determine structure and meaning respectively.
Programming languages are used to facilitate communication
about the task of organizing and manipulating information, and to express
algorithms precisely.
There are large
number of programming language in use. We can identify three type of
programming languages : machine languages, assembly languages, high-level
languages.
Machine
Languages
Machine code
or machine language is a system of instructions and data directly executed by a
computer's central processing unit. Machine code is the lowest-level of
abstraction for representing a computer program. Instructions are patterns of
bits with different patterns corresponding to different commands to the
machine. Machine code has several significant disadvantages : very difficult
for a human to read and write, a program written on one computer cannot run on
a different computer, so it cannot be used to write large program or program
intended to run on different machines.
Assembly Languages
An assembly
language is a low-level language for programming computers. It implements a
symbolic representation of the numeric machine codes and other constants needed
to program a particular CPU architecture.
This representation
is usually defined by the hardware manufacturer, and is based on abbreviations
(called mnemonics) that help the programmer remember individual instructions,
registers, etc. An assembly language is thus specific to a certain physical or
virtual computer architecture.
A utility program called an assembler, is used to translate
assembly language statements into the target computer's machine code.
Although assembly is more friendly than machine code, use of
assembly offer several disadvantages, for instance, each type of computer has
its own assembly language or programming assembly requires much time and
effort.
Hence, assembly language is not use to write large programs.
However, there are some computer application, such as in writing program that
control peripherals, assembly is still a necessity.
High-level languages
A high-level
programming language is a programming language that, may be more abstract,
easier to use, or more portable across platforms.
Examples: Pascal, C, Visual Basic, SQL, . . . .
Such languages often abstract away CPU operations such as
memory access models and management of scope.These languages have been
implemented by translating to machine languages.
There are two types of translators
Compiler
is a program that translate source code from a high-level programming language
to a lower level language (e.g., assembly language or machine language)
Interpreter
is a program that translates and executes source language statements one line
at a time.
Domain Analysis
Often the first step in attempting to design a new piece of
software, whether it be an addition to an existing software, a new application,
a new subsystem or a whole new system, is, what is generally referred to as
"Domain Analysis". The more knowledgeable they are about the domain
already, the less the work required. Another objective of this work is to make
the analysts who will later try to elicit and gather the requirements from the
area experts or professionals, speak with them in the domain's own terminology
and to better understand what is being said by these people. Otherwise they
will not be taken seriously. So, this phase is an important prelude to
extracting and gathering the requirements.
Software Elements Analysis
The most important task in creating a software product is
extracting the requirements. Customers typically know what they want, but not
what software should do, while incomplete, ambiguous or contradictory
requirements are recognized by skilled and experienced software engineers.
Frequently demonstrating live code may help reduce the risk that the
requirements are incorrect.
Specification
Specification is the
task of precisely describing the software to be written, possibly in a rigorous
way. In practice, most successful specifications are written to understand and
fine-tune applications that were already well-developed, although
safety-critical software systems are often carefully specified prior to
application development. Specifications are most important for external
interfaces that must remain stable.
Software architecture
The architecture of a software system refers to an abstract
representation of that system. Architecture is concerned with making sure the
software system will meet the requirements of the product, as well as ensuring
that future requirements can be addressed. The architecture step also addresses
interfaces between the software system and other software products, as well as
the underlying hardware or the host operating system.
Implementation (or coding)
Reducing a design to
code may be the most obvious part of the software engineering job, but it is
not necessarily the largest portion.
Testing
Testing of parts of software, especially where code by two
different engineers must work together, falls to the software engineer.
Documentation
An important (and often overlooked) task is documenting the
internal design of software for the purpose of future maintenance and
enhancement. Documentation is most important for external interfaces.
Classification of Computer Software
The software is divided to System Software and Application
Software with each having several sub levels.
System software is the low –level software required to manage
computer resources and support the production or execution of application
program.
Application software is software program that perform a
specific function directly for the end user.
System Software includes
- Operating Systems software
- Network Software : network management software, server software, security and encryption software, etc.
- Database management software
- Development tools and programming language software: software testing tools and testing software, program development tools, programming languages software
- Etc.
Application Software includes
- General business productivity applications : software program that perform a specific function directly for the end user, examples include : office applications, word processors, spreadsheet, project management system ,etc.
- Home use applications : software used in the home for entertainment, reference or educational purposes, examples include games, home education etc.
- Cross-industry application software : software that is designed to perform and/or manage a specific business function or process that is not unique to a particular industry, examples include professional accounting software, human resources management, Geographic Information Systems (GIS) software, etc.
- Vertical market application software : software that perform a wide range of business functions for a specific industry such as manufacturing, retail, healthcare , engineering, restaurant, etc.
- Utilities software : a small program that performs a very specific task. Examples include : compression programs, antivirus, search engines, font, file viewers, voice recognition software, etc.
No comments :
Post a Comment