You are on page 1of 30

CHAPTER 6

6.0 INTRODUCTION
Memory is a storage device used to hold programs, data, results, etc. Three types of memory are
prevalent in modern computers - Semiconductor, Magnetic, and Optical memory. Of these,
Semiconductor memory is faster, more compact, consumes less power but is more expensive. In
contrast, Magnetic and Optical memories are slower but cheaper.

6.1 MAIN, SECONDARY AND BACKUP MEMORY


This section explores the concepts of main, secondary, and backup memory. In most computers,
semiconductor memory serves as the main memory, storing programs and data currently needed
by the CPU. Magnetic memory acts as secondary memory, storing information not immediately
required by the CPU. Due to cost considerations, the main memory is usually smaller than
secondary memory. The CPU communicates directly with the main memory, necessitating it to
be as fast as the CPU. RAM and ROM ICs are usually used as the main memory.

Secondary memory is used for bulk storage of programs, data, system software, assemblers,
compilers, and large-data files. It should not be volatile, meaning it should be able to store
information permanently. Magnetic memory, such as hard disks, are commonly used as
secondary memories due to these properties.
**Check textbook for diagram here

6.2 CACHE MEMORY


The cache memory is placed between the CPU and the main memory and is used to reduce the
average access time for instructions and data stored in the main memory. It's a semiconductor
memory that uses static RAMs and is much faster than the main memory. The capacity of the
cache memory is around 2-3% of the main memory's capacity.

The chapter discusses two types of cache schemes, write-through and write-back. In a
write-through cache, the main memory is updated each time the CPU writes into the cache. This
approach ensures data consistency between the cache and main memory, which is particularly
beneficial in systems that use direct memory access (DMA) for data transfer. However, this can
also slow down the CPU if it has to wait for the write operation in the main memory to complete.

To address this issue, a write buffer is introduced for temporary storage of write requests. This
allows the CPU to proceed to the next instruction without waiting for the main memory to be
updated. The contents of this buffer are then sent to the main memory when it is not occupied
with read requests, effectively optimizing the overall memory operations and enhancing system
performance.
In a write-back cache, only the cache memory is updated during a write operation with updated
locations in the cache marked by flags for later copying into the main memory. This method
minimizes bus utilization and avoids unnecessary system bottlenecks, thereby enhancing
performance. Additionally, a write buffer is utilized in the write-back cache scenario, which
temporarily holds flagged blocks of data earmarked for removal from the cache. This buffer
mechanism allows the CPU to quickly fetch new blocks of data from the main memory without
having to wait for space to be made in the cache, effectively streamlining the data access process
and maintaining optimal system performance.

Cache memory is available at multiple levels, known as first-level cache (L1), second-level
cache (L2), and third-level cache (L3). These caches can be located either within (internal cache)
or outside (external cache) the microprocessor.

6.2.1 Cache Controllers


The cache controllers determine whether the content of a specified address is present in the cache
memory. If the addressed instruction code or data is available in the cache memory, the cache
controller enables the cache memory to send the addressed code/data to the CPU. If it isn't
present, the cache controller enables the controller of the main memory to send the addressed
code/data from the main memory.

The section also details specific cache controllers like Intel's 82496, 82497, and 82498 developed
for controlling second-level cache memory in Pentium-based computers. Intel's 82496 and 82497
cache controllers support a memory bus width of 32, 64, and 128-bit and line sizes of 16, 32, and
64 bytes. They manage 256KB and 512KB cache memories. The 82498 controller, meanwhile,
supports 64 and 128-bit wide memory bus, line sizes of 32 and 64 bytes, and manages larger
cache memory from 1MB to 2MB. These controllers control the 82491, 82492, and 82493
SRAM cache memories, respectively. In the latest Pentium processors, the second-level cache
and its controller are integrated into the processor.

6.3 REAL (OR PHYSICAL) AND VIRTUAL MEMORY


Real or physical memory refers to the actual memory present in a computer system, with each
location in this memory having a unique physical address. Virtual memory, on the other hand, is
a technique that provides programmers with the illusion of more main memory than what is
physically present. This is accomplished by not placing the entire program and its data in the
main memory at once. Instead, only the parts currently being executed are in the main memory,
while the rest reside in the secondary memory (like hard disks).

The process of moving program parts between main memory and secondary memory is called
swapping, enabling programs requiring larger memory capacity than the main memory to
execute. Virtual memory space is typically much larger than physical memory space. For
instance, the Intel 80386 can directly address GBs of physical memory, but its virtual memory
addressing capacity is 64 TB.
Programs use logical addresses, which are translated into physical addresses by the Memory
Management Unit (MMU). The MMU resides between the processor and the main memory and
determines whether a logical address generated by the CPU is present in the physical memory. If
the address isn't in the main memory, the MMU interrupts the CPU to load the required
information from the secondary memory. Logical addresses are also referred to as virtual
addresses in a system equipped with virtual memory.

6.4 SEMICONDUCTOR MEMORY


RAM (Random Access Memory)
● It is a volatile memory; data is lost when power is cut.
● It allows both read and write operations, with access time being the same for each
memory location.
● It's typically organized into modules, such as Single Inline Memory Modules (SIMM)
and Double Inline Memory Modules (DIMM). SIMMs have contacts on one side of the
card and are typically organized as byte-wide memory modules, while DIMMs have
contacts on both sides of the card.
● There are two types of RAM: static RAM (SRAM) and dynamic RAM (DRAM).
- SRAM: Retains data as long as power is on. More expensive, consumes more
power, and doesn't need refreshing. Used in cache memory due to its high speed.
An example is the Intel 2114, a 4K-bit SRAM chip.
- DRAM: Loses data quickly even when power is on and needs to be refreshed
periodically. It's cheaper, consumes less power, and is used for main memory. An
example is the Samsung K4B4G1646B, a 4Gb DRAM chip.
● Specific forms of RAM mentioned include:
- EDO (Extended Data Output) RAM: Stores 256 bytes of data into latches,
allowing for faster sequential execution of most programs.
- SDRAM (Synchronous DRAM) and SGRAM (Synchronous Graphics RAM): These
RAM chips use the same clock rate as the CPU, enhancing data transfer
efficiency.
- DDR SDRAM (Double Data Rate SDRAM): Transfers data on both edges of the
clock, doubling the data transfer rate. An example is the Kingston
KVR800D2N6/2G, a 2GB DDR2 SDRAM module.
- RDRAM (Rambus DRAM): Known for its high-speed memory. An example is the
Samsung MR16R082GAN1-CG6, a 128MB RDRAM module.

ROM (Read Only Memory)


● Non-volatile memory; the information stored isn't lost when power is cut.
● Allows only read operations, cannot be written into by users.
● Stored information is decided by manufacturers at the time of IC manufacture.
● Specific forms of ROM include:
- PROM (Programmable ROM): Contents can be decided and written in by the user
once using a special equipment. An example is the 82S129, a 256x4-bit PROM.
- EPROM (Erasable PROM): Allows erasing and reprogramming, but the IC needs
to be removed from the computer for erasure using high intensity UV light. An
example is the Intel 2764, a 64K-bit EPROM.
- EEPROM (Electrically Erasable PROM): Can be erased and reprogrammed easily
on a byte by byte basis without removing the chip from the computer. An example
is the Atmel AT28C64, a 64K-bit EEPROM.

Flash Memory/SSD
These are non-volatile, electrically erasable, and programmable permanent type memories with
high reliability, low power consumption, high packing density, and lower cost. They're available
as flash cards and flash drives. An example is the Samsung 970 EVO Plus, a high-performance
SSD.

Non-Volatile RAM
This is a type of RAM that retains information even when the system's power is turned off. This
is useful in applications where it is critical that data not be lost, such as in embedded systems and
critical data storage. An example is the STMicroelectronics M48Z02, a 2K x 8 zero-power
SRAM.

Bit, Nibble, and Byte-Oriented Memory Chips


Memory chip capacity is typically denoted in terms of m x n bits. Here, different types of
memory chips can be categorized based on their orientation: bit, nibble, and byte.

Bit-oriented memory chips, like those rated 256M x 1 bit store one bit per memory cell, allowing
each bit to be addressed and read or written individually. Nibble-oriented memory chips, like
those rated 256 K x 4 bits, store a nibble (four bits) per cell with each nibble individually
addressable and operable.

Byte-oriented memory chips store a byte (eight bits) per cell, and each byte can be individually
addressed. An example would be a chip rated as 4M x 8 bits, or 4M x 9 bits if a parity bit is
included for error detection.

6.5 MEMORY CONTROLLERS


● Intel 8203 is a 64K DRAM controller. It directly addresses and drives up to 64 devices
without external drivers. It's capable of controlling 64K or 16K DRAMs, and it provides
multiplexed addresses, address strobes, refresh logic, and refresh/access arbitration. It can
accept two types of memory read requests: Normal read via RD input and Advanced read
employing S, and ALE inputs.
● Intel 8207 is a dual-port DRAM controller that can interface 16K, 64K, and 256K
DRAMs. It can directly address and drive up to 2 MB without external drivers. This
controller can interface with the error detection and correction unit (EDCU) 8206 to
provide necessary logic to control 8206 and help in the designing of a large
error-corrected memory.
● Intel 82C08 is a CHMOS DRAM controller capable of interfacing 64K and 256K
DRAMs. It can directly address up to 1 MB without external drivers. It can perform the
task of memory refreshing employing battery backup during a power failure.

Error Detection and Correction in RAMs


Parity bit technique is a simple technique of error detection where the overall parity of the data
bits plus the parity bit is always odd. However, it does not indicate which bit of the data word is
incorrect. More complex error detecting/correcting codes such as Hamming code can detect
single-bit and multiple-bit errors and correct at least single-bit errors. These codes use several
encoding bits generated by the error detecting and correcting circuitry, which are stored in the
memory along with the data.
**Check textbook for diagram here

Intel 8206 is an error detection and correction unit that provides error detection and correction
for static and dynamic RAMs. It can detect and correct all single-bit errors, and detect all
double-bit and higher multiple bit errors. It uses a modified Hamming code for error detection
and correction.

6.6 MAGNETIC MEMORY


Magnetic memory is a type of non-volatile memory used as secondary and backup storage. Data
is stored by applying electric pulses to a magnetic coating via a write head. The direction of the
magnetization of a small area of the magnetic film under the write head represents binary data.

Two data recording techniques are used: longitudinal recording and vertical recording, with the
latter allowing more data storage. A read head, which is a magnetoresistive (MR) sensor, is used
to read data. Changes in the MR sensor's electrical resistance, caused by the direction of
magnetization of the moving medium under it, are detected as voltage signals.

Some older and low-capacity disks use a single head for both reading and writing operations.
The direction of magnetization of a very small area of the magnetic film determines the polarity
of electric pulses produced during the read operation. Modern computers typically use magnetic
disks, including hard disks and floppy disks, and magnetic tapes as types of magnetic memory.
6.6.1 Magnetic Disks
Magnetic disks, including hard disks and floppy disks, store data on their surfaces, which are
divided into concentric circular tracks and sectors. Each track has the same number of sectors,
resulting in higher bit density in inner tracks. To utilize unused storage space on outer tracks, the
disk surface is divided into zones with varying numbers of sectors per track.

The disks, which are semi-random devices, are mounted on a rotary drive to rotate. The
read/write head remains stationary on the addressed track, while the disk rotates to bring the
addressed sector under the read/write head. The sum of the time required to move the read/write
head to the addressed track (seek time) and the time required to bring the starting position of the
addressed sector under the read/write head (latency time) is known as access time.

A disk controller is required for magnetic disk drives. Its functions include interfacing a disk
drive system to the CPU, disk drive selection, track and sector selection, issuing read/write
commands to the disk drive system, data separation, serial-to-parallel and parallel-to-serial
conversion, and error detection. Data to be stored on a magnetic disk must be converted from
byte form to serial format, and vice versa for data read from a magnetic disk.

6.6.2 Hard Disk


Hard disks are on-line storage devices permanently connected to the computer system. They are
made of aluminum or other metals with a thin coating of magnetic material. To increase storage
capacity, several hard disks (platters) are mounted on a common drive to constitute a disk pack.
The set of all tracks at the same distance from the spindle on the recordable surfaces of the disk
pack lie on the surface of an imaginary cylinder, and all the tracks which lie on a cylinder have
the same number.

Hard disks' capacity ranges from 40 GB to 750 GB, with access times between 5 and 10
milliseconds. To address mismatched data transfer rates between the main memory and hard disk
memory, a semiconductor memory known as a disk cache is used. In Redundant Arrays of
Independent Disks (RAID) systems, multiple disks operate in parallel, storing the same
information to bolster storage reliability. Additionally, removable and external hard disks are
available for backup memory. An important note on hard disk operation is that an air cushion
generated by high-speed rotations keeps the read/write head off the disk surface. This prevents
damage but also necessitates a dust-free environment to avoid head crashes, which lead to data
loss.

Integrated Drive (or Device) Electronic (IDE) and Small Computer System Interface (SCSI) are
host adapters, not controllers. Enhanced IDE (EIDE) can interface hard disk drive, floppy disk
drive, optical disk drive, and tape drive. IDE or EIDE drives offer great ease of use, and one can
just plug them in to work. ATA is AT Attachment, and ATAPI is AT Attachment Packet Interface,
which are specifications for EIDE.
SCSI has a separate I/O bus called the SCSI bus. It can connect up to 15 devices, each with a
unique identification number. The latest version of SCSI, called SCSI-3, offers a data transfer
rate of 80 MB/s. SATA (Serial ATA) is a serial interface used for connecting motherboards to
various mass storage devices. With different versions, it offers a wide range of data transfer rates
and has a CRC mechanism for error detection. SATA Express and eSATA expand the SATA
capabilities with high-speed data transfer and external connectivity, respectively. On the other
hand, SAS (Serial Attached SCSI) improves upon traditional SCSI, using a serial mode of data
transmission and supporting a large number of hard disk drivers.

6.6.3 Formatting of Magnetic Disks


Before their first use, magnetic disks are specially prepared in a process known as formatting.
This process involves marking the tracks and sectors on the disk and numbering each sector.
Beyond data, several other pieces of information are recorded on the disk for accurate data
transfer between the disk and the main memory. The outermost tracks contain the disk’s main
directory and information about disk space allocation. Each sector begins with some bytes of
information used by the disk drive system, followed by a 512-byte data section and a few bytes
for the CRC value or ECC bytes.

6.6.4 Error Checking in Magnetic Disk Memory


To ensure data integrity, error detecting codes are used when data are read from a magnetic disk.
The most popular method for this is Cyclic Redundancy Checking (CRC). The data bytes in a
sector of a track are treated as a single large number, divided by a constant number, and the
16-bit remainder is recorded as CRC bytes. This process is repeated during data reading to verify
if the data is correct. If an error is detected, the sector is marked as failed and users are prevented
from accessing the potentially corrupted data. Hard disks use Error Correction Codes (ECC) for
error detection and correction, enabling not only the detection of errors but also the precise
location and nature of the error.

6.6.5 Magnetic Tapes


Magnetic tapes are primarily used for backup memory and they are sequential access devices,
contrasting with the direct access devices like disk drives. However, recent technology allows
heads to read data directly from the tape, improving reliability and data retrieval. Magnetic tapes
come in various capacities, with multiple parallel tracks. Depending on the number of tracks,
different amounts of data and corresponding parity bits are stored. A process called serpentine
recording is used, where data is recorded in a back-and-forth fashion until the tape is full. To
increase speed, simultaneous reading/writing can be performed on several adjacent tracks. Data
is organized in the form of records separated by gaps known as inter-block gaps.
Magnetic tapes contain vertical columns known as frames and horizontal rows known as tracks.
For error checking, parity bits are used to detect single-bit errors, while longitudinal parity bits
are introduced to detect multi-bit errors. Special labels and markers on the tape assist in
identifying tape contents, storing control information, signaling the end of a file, and marking the
beginning and end of the usable tape.

To improve tape utilization, multiple records can be grouped together in a block and recorded as
a single unit on the tape, with specific programs available to separate records within a block for
processing

6.7 OPTICAL DISKS


Optical disks are high-capacity storage mediums used as backup memory. They leverage laser
beams for writing and reading data and have a larger storage capacity compared to traditional
magnetic floppy disks. Their capacity ranges between 650MB and 17GB, with even
larger-capacity disks anticipated in the future. Some of the advantages of optical disks include
longer lifespan, robustness against disk wear, and the lack of head crashes since the read/write
head doesn't physically touch the disk. However, their large access times are a drawback
compared to magnetic hard disk drives. Types of optical disks include CD (Compact Disk),
CD-R (CD Recordable), CD-RW (CD-Read/Write), DVD (Digital Versatile Disk)-ROM,
DVD-R, and DVD-RW.

1. CD Technology: The CD, primarily composed of polycarbonate plastic, aluminum, and


acrylic, has a single spiral track for data recording. The disk uses laser beams to burn pits
(1s) and lands (0s) on its surface. This information is read at a constant rate, with the
optical disk rotating at varying speeds to maintain the laser beam's constant linear
velocity.
2. CD-ROM and Audio CD: CD-ROMs and Audio CDs use similar technology, but have
different tolerance for errors. Audio CDs can afford a few errors as it doesn't significantly
affect the reproduced sound and image, whereas CD-ROMs used for computer
applications require extra bits for error detection and correction due to the critical nature
of their data. The storage capacity of a CD-ROM is 650MB with a data transfer rate of nx
(where x=150KB/s and n is a factor).
3. CD-R (CD-Recordable): The CD-R is a write-once read-many times (WORM) type CD
that employs a photosensitive organic dye on the track. Data can only be written on a
CD-R once, and the written data is stored permanently. The storage capacity is 700MB.
4. CD-RW (CD-Rewritable): CD-RWs are rewritable optical disks with a storage capacity of
700MB. They utilize an alloy of silver, indium, antimony, and tellurium in the recording
layer, which can be changed from a crystalline state to an amorphous state using a
high-power laser beam. The data can be erased through a process called annealing, which
heats the alloy and brings the material back to the crystalline state.
5. DVD (Digital Versatile Disks): DVDs provide higher storage capacity than CDs due to
smaller pits and closer tracks. The storage capacity ranges from 4.7GB (single-layer
single-sided DVD) to 17GB (double-layer double-sided DVD). They also offer superior
data transfer rates because of their higher pit density. Future developments in DVD
technology, such as the Blue-ray and HD-DVD formats, promise even higher capacities
of up to 50GB. DVDs come in multiple types including DVD-ROM, DVD-R, and
DVD-RW. The DVD-ROM's structure is similar to a CD-ROM, with a bottom
polycarbonate plastic layer, a reflective aluminum layer, a protective acrylic layer, and a
topmost label layer. DVD-Rs, similar to CD-Rs, allow users to write information once
and read multiple times. DVD-RWs, akin to CD-RWs, are rewritable disks with an alloy
in the recording layer and use phase change technology for data recording.

6.8 CCD (CHARGE COUPLED DEVICES)


CCD or Charge Coupled Devices are semiconductor memory devices constructed in a long shift
register form. They have high density and serial nature, and can be used as serial shift registers.
When exposed to light, CCDs produce a charge proportional to the light's intensity. This charge
is then converted to a digital signal by an analog to digital converter. CCDs find their use in areas
such as image processing, digital signal processing, and computer vision where high density and
serial nature are beneficial. They are key components in digital cameras and robotics. However,
due to their limited use compared to RAMs, CCDs are not frequently used in digital computers.

6.9 DIRECT ACCESS STORAGE DEVICES (DASDs)


DASDs or Direct Access Storage Devices refer to online secondary storage that can be accessed
directly by a processor. Common types include magnetic disks and optical disks. These devices
offer direct access, random access property and are considered as permanent storage. From a
memory location perspective, disk memory is semi-random, while RAMs, ROMs, and PROMs
are random access memory. DASDs also support file storage where files can be stored or read
randomly. However, updating files on magnetic tapes, an offline device, requires the entire tape
to be read and processed sequentially.

6.10 DESTRUCTIVE AND NONDESTRUCTIVE READOUT


This section describes two types of readout from memory: destructive and nondestructive. In a
destructive readout, the memory's contents are destroyed during the reading operation,
necessitating a subsequent write operation. Dynamic RAM is an example of this. In contrast, a
nondestructive readout does not alter the memory's contents during the read operation. Examples
include static RAM, magnetic disks, and magnetic tapes.

6.11 PROGRAM AND DATA MEMORY


This section focuses on the context of single-chip microcomputers or microcontrollers used in
dedicated applications. Program memory is where the fixed, pre-tested programs are stored on a
PROM, EPROM, or flash memory. Data memory, on the other hand, is where the processing data
is stored, typically on RAM. The EPROM can either be internal or external to the
microcontroller IC, but the RAM is usually internal.

6.12 MEMORY MANAGEMENT UNIT (MMU)


The MMU is a hardware component that translates logical memory addresses into actual
physical memory addresses while also providing protection. It exists between the processor and
main memory. MMUs can be found on modern CPUs or as external units for CPUs that lack
them. MMUs also provide virtual memory, enabling the use of more memory than physically
present by swapping data between main and secondary memory. The MMU can manage large
amounts of memory, for instance, managing 1 GB of memory using virtual memory technique
even if the actual capacity is only 16 MB.

6.12.1 Demand-Paged Virtual Memory Scheme


The demand-paged virtual memory scheme is a memory management technique in which
memory is divided into pages of fixed length. If the required page is not present in the physical
memory, the system triggers a page fault, prompting the operating system to swap in the required
page. This approach allows more programs to be maintained in memory, potentially larger than
the actual capacity of the memory. Descriptors for currently used segments or pages are stored in
the cache memory for faster access.

6.12.2 Protection
Protection is crucial in a multiuser system to prevent interference between users or with the
operating system. The MMU provides this protection by checking the privilege-level of a
program requesting memory access. This mechanism is used to protect the operating system
from the users.

6.12.3 MC68851
MC68851 is a memory management unit developed by Motorola that uses the paging technique
for memory division. It is widely used with the 68000 family of microprocessors.

6.13 PCMCIA OR WPCMCIA CARDS AND SLOTS


Personal Computer Memory Card International Association (PCMCIA) refers to a standard for
peripheral cards that are about the size of a credit card. They are used in both portable and
desktop machines and can support diverse devices such as fax, modem, SCSI adapter, Ethernet
adapter, disk drives, etc. The standard defines the physical design of the cards and electrical
interface. Different types of PCMCIA cards exist with varying thickness and connector pin
numbers, each designed for specific uses such as memory, fax/modem, hard disk drive, and
more. These cards support hot insertion, meaning they can be plugged and unplugged without
powering down the computer.
PROBLEM + SOLUTIONS
Here are the answers to the questions on Chapter 6:
1. Function of memory in a computer: Memory in a computer stores programs, data, and
results. It's essential for processing information and executing programs.
2. Different types of memory: The three main types of memory are semiconductor, magnetic,
and optical memory. Semiconductor memory is faster and consumes less power, while
magnetic and optical memory are slower but cheaper.
3. Types of semiconductor memory: Semiconductor memories are of two types: RAM
(random access memory) and ROM (read only memory). RAM is volatile and allows
users to write and read information, while ROM is non-volatile and used for permanent
storage of information.
4. RAM, ROM, and nonvolatile RAM: RAM is the read and write memory of a computer,
ROM is used for permanent storage of information, and nonvolatile RAM uses
magnetization to store information.
5. Static and dynamic RAMs: Static RAMs retain stored information only as long as the
power supply is on, while dynamic RAM loses its stored information in a very short time
even though the power supply is on.
6. ROM, PROM, EEPROM, and flash memory: ROM is used for permanent storage of
information. PROM allows users to store permanent programs, data, or any other kind of
information. EEPROM can have its stored data erased by exposing it to high intensity
short wave ultraviolet light. Flash memory is quick and economical for updating
firmware codes.
7. Main, secondary and backup memory: Main memory stores programs and data currently
needed by the CPU. Secondary memory is used for bulk storage of programs, data, and
other information. Backup memory is used to store copies of important programs for
reloading if necessary.
8. Function of a cache memory: Cache memory is a semiconductor memory placed between
the CPU and main memory. It is used to reduce the average access time for instructions
and data, which are normally stored in the main memory.
9. Real and virtual memory: Real memory refers to the physical memory present in a
computer, while virtual memory is a memory management technique that creates an
illusion of a larger main memory. Swapping refers to moving pages or segments of data
between the main memory and disk storage. Logical address is used in a program, while
physical address is the actual location in memory.
10. Memory controller: A memory controller is a digital circuit that manages the flow of data
going to and from the memory. It is used for dynamic RAM and its functions include
refreshing the memory.
11. Error detection and correction techniques for RAMs: The document does not provide
specific information on this topic.
12. Different types of magnetic memory: Magnetic memory is a type of permanent memory
that is not volatile and is used as secondary and backup memory. It includes magnetic
disks and magnetic tapes.
13. Magnetic disk memory, such as hard disks, provide faster access to data and have a much
larger storage capacity compared to magnetic tape memory and floppy disks.
14. A 3.5 inch floppy disk uses a sliding plastic button that allows reading, writing, and
erasing. It has a storage capacity of 1.44 MB and a data transfer rate of about 40 KB/s.
15. Hard disks are composed of several platters stacked together and rotating at high speed.
Data is stored in concentric tracks on these platters. A head crash occurs when the
read/write head comes into contact with the surface of the platters.
16. Floppy disks should be properly stored and handled to prevent damage. They should not
be exposed to magnetic fields, heat, moisture, and dust. They should not be removed
while the drive is running, and the disk should not be bent.
17. Formatting of Magnetic Disks: Formatting is the process of preparing a disk for data
storage. It involves creating a track and sector layout on the disk. The process includes
low-level formatting (creating sectors), partitioning (dividing the disk into logical
sections), and high-level formatting (creating a file system).
18. Error Checking Techniques for Magnetic Disk Memory: Error checking techniques for
magnetic disk memory include parity checking, checksum, and more advanced methods
like Reed-Solomon codes. These techniques help detect and correct errors to ensure data
integrity.
19. Functions of Floppy Disk and Hard Disk Controllers: Disk controllers are responsible for
converting the data from the computer into a format that can be understood by the disk
drive. They also manage the reading and writing of data to and from the disk.
20. Optical Disks: Optical disks, like CDs, DVDs, and Blu-ray discs, use light (laser) to read
and write data. They have advantages like high storage capacity, durability, and
portability. However, they are slower compared to magnetic disks and solid-state storage
devices.
21. CCD Memory: CCD (Charge-Coupled Device) memory is a type of semiconductor
memory that's used in image processing and digital signal processing systems. It's not
widely used in digital computers due to its serial nature.
22. Direct Access Storage Devices: Direct Access Storage Devices (DASDs) like hard disks
allow data to be accessed directly, regardless of its physical location on the storage
medium. This is faster and more efficient than sequential memory, which requires data to
be accessed in a specific sequence.
23. Destructive and Nondestructive Read Out: Destructive readout refers to the process
where data is erased during the read process. Nondestructive readout, on the other hand,
allows data to be read without altering it.
24. Program and Data Memory: Program memory stores the instructions that a computer
executes, while data memory stores the data that the computer processes. Both are
essential components of a computer's memory system.
25. Memory Management Unit (MMU): The MMU is a hardware component that handles all
memory and caching operations associated with the processor. It translates logical
addresses into physical addresses and manages memory protection and paging.
26. Segment and Page Oriented Memory Systems: Segment-oriented memory systems divide
memory into variable-sized blocks, while page-oriented memory systems use fixed-sized
blocks. Both have their own merits and demerits.
27. Demand-Paged Virtual Memory Scheme: This scheme only loads pages into memory as
they are demanded, which allows for efficient memory use and enables programs to run
that are larger than physical memory.
28. Protection in Memory: Protection mechanisms prevent unauthorized access to important
data and resources. This can be achieved through hardware mechanisms like the Memory
Management Unit (MMU) and software mechanisms like user permissions and access
control lists.
29. SCSI and EIDE Adapters: SCSI (Small Computer System Interface) and EIDE
(Enhanced Integrated Drive Electronics) are types of interfaces for connecting storage
devices to a computer's motherboard. They are used in various applications, including
hard disk drives, optical disk drives, and tape drives.
30. DVD-ROM, DVD-R, and DVD-RAM: These are types of DVDs that differ in their
functionality. DVD-ROM is read-only, DVD-R is writable once, and DVD-RAM is
rewritable. They all have larger storage capacities compared to their CD counterparts.
31. PCMCIA and WPCMCIA Cards and Slots: PCMCIA cards, also known as PC cards, are
credit card-sized peripherals used in portable and desktop computers for various
functions like modems, hard drives, and wireless interfaces. WPCMCIA cards are
specifically used for wireless connections. They can be plugged and unplugged without
turning off the computer.
CHAPTER 8

INTRODUCTION
This chapter highlights the essence of programming and system software. It delves into the
distinction between system software and user's programs, emphasizing the role of the operating
system. The chapter also touches upon utility programs, application software, and the benefits of
pre-written software for specific tasks.

8.1 MACHINE LANGUAGE


Computers fundamentally understand and process binary data, consisting of zeros and ones. A
program written in this binary format is known as a machine language program. Every
microprocessor has its unique set of machine language codes to represent instructions.

8.2 ASSEMBLY LANGUAGE


Machine language, while fundamental to computers, is cumbersome for humans to work with.
Assembly language, developed to address this challenge, uses mnemonic symbols to represent
operations, making it more intuitive for programmers. While it simplifies the programming
process, an assembly language program needs to be translated to machine language using an
assembler.

8.2.1 Assembler
Assemblers translate programs written in assembly language into machine code. There are self
assemblers which operate on the same computer they produce codes for and cross assemblers
which can produce machine codes for a different computer. Assemblers can be categorized based
on the number of passes they make through the assembly program: One-Pass and Two-Pass.

8.2.2 Advantages of Assembly Language


Assembly language, being closer to machine code, executes faster than high-level languages,
offering reduced computation time.

8.2.3 Disadvantages of Assembly Language


However, assembly language comes with challenges: (i) It's harder and more time-consuming to
program. (ii) It requires in-depth knowledge about the computer's architecture and its instruction
set. (iii) Assembly language isn't universally compatible across different computers (lack of
portability). (iv) Assembly language programs are typically lengthier than their high-level
language counterpart

8.3 LOW-LEVEL AND HIGH-LEVEL LANGUAGES


● Low-Level Languages:
● Direct translation of each statement into a single machine code.
● Examples include machine and assembly languages.
● Closely related to computer structure, making it cumbersome for programmers.
● Programmers need in-depth knowledge of the system.
● High-Level Languages:
● Developed to ease issues found in assembly languages.
● More problem or object-oriented rather than machine-oriented.
● Examples: BASIC, PASCAL, FORTRAN, COBOL, ALGOL, C, C++, PROLOG,
LISP, JAVA.
● Advantages include ease of learning, faster programming, better documentation,
portability, and not being tied to a single machine type.
● Comparison:
● One statement in a high-level language can equate to many in an assembly
language.
● Some languages have specific applications: FORTRAN (scientific computations),
COBOL (business), BASIC (beginners), PROLOG (AI and logic reasoning),
JAVA (internet), etc.

8.3.1 Source Language and Object Language


● Source Language:
● The language in which programs are written, either high-level or assembly.
● Object Language (Machine Language):
● The language the computer works in.
● Source programs convert to machine code through compilers or assemblers to
become object programs ready for execution.

8.3.2 Brief Description of High-Level Languages


● BASIC:
● Ideal for beginners and simple computations.
● Known versions: QBASIC (by Microsoft with GUI and interpreter) and Visual
BASIC (for Windows application development with GUIs).
● FORTRAN:
● Designed for scientific and engineering computations.
● Various versions exist, including FORTRAN 77, FORTRAN 90, and FORTRAN
95.
● COBOL:
● Geared towards business data processing.
● Not as compact and struggles with complex mathematical computations.
● C Language:
● A general-purpose language that's concise and modular.
● Used by system programmers for complex tasks, including OS development.
● C++:
● Extension of C, supporting object-oriented programming.
● Combines features of structured and object-oriented programming.
● JAVA:
● Object-oriented, ideal for the internet and platform-independent thanks to the Java
Virtual Machine.
● Java compiler translates programs to virtual machine codes processed by the
JVM.
● JAVASCRIPT:
● Scripting language in Java, used to develop applets.
● SQL:
● Relational database operation language.
● Components include DDL (Data Definition Language), DCL (Data Control
Language), and DML (Data Manipulating Language).
● PROLOG:
● Suitable for logical operations and AI.
● Emphasizes programming based on mathematical logic, making it ideal for expert
systems based on logical reasoning.
● LISP:
● Ideal for nonnumeric, logical operations and AI.
● Used in game playing, pattern recognition, and computerized translators.
● SNOBOL:
● Designed for text processing with capabilities in manipulating string characters.
● LOGO:
● Developed by Seymour Papert.

8.3.3 Programming Language Generations


● 1GL (First Generation Language):
● Represented by machine language.
● Direct, low-level operations of the computer hardware.
● 2GL (Second Generation Language):
● Known as assembly language.
● Machine-oriented, very close to computer hardware.
● Programmers need deep knowledge of the CPU architecture, instruction set, and
registers.
● 3GL (Third Generation Language):
● High-level languages.
● Procedure-oriented; programmers specify both 'what' and 'how'.
● Some examples include BASIC, FORTRAN, PASCAL, COBOL, and C.
● 4GL (Fourth Generation Language):
● Non-procedural or object-oriented languages.
● Focuses on the 'what', not necessarily the 'how'.
● Often used with RDBMS with SQL tools.
● Examples: ORACLE, SYBASE. JAVA and C++ are also considered 4GLs and are
suitable for object-oriented programs.

8.3.4 Compiler
● Translates high-level language into machine language.
● Intelligent: checks for errors, limits, and ranges.
● Execution time is longer than that of an interpreter.
● Occupies a significant amount of memory, resulting in low efficiency.
● Types:
● Self or Resident Compiler: Runs on the same computer it produces code for.
● Cross-Compiler: Produces code for a different computer than the one it's running
on.

8.3.5 Interpreter
● Translates and executes high-level language programs one statement at a time.
● Doesn't save the translated object code for future use.
● Faster to start executing code but overall slower than a compiler.
● Advantage: occupies less memory, making it suitable for systems with limited space.
● Example: Instructions within loops must be re-interpreted every time the loop is
executed.

8.4 STACK
● A reserved area in memory used to save register content during program execution.
● Operates on a last-in-first-out (LIFO) principle.
● Two main operations:
● PUSH: Save register contents to the stack.
● POP: Retrieve contents from the stack back to the registers.
● Stack operations are faster than general memory access.

8.5 SUBROUTINES
● Specific sequences of instructions to perform a repeated subtask within a main program.
● Can be called from the main program using the CALL instruction.
● Program Counter (PC) content is saved on the stack when a subroutine starts.
● The RET (return) instruction marks the end of a subroutine, restoring the PC and
resuming the main program execution from where it left off.
8.6 DEBUGGING OF PROGRAMS
Introduction to Debugging
The term 'bugs' refers to program errors. It is the process of finding and fixing these errors.
Debugging ensures programs run correctly, as they often have errors on initial runs.

Types of Errors
Syntax errors, caused by incorrect language use, are detected by compilers and interpreters.

Debugging Techniques
● Single Step Control: Execute the program step by step, examining the results of
each step.
● Break Point Technique: Allows execution only up to a certain point, helping to
isolate the section containing errors. Software interrupts like RST (for Intel 8085)
and INT (for Intel 8086) facilitate this.
Tools for Debugging
● Simulators: Programs that mimic the execution of another program, useful for
logic checks.
● Logic Analyzers: Digital tools that detect and display the state of digital signals
during clock cycles, aiding in resolving timing issues.
● Trace Routines: Provide insights into the processor's status at set intervals.
● Memory Dumps: Listings of memory contents, used as a last-resort debugging
method.

8.7 MACRO
A macro assigns a name to a sequence of instructions, which can be reused throughout a
program. Macros simplify code, making it more readable. They are suitable for short sequences,
while subroutines are for longer ones.

Difference between Macros and Subroutines


Macros are used for short sequences and don't need CALL or RET instructions, while
subroutines do.

Macro Examples: (i) Example 1 (COMP2): Takes the 2's complement of contents in a given
memory location (ii)Example 2 (SHIFT2): Shifts the content of the accumulator left by 2 bits
using two ADD A instructions.

8.8 MACRO PROCESSOR (OR KEYBOARD ENHANCER)


A macro processor is a software that enables the use of macros. It's memory-resident and
facilitates user interaction with primary programs. It allows users to define and store character
strings, assigning them names or abbreviations. Upon typing the abbreviation, the macro
processor replaces it with the stored string, integrating it into the main program. It can typically
store around 300 abbreviations at a time, with each representing potentially thousands of
characters.

Other functionalities beyond macro processing include spelling checkers, calendars, notepads,
and calculators. These tools can be quickly invoked with a few keystrokes.

Note: Debugging is an essential process in software development, ensuring that programs run
without errors. The use of tools, techniques, and macros simplifies and streamlines this process,
making programming more efficient and error-free.

8.9 PROGRAM DESIGN


Program design is an art of crafting efficient and effective programs. Essential methodologies
include modular programming, structured programming, top-down and bottom-up design, and
Object Oriented Programming (OOP).

8.9.1 Modular Programming


Modular programming breaks lengthy and intricate programs into smaller, more manageable
units called modules. This approach facilitates:
● Simplicity in design, testing, and debugging individual modules.
● The potential for general-purpose modules that can be reused.
● Modifications in specific modules without altering the entire program.
● Task segmentation and leveraging existing programs.
However, challenges like potential repetition across modules, integration issues, and the need for
robust documentation exist. Notably, this technique proves highly beneficial in microprocessor
programming.

8.9.2 Structured Programming


Structured programming was developed as programs became longer. It ensures that programs are
more comprehensible by relying on three basic logic structures:
1. Simple Sequence Structure: Linear execution of instructions.
2. Conditional Structure: Executes based on a condition, branching into different paths.
3. Loop Structure: Repeats actions based on a condition, with variations such as "DO
WHILE" and "DO UNTIL".
While structured programming simplifies operational sequence tracing and testing, it might
demand more memory, especially for very long programs.
8.9.3 Top-Down and Bottom-Up Design
In the top-down approach, the system design starts at the overarching level, progressively
narrowing down to specific subprograms. This continuous design, testing, and integration
approach streamlines development but might not always maximize hardware potential.
On the other hand, the bottom-up method begins with crafting individual subprograms, which are
later integrated into a full system. This technique is suitable when the subprograms' functionality
is clear from the outset but could involve extensive end-stage testing and integration.

8.9.4 Object-Oriented Programming (OOP)


OOP is a paradigm shift focusing on "what to do" instead of both "how" and "what". By
addressing program complexity, OOP provides:
● Clarity and reliability in large programs.
● Objects that bundle data and functions, like "Lecturer" and "Professor."
● Classes that categorize objects, such as the "Employee" class for both lecturers and
professors.
● Inheritance, allowing classes to inherit and expand on characteristics from a base class.
With these foundational techniques, programmers can systematically approach program design,
ensuring scalability, maintainability, and performance.

8.10 SOFTWARE DEVELOPMENT


Software development takes into account several factors, ensuring optimal program
performance:
● Reliability: Ensuring dependable performance for intended tasks.
● Speed: Reducing execution time to maximize efficiency.
● Programming Time and Cost: With programming costs rising, methods like structured
programming enhance productivity. Proper practices minimize overall costs.
● Ease of Use: Programs should be user-friendly and straightforward.
● Error Tolerance: Addressing errors without compromising the entire system.
● Extendibility: Modular programming supports adaptability to different tasks.

8.10.1 Stages of Software Development


Software development involves multiple stages:
● Problem Definition: Clarifying the task and outlining specifics, like inputs, outputs, and
error handling.
● Program Design: Incorporating techniques like top-down approach, structured
programming, and flowcharting for logical construction.
● Preparation of Actual Program: Writing the computer instructions.
● Testing: Validating the program's functionality.
● Debugging: Identifying and rectifying errors. Tools include simulators and memory
dumps.
● Documentation: Describing the program's functionalities using tools like flowcharts and
comments.
● Maintenance: Updating the program based on real-world feedback.
● Extension and Redesign: Adapting or refining the program for enhanced or alternative
functionality.

8.10.2 Testing of a Program


Ensuring a program functions as intended involves:
● Testing with known results.
● Assessing with valid, yet unconventional data.
● Evaluating error-handling with flawed data.
● Using specialized testing software.
● Recognizing that even post-test, latent errors might emerge due to program complexities.

8.11 FLOW CHARTS


Flow charts visually depict an algorithm to solve a problem. They show operation order and
program section relationships. Flow charts are computer/language agnostic. Different levels of
flow charts exist, from overarching macro to detailed micro charts.

8.12 MULTIPROGRAMMING OR CONCURRENT PROGRAMMING


Multiprogramming addresses a significant challenge: while CPUs are speedy, peripherals are not.
This disparity can lead to idle CPU time. By processing multiple programs concurrently, the
CPU can remain engaged, shifting between tasks based on immediate needs or peripheral
operations.

8.13 MULTIUSER OR TIME-SHARE SYSTEM


A multiuser system allows several users to access a computer simultaneously. Each user feels as
if they have the computer's full attention, thanks to its rapid processing speed. However, this
system isn't without its challenges. As user numbers increase, response times can lag, and if the
system crashes, every user is affected.

8.14 MULTITASKING SYSTEM


Multitasking, in its essence, is about managing multiple tasks, whether in an industrial setting or
general computing. For industrial controls, computers cyclically process tasks based on priority.
However, the term is also used more broadly to describe general multiprogramming. Different
systems suit different multitasking needs, and operating systems like Intel RMX-86 are
specifically tailored for industrial applications with priority-based task management.
8.15 PROTECTION
Protection mechanisms in multiuser systems ensure that users don't interfere with each other or
with the operating system. The system must prevent unauthorized memory access to maintain the
system's integrity and security.
● Memory Access: It's essential that one user doesn't access another user's memory or the
operating system's memory. This ensures data integrity and security.
● Hardware Mechanisms: Modern processors, like Intel's 16-bit and 32-bit variants,
incorporate mechanisms to prevent unauthorized memory access, offering up to four
levels of protection:
● Kernel
● System Services
● Operating System Extensions
● Applications
● User Authentication: Each user in a multiuser system is given a password. Only after
successful authentication is the user allowed to operate within their assigned memory
area. This password system prevents unauthorized access.
● Memory Assignment: Each user is limited to their allocated memory segment, ensuring
that they can't encroach on another user's space or the OS space.

8.16 PROBLEMS IN ACCESSING RESOURCES


In multiuser systems, accessing shared resources can lead to conflicts. Systems must implement
mechanisms to manage access to these resources to prevent interference and ensure tasks are
carried out seamlessly.
● Shared Resource Conflicts: Resources like printers and magnetic disks can be a source of
contention. Users might not complete their tasks within their allocated time slice, leading
to potential overlap and interference with another user's task.
● Semaphores: It’s a software solution to manage resource access. When a resource is being
used, the semaphore is set to 1, signaling other users to wait. Once the resource is free,
the semaphore is reset to 0, allowing another user to access it.
● Deadlocks: Situations where two users require two different resources, but each user has
access to one resource, preventing the other from proceeding. Solutions include:
● Assigning task priorities: Higher priority tasks get resource access first.
● Grouping resources under one semaphore: This ensures that if one resource is
accessed, the other becomes automatically available.
● Concurrent Memory Access: When multiple users try to read or modify memory locations
simultaneously, issues arise. For example, two users might end up booking the same seat
in a reservation system due to concurrent access.
● Critical Region: A segment of code that needs protection as it handles vital
operations. Only one user should access a critical region at any given time.
● Mutual Exclusion Principle: This principle ensures that two users can't access a
critical region simultaneously, preventing conflicts and potential system errors.

8.17 OPERATING SYSTEM


An operating system (OS) is a suite of programs controlling a computer's functions. It performs
various tasks like file management, memory allocation, input/output operations, and more. It
provides an interface for users to interact with computer resources. It also monitors the execution
of user programs and resource use. Some parts of the OS are always present in the memory
(kernel), while others are loaded as needed (transient programs).

Booting
This is the process of loading the OS into memory. It is initiated by a small program, the
bootstrap loader, from a ROM. After the OS is fully loaded, the computer can process user
commands.

8.17.1 UNIX and XENIX


It’s a multiuser and multitasking OS developed in 1969. It is suitable for large machines, servers,
and supercomputers and the structure consists of three layers: (i) Kernel (core layer managing
processes and file structure) (ii) Shell (interprets user commands) (iii) Utilities/Applications
layer. It offers various utilities and applications like editors, compilers, database management,
etc. Examples of UNIX commands: "ls", "mv", "rm", "cat", "grep", "login", and "passwd".
XENIX is a variant of UNIX developed by Microsoft.

8.17.2 LINUX
It is a multiuser and multitasking OS, a version of UNIX. It is developed collaboratively
worldwide to create a free UNIX clone. It was started by Linus Torvalds and incorporates
features from MINIX OS. It is compatible with various devices and platforms and also
Incorporates TCP/IP networking protocol.

8.17.3 Windows Family of Operating System


It was developed by Microsoft. Versions include WINDOWS – 95, 97, 98, Me (Millennium), XP,
NT, 2000, and 2003. The WINDOWS – NT, 2000, and 2003 are multiuser OSs, while the rest are
single-user systems.

8.17.10 SUN’s Solaris


Solaris, a UNIX-based operating system, was originally developed by SUN as a 32-bit system. It
was distinguished by its robust graphical user interface. Solaris has seen many versions over its
lifetime:
● The earlier version, Solaris 2.6, featured the Open Look graphical and desktop manager.
When combined with the Berkeley derivative of UNIX, it was presented to users as
"Open Windows."
The next leap was Solaris 7, where SUN transitioned to a 64-bit system. What made it stand out
was the incorporation of user-friendly tools like ‘Wizards’ for easier administration and
installation. This version was designed to run on both SUN’s SPARC Processors and Intel
processors. Furthermore, it showcased backward compatibility, running 32-bit programs even
faster than its predecessor.

The Solaris 8 phase brought with it an updated UNIX system, set to power future SUN server
computers, especially those with the UltraSparc III processor. This version ensured compatibility
with older applications, specifically from Solaris-2.6 and Solaris-7.

8.17.11 Apple’s Macintosh Operating System


Apple introduced the Macintosh Operating System in 1984, marking a significant turning point
in the tech industry with its graphical user interface (GUI). Initially, it was tailored for Apple
computers operating on the Motorola 680X0 series of microprocessors.

Coming to its features, Mac OS 8.5 was designed for PowerPC processors. It flaunted full
memory protection and advanced process management. This OS version has a microkernel
enabling UNIX-like process management. Furthermore, its internet search capabilities were
enhanced, allowing users to search by content and use multiple search engines at once. One of
the unique areas where Macintosh OS outshined others was the Color Sync feature, providing an
unparalleled visual representation.

The subsequent version, Mac OS-X, broadened the horizon with an object-oriented programming
environment. Its microkernel was crafted to provide LINUX-like facilities, expanding its
capabilities.

8.17.12 Novell NetWare


Novell’s NetWare stands as a testament to what a network operating system should be. It was
constructed as a multitasking, multiuser system, promoting seamless sharing of files and
resources across a network.

One of the core functions of NetWare is to ensure fair time-slices to processes. It efficiently
supports sharing various resources like printers, plotters, and storage devices, making
collaboration effortless.

The Novell-5.0 version went a step further. While it maintained its traditional LAN sharing
features, it added enhancements tailored for the Internet environment. This version was pivotal in
introducing centralized network management services. Moreover, its IPX-to IP support bridged
the gap between IPX-based LANs and IP-based networks.

8.18 UTILITY PROGRAMS


Utility programs are essential software tools used in the development, writing, debugging, and
documentation of programs. They fall into two main categories:
1. File Management Utilities: These are part of the operating system, assisting programmers in
managing files like creating, copying, printing, erasing, and renaming.
2. Program Development Utilities: These help in the process of writing and testing programs, and
they include tools like text editors, assemblers, compilers, loaders, locators, linkers, and
debuggers. Some of these tools may be included in the operating system, while others are loaded
separately.

Editor
An editor is a tool that enables programmers to create, modify, and store source programs or text.
Examples include WordStar and Edlin. It works under the control of the operating system and comes with
unique commands to manage text or program content.

File Manager
The file manager is instrumental in creating, copying, updating, or deleting files on disks. It maintains a
directory of files stored on the disk, containing details like file name, size, date and time, and unused
memory capacity.

Loader
A loader is responsible for loading the machine codes of a program into system memory. Depending on
the format (absolute or relocatable), the loader might simply load the program, or the locator might assign
specific addresses before loading.

Locator
A locator functions to assign specific memory addresses for the machine code of a program, preparing it
to be loaded into the system memory.

Linker
A linker connects smaller programs (modules) to form a single program. It also links subroutines with the
main program and operates on machine codes. The process makes it easier to develop, test, and debug
programs.
8.19 APPLICATION PACKAGES
Application packages are software written to perform specific jobs, and they can be applied to various
tasks like business, engineering, education, etc. Examples include word processing, spreadsheets, CAD,
dBASE, MATLAB, SIMULINK, and integrated packages like MS-Office.

8.19.1 Word Processing Packages


Word processing packages handle the processing of text, allowing users to perform a wide array of tasks
related to text manipulation. Detailed aspects of word processing include:
● Ease of Editing: Tools are available to insert, delete, or move text, and to set margins and line
spacing.
● Dedicated Machines and Systems: Some are specific for word processing, while more advanced
systems like desktop publishing systems are also available.
● Word Wrap: Automatic shifting of long words to the next line.
● Page Breaks & Formatting: Control over the design and layout of the text, including page
numbering and footnote management.
● Scrolling: Enables easy navigation through long texts.
● Search and Replace: Allows for the quick finding and replacing of specific character strings.
● On and Off-Screen Formatting: Includes WYSIWYG formatting, where the printed output
matches the screen display.
● Spelling & Syntax Checkers: Tools for checking spelling and grammar, using electronic
dictionaries.
● The Electronic Thesaurus: Offers synonyms for words, helping to find the right word to use.
● Mail-merge: Enables the insertion of data from other files or databases into a document, useful
for mass mailing.
● Printing Graphics and Text Together: Some word processors allow the inclusion of graphical
elements like bar graphs and pie charts.
Notable Word Processing Packages: MS-Word, WordStar, Lotus WordPro, Corel’s WordPerfect,
multilingual tools for Indian languages, etc.

8.19.2 Electronic Spreadsheet (or Worksheet) Packages


An electronic spreadsheet package is a software tool designed for data analysis, allowing users to
create, manipulate, and analyze data in columns and rows. Initially used in a business context,
especially for accounting purposes, it now has a wide array of applications including
engineering, sales, inventory control, and academic evaluations. Popular spreadsheet packages
include Lotus 1-2-3 and MS-Excel.

Creation of Spreadsheet
Upon initiating, the software displays rows and columns. Each intersection point is termed a cell.
Cells have unique addresses. For instance, A1 represents the intersection of the first column and
row. Cells can contain text, numbers, labels, values, or formulas. Formulas establish relationships
between cells. A group of adjacent cells is called a range, e.gB3:B10 or B3:H3. The screen
comprises the control panel (with edit and mode areas) and the spreadsheet itself.
Spreadsheet Commands
1. Copy Command: Duplicates content from one cell or range to another, essential for
repetitive formula structures.
2. Insert/Delete Command: Add or remove columns/rows. The software auto-adjusts cell
addresses and related formulas.
3. Window Command: Splits the screen either horizontally or vertically to view different
sections simultaneously.
4. Format, Save, Print Commands: Adjust appearance, store data, and print the spreadsheet.
5. Built-in Functions: Simplify tasks, like SUM or AVG, to minimize manual formula
creation.

MS-Excel Specifics
MS-Excel is part of MS-Office, it's a versatile data analysis tool. It can generate charts and offers
voice command features. Additional Excel features include AutoCalculate, AutoSum, and
spreadsheet templates. Templates are pre-designed spreadsheets with set labels and formulas for
common data analysis types. Users only need to input data values. Several template products are
available in the market.

8.19.3 Special Purpose Data Analysis Packages


General vs. Special Purpose
While general spreadsheet packages can handle a variety of data analysis tasks, specialized
packages focus on specific areas. Examples of specialized packages include investment analysis,
accounting, and statistical analysis tools.

Types of Specialized Packages


1. Investment Packages: Focus on securities. Subtypes include fundamental analysis,
technical analysis, portfolio management, and personal financial management packages.
2. Accounting Packages: Designed for specific tasks like sales analysis, inventory control,
payroll, order entry, and general ledger. Integrated packages exist for comprehensive
business needs.
3. Statistical Analysis Packages: Similar to spreadsheets, they can be pre-programmed with
formulas and procedures. They can process data, create visuals, and produce results.

8.19.4 Graphics Packages


Graphics packages are software tools designed to produce visual representations like drawings,
charts, and 3D visualizations. Their importance is grounded in the notion that visual information,
like pictures and graphs, is easier to understand than textual data. Some key insights are:
● Computers with graphics software have made the preparation of visuals like charts and
pictures faster and more efficient. Such tools have lessened the dependency on traditional
artists and draftsmen.
● In the business context, these packages help in creating bar charts, pie charts, and line
charts to visualize data.
● Engineering fields utilize graphics packages extensively to draft designs. For example, a
designer can view multiple perspectives of a structure like an aircraft or building and can
adjust the scale to inspect different parts.
● Animation, another application, allows the addition of time to these visualizations,
enhancing understanding of dynamic systems.
● Computer-aided design (CAD) and computer-aided manufacturing (CAM) are specific
applications where graphics packages are crucial. CAD, for instance, is used in designing
components for various fields like electronics, while CAM translates these designs into
actual manufacturing processes. AutoCAD by Autodesk Inc. is a notable example of a
CAD tool.
● A significant advantage is the integration of graphics packages with other software tools
like spreadsheets, data analysis tools, and desktop publishing packages. They enrich the
user experience, offering visual outputs post-analysis.

8.19.5 Database Management Packages


Database management packages are dedicated software tools designed to organize, store, and
retrieve data in structured formats. The distinctions between raw data and processed information
lie at the heart of these systems. Key aspects include:
● At the core, databases house files, which are collections of related records. Each record is
a set of fields that provides specific data about a subject.
● The structure of a relational database is tabular. Each table has rows and columns where
rows signify records and columns represent fields. These databases can relate data across
multiple files through shared fields.
● Using these packages, one can derive specific information. For instance, given a database
of customer records, one can filter out all customers from a particular city or locality.
● Indexing is a technique used in database management to maintain the order of records.
When new records are added, indexing ensures that they are placed in the correct
sequence without the need for extensive reordering.
● The primary purpose of database management systems is to transform raw data into
meaningful information. This transformation involves processes like sorting, selecting,
and calculating.
● Numerous database management packages exist, such as MS-Access, Oracle, dBASE,
FOXBASE, and more. For instance, MS-Access is an RDBMS designed to manage vast
amounts of data and showcase relationships between records. On the other hand, Oracle,
also an RDBMS, employs the Structured Query Language (SQL) to interact with its
database.
8.19.6 Integrated Packages
Integrated packages combine various applications like word processing, spreadsheet analysis,
database management, graphics, and communications into one cohesive program. Situations
arise where users need to switch between these applications. Instead of opening and operating
them separately, integrated packages provide seamless transitions. Examples include transferring
data directly from a database into a spreadsheet, or incorporating graphs drawn from spreadsheet
data into a word processor document.

Notable integrated packages are MS-Office and LOTUS 1-2-3. Other powerful options include
Framework by Ashton-Tate and Symphony by Lotus Development Corporation. Symphony, for
instance, boasts advanced windowing capabilities and a powerful command language.

Users with standalone packages can buy system integrators or integrating software shells to
coordinate them, ensuring consistency across commands. There are scenarios where a user
primarily uses one application but requires simpler functions from others. Memory-resident
packages can supplement these primary applications. Examples include a notepad for a
spreadsheet user or a simple calculator for someone using a word processor.

8.19.7 Desktop Applications


Offices commonly use software suites that package together tools like word processors,
spreadsheet software, and presentation packages. Examples include MS-Office, Lotus
SmartSuite, and QuarkXPress.
MS-Office consists of:
1. MS-Word: A word processor that's versatile, features spell check and grammar check
functionalities. It also offers voice dictation and voice-activated commands in its XP
version.
2. MS-PowerPoint: Helps users create multimedia presentations that can be used for
lectures, websites, slides, projections, and printed handouts.
3. MS-Outlook: Organizational tool offering email services, calendar, contact list, task lists,
and notes. It's particularly useful in network environments.
4. Front Page: A tool to design and create websites with ease, including graphic and
hyperlink integrations.
5. MS-Excel and MS-Access were discussed in previous sections.

8.19.8 Desktop Publishing


Desktop publishing software facilitates the creation of print media, combining text, images, and
graphics on a page. They are useful for publishing materials like books, newspapers, bulletins,
and magazines. Known software in this category includes Corel’s Ventura, Adobe’s Page Maker,
and Quark Inc.’s Quark XPress.
8.20 BIOS
BIOS, or Basic Input Output System, consists of system programs stored in ROM as firmware,
performing foundational supervisory and support tasks. They offer fundamental services
essential to all programmers, known as Basic Input/Output Services or BIOS/ROM-BIOS. Tasks
can range from displaying characters on a screen, reading data from disk memory, or receiving
input from a keyboard.

Key services provided by ROM-BIOS include screen printing, video services, disk services, port
services, keyboard services, and bootstrapping. On top of ROM-BIOS programs, other system
programs provide more advanced support services. These include operating systems like
WINDOWS-XP. A main distinction between ROM-BIOS and operating systems like
WINDOWS-XP is the level of user services. While ROM-BIOS operates on a lower level,
WINDOWS-XP offers higher-level functions, such as file input and output.

You might also like