Fundamentals of Computer
Programming
Topics
•Computer
•Data Processing
•What Computer can do?
•Devices that comprise a Computer System
•Elements/parts of Computer System
•Units of Memory Measurements
•Characteristic features of computers
•Evolution of Computers to their present form
•Some Well-Known Computers
•Computer generations
•Characteristic features of each generation
•RAID
•Differences between SSI, MSI, LSI,VLSI, ULSI
•Multi-tasking, Multi-programming, Multi-threading and Multi-processing
•Memory
•Types of memory
•Types of RAM
•Types of ROM
•References
Computer
Computer is a device that calculates or
manipulates.
An electronic device for storing and
processing data, typically in binary form,
according to instructions given to it in the
form of a program.
Data Processing
Data processing is an activity of processing data using computer
Data and
Computer Information
Instructions
What Computer can do ?
Huge Data Storage
Computer storage is just like a human brain where information
is stored and retrieved from.
Input and Output
Computer receives the data and instructions from the user and
displays the result after the execution.
Processing
Performing arithmetic operations or logical operations on the
data.
Devices that comprise a Computer
System
Monitor Speaker
(output)
(output) System unit
(processor, memory…)
Printer
(output)
Storage devices
(CD-RW, Floppy, Hard
disk, …)
Mouse
(input)
Scanner Keyboard
(input) (input)
Elements of the Computer
System
Elements of Computer System: Input
Unit
Data must be entered in the computer system before it must be
processed.
It accepts the list of instructions and data from the outside the
real world.
It converts this data in computer acceptable form.
It supplies the converted data to the computer system for the
further processing
Elements of Computer System:
Output Unit
It accepts the computed result from the computer.
Then converts it in the human understandable form.
It supplies the coded and computed result to the outside the
world.
Elements of Computer System:
Storage Unit
Used to keep data when the power to the computer is turned off.
Different forms:
◦ Hard disk
◦ Floppy or zip disks
◦ Flash Drive
◦ Flash Memory Cards
◦ CD-ROM
◦ CD-R and CD-RW
Elements of Computer System: Memory
The memory of a microcomputer is where programs and
data are stored when they are currently in active use.
When you use a program, the computer loads a portion of
the program from the hard drive to the much faster memory
(RAM). When you "save" your work or quit the program, the
data gets written back to the hard drive.
Different types of Memory
◦ RAM, ROM
Elements of Computer System: Memory
RAM ROM
◦ “Random Access ◦ “Read only memory”
Memory”
◦ Drives can read data from
◦ Very volatile disks, but cannot store
Cannot hold data when new data on them.
the power is off. ◦ One or more integrated
Losses all data when circuits that contain
power is lost. permanent instructions
that the computer uses
during the boot process.
Memory Measurements
Units of Computer Memory Measurements:
1 Bit = Binary Digit (0, 1)
8 Bits = 1 Byte
1024 Bytes = 1 KB (Kilo Byte)
KMGTPEZYBGp
1024 KB = 1 MB (Mega Byte)
1024 MB = 1 GB(Giga Byte)
1024 GB = 1 TB(Terra Byte)
1024 TB = 1 PB(Peta Byte)
1024 PB = 1 EB(Exa Byte)
1024 EB = 1 ZB(Zetta Byte)
1024 ZB = 1 YB (Yotta Byte)
1024 YB = 1 (Bronto Byte)
1024 Brontobyte = 1 (Geop Byte)
Geop Byte is The Highest Memory Measurement Unit!!!
Elements of Computer System:
Central Processing Unit
CPU is the combination of Control Unit and the Arithmetic
and Logic unit .
CPU is the brain of the computer system.
It takes the major decision required for the processing.
ALU is what where the actual processing of the instruction
takes place.
ALU is designed to perform these operations:
add, subtract, multiply, divide, logic operations or
comparisons such as less than , equal to etc.
Elements of Computer System:
Control Unit
It is the central nervous of the computer system.
It manage and co-ordinate the entire computer system.
It issues the various signal to the all the components or units
of the computer system.
It does not perform any calculation but is responsible for the
overall control.
Characteristics of Computers
•Accuracy
•Speed
•Automatic
•Diligence
•Versatility
•Memory
•No I.Q.
•No Feelings
Evolution of Computers
Blaise Pascal : Mechanical Adding Machine : 1642
Baron Gottfried : Calculator for Multiplication : 1671
Herman Hollerith : Punched Cards : 1880
Charles Babbage : Difference Engine : 1822
: Fully Automatic Analytical Engine : 1842
Some well known early
Computers
The Mark I Computer :1937-1944
The Atanasoff-Berry Computer :1939-1942
The Electronic Numerical Integrator And Calculator :1943-1946
The Electronic Discrete Variable Automatic Computer : 1946-1952
The Electronic Delay Storage Automatic Calculator : 1947-1949
Manchaster Mark I : 1948
The Universal Automatic Computer I : 1951
IBM 701 : 1952
IBM 650 : 1953
The Atanasoff-Berry Computer
Computer Generations
Till today, there are five computer generations:
•First generation (1942-1955)
•Second generation (1955-1964)
•Third generation (1964-1975)
•Fourth generation (1975-1989)
•Fifth generation (1989-till date)
First Generation Computers
Hardware Technologies:
Vacuum Tubes
Electromagnetic Relay memory
Punched Cards
Software Technologies:
Machine and Assembly Languages
Stored Program Concept
Mostly Scientific Applications
Characteristics:
Bulky in size
Highly unreliable
Limited commercial use and costly
Difficult commercial production
Difficult to use
e.g. ENIAC, EDVAC, EDSAC, UNIVAC I, IBM 701
First Generation Computer - ENIAC
Front panel of IBM 650
Second Generation Computers
Hardware Characteristics: Transistors
Transistors
Magnetic core memory
Magnetic tapes
Disks for secondary storage
Software Technologies:
Batch operating system
High level programming languages
Scientific and commercial applications
Characteristics:
Faster, smaller, easier to program and more reliable than previous
generation systems
Commercial production was still difficult and costly
e.g. Honeywell 400, IBM 7030, CDC1604
Second Generation Computers
Magnetic Core Memory
Magnetic Tape
Third Generation Computers
Hardware Technologies:
ICs with SSI and MSI technologies
Large magnetic cores memory
Large capacity disks and magnetic tapes
Software Technologies:
Timesharing Operating Systems
Standardization of high level programming languages
Unbundling of software from hardware
Characteristics:
Faster, smaller, more reliable, easier and cheaper to produce
Commercially, easier to use and easier to upgrade than previous
generation systems
Scientific, commercial and interactive online applications
e.g. IBM 360/370, PDP-8, PDP-11, , CDC6600
Third Generation Computers
CPU of PDP 8i
Fourth Generation Computers
Hardware Technologies:
ICs with VLSI Technology
Microprocessors; semiconductor memory
Large capacity hard disks
Magnetic tapes and floppy disks as portable storage media
Personal Computers
Supercomputers
Spread of high speed computer networks
Software Technologies:
Operating System for PCs with GUI and multiple windows on a single
terminal screen
Multiprocessing OS
UNIX operating system
C and C++ programming languages
Object oriented design and programming
PC, network based and supercomputing applications
Fourth Generation Computers
Characteristics:
Small, reliable, easy to use and affordable PCs
More powerful and reliable mainframe systems and supercomputers
Totally general purpose machines
Easier to produce commercially
Easier to upgrade
Rapid development software possible
e.g. IBM PCs and its clones, Apple II, TRS-80,VAX 9000, CRAY-1, CRAY-2,
CRAY-X/MP
Fifth Generation Computers
Hardware Technologies:
ICs with ULSI technology
Large capacity main memory hard disks with RAID
support
Optical disks as portable read only storage media
Notebooks, powerful desktop PCs and workstations
Powerful servers, supercomputers
Internet
Cluster computing
Software Technologies:
WWW
Multimedia, Internet applications
JAVA
LINUX - MPI (Message Passing Interface) and PVM
(Parallel Virtual Machine) libraries for parallel processing
MPI – for large multi processor, PVM for heterogenous
networks
Micro-kernel, Multithreading, multicore OS
Fifth Generation Computers
Characteristics:
Portable computers
Powerful, cheaper, reliable and easier to use desktop machines
Very powerful mainframes
Easier to produce commercially
General purpose machines
e.g. IBM notebooks, Pentium PCs, SUN workstations, PARAM
supercomputers etc.
RAID-Redundant Array of
Inexpensive/Independent Disks
RAID-Redundant Array of
Inexpensive/Independent Disks
Supercomputer
Difference between SSI, MSI, LSI,
VLSI, ULSI
SSI
only a few transistors
MSI
hundreds of transistors on each chip
LSI
tens of thousands of transistors per chip
VLSI
hundreds of thousands of transistors
ULSI
more than 1 million transistors
Multitasking, Multiprogramming,
Multithreading, Multiprocessing
Programs Users Processors Task
Multitasking two/more one one Concurrently
Multiprogramming two/more two/more one Concurrently
Multithreading two/more two/more one Round Robin
Multiprocessing two/more two/more two/more Simultaneously
Memory
Main memory consists of a number of storage locations, each of
which is identified by a unique address
The ability of the CPU to identify each location is known as its
addressability
Each location stores a word i.e. the number of bits that can be
processed by the CPU in a single operation. Word length may be
typically 16, 32 or as many as 64 bits.
A large word length improves system performance, though may
be less efficient on occasions when the full word length is not used
Types of main memory
There are two types of main memory,
•Random Access Memory (RAM) and
•Read Only Memory (ROM)
Random Access Memory (RAM)
• holds its data as long as the computer is switched on
• All data in RAM is lost when the computer is switched off
• Described as being volatile
• It is direct access as it can be both written to or read from in any order
Its purpose is to temporarily hold programs and data for processing. In
modern computers it also holds the operating system.
When your computer is turned on again, the BIOS reads your operating system
and related files from the hard disk and loads them back into RAM
Types of RAM
Dynamic Random Access Memory (DRAM)
• Contents are constantly refreshed 1000 times per second
• Access time 60 – 70 nanoseconds
Note: a nanosecond is one billionth of a second!
Synchronous Dynamic Random Access Memory (SDRAM)
• Quicker than DRAM
• Access time less than 60 nanoseconds
Types of RAM
Double Data Rate SDRAM
•DDR basically doubles the rate of data transfer of standard
SDRAM
Direct Rambus Dynamic Random Access Memory (DRDRAM)
• New type of RAM architecture
• Access time 20 times faster than DRAM
• More expensive
Types of RAM
Static Random Access Memory (SRAM)
• Doesn’t need refreshing
• Retains contents as long as power is applied to the chip
• Access time around 10 nanoseconds
• Used for cache memory
• Also for date and time settings as powered by small battery
Types of RAM
Cache memory
• Small amount of memory typically 256, 512, 1024 kilobytes
• Temporary store for often used instructions
• Level 1 cache is built within the CPU (internal)
• Level 2 cache may be on chip or nearby (external)
• Faster for CPU to access than main memory
Working of cache memory
1. Cache fetches 2. CPU checks to
data from next to see whether the next
current addresses in instruction it requires
main memory is in cache
Main Cache
Memory Memory CPU
(DRAM) (SRAM)
3. If it is, then the
4. If not, the CPU has
instruction is
to fetch next
fetched from the
instruction from main
cache – a very fast
memory - a much
process
slower process
= Bus connections
Types of RAM
Video Random Access Memory
• Holds data to be displayed on computer screen
• Has two data paths allowing READ and WRITE to occur at the
same time
• A system’s amount of VRAM relates to the number of colours
and resolution
• A graphics card may have its own VRAM chip on board
Types of RAM
Virtual memory
• Uses backing storage e.g. hard disk as a temporary location for
programs and data where insufficient RAM available
• Swaps programs and data between the hard-disk and RAM as the
CPU requires them for processing
• A cheap method of running large or many programs on a computer
system
• Cost is speed: the CPU can access RAM in nanoseconds but hard-
disk in milliseconds (Note: a millisecond is a thousandth of a
second)
• Virtual memory is much slower than RAM
Read Only Memory (ROM)
• ROM holds programs and data permanently even when
computer is switched off
• Data can be read by the CPU in any order so ROM is also direct
access
• The contents of ROM are fixed at the time of manufacture
• Stores a program called the bootstrap loader that helps start up
the computer
• Access time of between 10 and 50 nanoseconds
Types of ROM
Programmable Read Only Memory (PROM)
• Empty of data when manufactured
• May be permanently programmed by the user
Erasable Programmable Read Only Memory (EPROM)
• Can be programmed, erased and reprogrammed
• The EPROM chip has a small window on top allowing it to be
erased by shining ultra-violet light on it
• After reprogramming the window is covered to prevent new
contents being erased
• Access time is around 45 – 90 nanoseconds
Types of ROM
Electrically Erasable Programmable Read Only Memory
(EEPROM)
• Reprogrammed electrically without using ultraviolet light
• Must be removed from the computer and placed in a special
machine to do this
• Access times between 45 and 200 nanoseconds
Types of ROM
Flash ROM
• Similar to EEPROM
• However, can be reprogrammed while still in the computer
• Easier to upgrade programs stored in Flash ROM
• Used to store programs in devices e.g. modems
• Access time is around 45 – 90 nanoseconds
ROM cartridges
• Commonly used in gaming machines
• Prevents software from being easily copied