Reference Computer Application Management
Reference Computer Application Management
1.1 Introduction
1.1.1 Evolution of Computers
1.1.2 A Brief History of Computers
1.1.3 Characteristics
1.1.4 Classification
1.1.5 Generations
------------------------------------------------------------------------------------------------------------
1.1 INTRODUCTION
------------------------------------------------------------------------------------------------------------
Computer has been the premier invention of this century. Now a days Computer plays an
important role in almost every part of our lives, and their importance is so great that
without them we would not be able to live the way we do. Look around you and you
would find computers scattered all over the places, starting with the machine of computer
to washing machine to refrigerator to car to mobile and to life saving devices with the
doctors; everywhere a small computer working for your convenience and they seem
performing almost any task in the world. Computers have had a tremendous impact on
the way information is processed with in the organization. Although information have
been processed manually throughout the history but with modern management where
decision-making is so fast and the era of corporate governance is not possible without the
help of information system managed by computers.
The word “computer” comes from word compute, which means to calculate. “A
computer is a programmable machine (or more precisely, a programmable sequential
state machine) that operates on data and is used for wide range of activities”.
5
tool, which can be used to read and write stories, draw and look at images, and send and
receive e-mail. They can store large information and perform various scientific and
mathematical tasks.
Basically Computer system are a combination of the five elements i.e. Hardware,
Software, People, Procedure and Data / information. The computer organization often
compared with the human brain. Just think of a human brain how it works, first of all it
can store the data with its five senses (Just like input devices in computer), it can process
the gathered information and could reach to some conclusion drawing from the raw data
(Just like the processing of computer system) and then it can deliver the output or result
with speech or with expression (Just like the output device).
6
1.1.1 Evolution of Computers
7
8
1.1.2 A Brief History of Computers
"History reveals a clear pattern in the evolution of computers. Processing power increases
rapidly after the introduction of the new technology. The rate of growth eventually slows
down as the technology is exploited to its full potential. While in the background other
technologies are nurturing and one ultimately supersedes the other to become the
dominant technology and this cycle is repeated.
Under the right conditions the shift to the new technology can lead to possible increase in
processor speed of hundred to thousand times. In order to have a better idea of the
9
evolution of computers it is worthwhile to discuss some of the well- known early
computers. These are as follows:
Although this machine proved to be extremely reliable, it was very complex in design
and huge in size. It used over 3000 electrically actuated switches to control its operations
and was approximately 50feet long and 8 feet high. It was capable of performing five
basic arithmetic operations: addition, subtraction, multiplication, division, and table
reference on numbers as big as 23 decimal digits. It took approximately 0.3 second to add
two numbers and 4.5 seconds for multiplication of two numbers. Obviously, the machine
was very slow as compared to today’s computers.
3. The ENIAC (1943-46): The Electronic Numerical Integrator and Calculator (ENIAC)
was the first all electronic computer. It was constructed at the Moore School of
Engineering of the University of Pennsylvania, U.S.A by a design team led by Professors
J. Presper Eckert and John Mauchly.
The team developed ENIAC because of military needs. It was used for many years to
solve ballistic related problems. It took up wall space in a 20 x 40 square feet room and
used 18,000vacuum tubes. It could add two numbers in 200 microseconds and multiply
them in 2000 microseconds.
4. The EDVAC (1946-52): A major drawback of ENIAC was that its programs were
wired on boards that made it difficult to change the programs. Dr. John Von Neumann
later introduced the” stored program” concept that helped in overcoming this problem.
The basic idea behind this concept is that a sequence of instructions and data can be
stored in the memory of a computer for automatically directing the flow of operations.
This feature considerably influenced the development of modern digital computers
because of the ease with which different programs can be loaded and executed on the
same computer. Due to this feature, we often refer to modern digital computers as stored
program digital computers. The Electronic Discrete Variable Automatic Computer
(EDVAC) used the stored program concepts in its design. Von Neumann also has a share
of the credit for introducing the idea of storing both instructions and data in binary form(
a system that uses only two digits – 0 and 1 to represent all characters), instead of
decimal numbers or human readable words.
10
machine executed its first program in May 1949. In this machine, addition operations
took 1500 microseconds and multiplication operations took 4000 microseconds. A group
of scientists headed by Professor Maurice Wilkes at the Cambridge University
Mathematical Laboratory developed this machine.
6. The UNIVAC I (1951): The Universal Automatic Computer (UNIVAC) was the first
digital computer that was not “one of a kind”. Many UNIVAC machines were produced,
the first of which was installed in the Census Bureau in 1951 and was used continuously
for 10years. The first business use of a computer, a UNIVAC I, was by General Electric
Corporation in 1954.
In 1952, the International Business machines (IBM) Corporation introduced the IBM-701
commercial computer. In rapid succession, improved models of the UNIVAC I and other
700- series machines were introduced. In 1953, IBM produced the IBM-650, and sold
over 1000 of these computers. UNIVAC marked the arrival of commercially available
digital computers for business and scientific applications.
1.1.3 Characteristics
The ever-increasing use of computer is due to its special characteristics. Computer is not
just a calculating machine; they also have the capability of doing complex activities and
operation. Main characteristics of the computer are given bellow:
1. Speed: Computer is very fast and accurate device. Since electronic pulses travel
at incredible speed and they are electronic device its internal speed is virtually
instantaneous. A microcomputer can process millions of instruction per seconds
over and over again without any mistake.
2. Accuracy: Computers physical circuits rarely make errors, if the data and
instruction are correctly fed. Most errors which occur in computers are either
hardware error or human error
3. Storage: Computers have a large amount of memory to hold a very large amount
of data, we can store large amount of data information in the secondary storage
device.
4. Programmability: A computer is programmable; i. e. what computer does
depend on the lines of instruction (Program) it is using.
11
7. Power of remembrance: Unlike humans, computer can store things for unlimited
period of time. It has great remembering power.
1.1.4 Classification
Computers can be classified many different ways -- by size, by function, and/or by
processing capacity. We will study the classification of computers by size. The size of a
computer often determines its function and processing capacity. The size of computers
varies widely from tiny to huge and is usually dictated by computing requirements. For
example, it is clear that the IRS will have different requirements than those of a college
student.
There are two basic kinds of computers: analog and digital.
A. Analog computers
Analog computers are analog devices. That is, they have continuous states rather than
discrete numbered states. An analog computer can represent fractional or irrational values
exactly, with no round off. Analog computers are almost never used outside of
experimental settings. They handle or process information, which is of physical nature.
B. Digital Computer
Digital computer is a programmable-clocked sequential state machine. A digital
computer uses discrete states. A binary digital computer uses two discrete states, such as
positive/negative, high/low, on/off, used to represent the binary digits zero and one. They
process data, which is essentially in a binary state.
Now these days, we rarely came across of analog computers in routine life. Digital
computer does not get evolve in sparks time. It took more than five decades to emerge it
as the most usable devise today. Let’s take the glimpse of its siblings.
12
Fig.1.3 Digital Computer
13
applications. With the advancement in technology the speed, memory size and other
characteristics developed and the minicomputer was then used for various stand alone or
dedicated applications. The minicomputer was then used as a multi-user system, which
can be used by various users at the same time. Gradually the architectural requirement of
minicomputers grew and a 32-bit minicomputer, which was called super mini, was
introduced. The super mini had more peripheral devices, larger memory and could
support more users working simultaneously on the computer in comparison to previous
minicomputers.
14
Fig. 1.6 Mainframe Computer
5) Super Computers processing capabilities lies in the range of GIPS2, word length
64-128 or may be in 256 or so. Memory capacity in some gigabytes or in
terabytes and storage capacity in pixabytes. It contains a number of CPU’s, which
operate in parallel to make it faster, giving them their speed through parallel
processing. They are used for weather forecasting, weapons research and
development, rocketing, aerodynamics, atomic, nuclear and plasma physics.
Supercomputers have limited use and limited market because of their very high
price.
They are being used at some research centers and government being used at some
research centers and government tasks. Examples of users of these computers are
governmental agencies, such as the IRS, the National Weather Service, and the
National Defense Agency. Also, they are used in the making of movies, space
exploration, and the design of many other machines. Supercomputers are used for
tasks that require mammoth data manipulation.
15
1.1.5 Generations
‘Generation’ in computer talk is a step of changing technology. It provides the framework
for the growth of computer industry. There are five generations of computer with the first
generation computers being those, which became commercially available in the early
1950s.
16
• Required less power to operate
• Increase storage capacity
17
• Microprocessor used
• Increase cost of software
• Data base management system
• Distributes processing
• Graphics manipulation
• Pentium/AMD based are the fourth generation computers
• Organic chips
• Decreasing cost of software
• Decreasing cost of hardware
• Artificial Intelligence
• Multi point input-output
• Large storage facility
• Auto decision
• High speed
• Under development in USA, Japan and UK
------------------------------------------------------------------------------------------------------------
1.2 COMPUTER ARCHITECTURE
--------------------------------------------------------------------------------------------
We have seen that computer affects our life in a big way by increasing the efficiency and
enhanced ability. Now we will have to look for the anatomy of computer. What it is made
up of? The architecture of a simple and basic computer system. The parts of computer as
we know did not appear all at once in one machine by one person. It is a continuously
evolving process starting as early as 17th century when people began to work on
machines that would automate task and to your surprise the first such machine was
developed in 17th century by mathematician and philosopher Blaise Pascal but it was not
an electronic device. It was purely a mechanical machine, which used meshed gears to
add and multiply the numbers. But after him there was a long gap when an idea emerged
from Charles Babbage to process information although he could never successfully
develop such mechanical machine but his idea was of million dollar worth. That’s why he
is known as a first father of computer. Modern electronic computer started taking shape
in 1940 with the invention of Mark – I Computer since then there have been a lot of
research and new inventions in the technology of computer.
Input Unit/Devices
Output Unit/Devices
18
Central Processing Unit
Memory Unit/Storage Devices
All these components are basically the integral parts of general-purpose computers. These
may be the Desktop systems or Workstations. The diagram of a generalized architecture
of a computer system is shown here
There are many peripheral devices, which are used as input/output units for the computer.
The most common form of input device is known as a terminal. A terminal has an
electronic typewriter like device, called keyboard along with a display screen, called
Visual Display Unit (VDU) or monitor. Keyboard is the main input device while the
monitor can be considered both as an input as well as an output device.
A) Input Devices
Input unit performs following functions:
a) It accepts (or reads) instructions and data from outside world.
19
b) It converts these instructions and data in computer acceptable form.
c) It supplies the converted instructions and data to computer system for further
processing.
Input Devices are used to input data, information and instructions into the RAM. We
may classify these devices into the following two broad categories:
B) Output Devices
An Output unit performs following functions:
a) It accepts the results produced by a computer, which are in coded form and hence, we
cannot easily understand them.
b) It converts these coded results to human acceptable (readable) form.
c) It supplies the converted results to outside world.
Output devices are hardware components, which are used to display or print the
processed information. We are discussing below the structure, working and uses of the
common output devices:
Monitor
Visual Display Unit (VDU) commonly called, as monitor is the main
output device of a computer. It consists of a Cathode Ray Tube (CRT),
which displays characters as an output. It forms images from tiny dots,
called pixels that are arranged in a rectangular form. The sharpness of the
image (screen resolution) depends upon the number of pixels.
Printer
Printer is the most important output device, which is used to print information on paper.
Printers are essential for getting output of any computer-based application.
20
PRINTER
Memory Unit
Memory Unit is that component of a computer system, which is used to store the data,
instructions and information before, during and after the processing by ALU. It is
actually a work area (physically a collection of integrated circuits) within the computer,
where the CPU stores the data and instructions. It is also known as a
Main/Primary/internal Memory.
21
“The storage device along with the algorithm or information on how to control and
manage these storage devices constitutes the memory system of computer”. A memory
system is a very simple system yet it exhibits a wide range of technology and types. But
unfortunately, faster memory technology is more costly. In addition fast memories
require power supply till the information needs to be stored. These things are not very
convenient, but on the other hand the memories with smaller cost have very high access
time, this is the time taken by CPU to access a location in the memory in high, which will
result in slower operation of the CPU. Thus, the cost versus access time anomaly has lead
to a hierarchy of memory where we supplement fast memories with larger, cheaper,
slower memories. This memory unit may have different physical and operational
characteristics, therefore, making the memory system very diverse in type, cost,
organization, technology and performance. This memory hierarchy will be fruitful if the
frequency of access to slower memories is significantly less than the faster memories.
Cache
Fast, Small,
Experience Main Memory (RAM)
Magnetic Disk
Slow,
Large, Cheap Magnetic Tape
Thus, a memory system can be considered to consist of three groups of memories. These
are:
1) Internal Processor Memories: These consist of the small set of high speed
registers which are internal to a processor and are used as temporary locations
where actual processing is done.
2) Primary memory or main memory: It is a large memory, which is fast but not
as fast as internal processor register. Processor directly accesses this memory. It
is mainly based on integrated circuit.
Memory
Memory- is also known as the primary storage or main memory/ internal memory. It is a
apart of microcomputer that hold data for processing, instruction for processing the data
(the program) and information (processed data) .It is of the following three types:
22
1. Read Only Memory (ROM)
2. Random Access Memory (RAM)
3. Complementary Metal Oxide Semiconductor Memory (CMOS)
Types of ROM
There are many types of ROM available for microcomputers like Mask ROM, PROM,
EPROM, EEPROM and EAPROM.
Mask ROM: Mask ROM is the basic ROM chip. In this type of ROM, the information
is stored at the time of its manufacturing. So, it cannot be altered or erased later on.
PROM: PROM stands for Programmable Read Only Memory. In this type of ROM, the
information is stored by programmers after its manufacturing. It also cannot be altered or
erased later on.
EPROM: EPROM stands for Erasable Programmable Read Only Memory. It is similar
to PROM, but its information can be erased later on by ultra violet light and it can be
reprogrammed.
23
known as random access memory. The memory capacity of RAM varies from 640 KB to
several megabytes (1 Megabyte = 1024 KB) with different models of PC.
Types of RAM
There are two types of RAM used in PCs - Dynamic and Static RAM.
Dynamic RAM (DRAM): The information stored in Dynamic RAM has to be refreshed
after every few milliseconds, otherwise it is erased. DRAM has higher storage capacity
and is cheaper than Static RAM.
Static RAM (SRAM): The information stored in Static RAM need not be refreshed, but
it remains stable as long as power supply is provided. SRAM is costlier but has higher
speed than DRAM.
------------------------------------------------------------------------------------------------------------
1.3 DATA REPRESENTATION
------------------------------------------------------------------------------------------------------------
We know that data is usually combination of numbers, characters and special
characters. This data has to be worked upon by the computer as well as it has to be
transported from place to place, i.e. data has to flow from place to place within the
computer hardware. As the computer is a electronic device and it works with electronic
pulses, this data or information should be in the form which is machine readable and
understandable, for this reason, data has to be represented in the form of electronic
pulses.
The data has to be converted into electronic pulses and each pulse should be identified
with a code. For these reasons, the data is converted into numeric format first, by using
world wide standard called ASCII i.e. American standard code for Information
Interchange, where each and every character, special character and keystrokes have
numerical equivalent. We will have a detail discussion on ASCII codes in the codes
section. Thus using this equivalent, the data can be interchanged into numeric format.
For the numeric conversion we use number systems, each number system has a radix or
base, which indicates the number of digits in that number system. Lets have a quick
look at number systems.
1.3.1 Number System
Most modern computer systems do not represent numeric values using the decimal
system. Instead, they typically use a binary or two’s complement numbering system. To
understand the limitations of computer arithmetic, you must understand how computers
represent numbers.
In any number system there is an ordered set of symbols known as digit with rules
24
defined for performing arithmetic operations like addition, multiplication etc. A
collection of these digits makes a number which in general has two parts
1. Integer part
2. Fractional part
The base is 10
n is 3
m is 2
Now I think you got the basic criteria to distinguish the one number system from another.
Now based on this lets come to the types of number system
25
Now lets see the characteristics of these number systems:
Table 1.1
-------------------------------------------------------------------------------------------------------------
1.4 REVIEW QUESTIONS
---------------------------------------------------------------------------------------------
1. What are supercomputers and where they are used?
2. What is the different between analog and digital computer? You have to explain in
your own words?
3. What is the difference between second and the fourth generation of the computer?
4. Do the comparative studies of the various generations of the computer based on power
and space occupied by them
5. What are the characteristics of computer?
6. Draw a block diagram to illustrate the basic organization of a computer system and
explain the functions of various units.
7. Which component of a computer is generally called 'brain' of computer and Why?
Describe the functions of the distinct parts of this component.
26
---------------------------------------------------------------------------------------------------------
COMPUTER SOFTWARE
------------------------------------------------------------------------------------------
Structure
2.1 What is Software?
2.1.1 Relation between Hardware and Software
2.5 Flowcharts
2.5.1 Problem Solving, Step by Step
2.5.2 How to Draw Flowcharts
2.5.3 Basic Flowcharting Shapes
2.5.4 Advantages of Flowcharts
---------------------------------------------------------------------------------------------------------
2.1 WHAT IS SOFTWARE?
---------------------------------------------------------------------------------------------------------
A Computer cannot do anything on its own. It must be instructed to do a job desired by us.
Hence, it is necessary to specify a sequence of instructions a computer must perform to
solve a problem. Such a sequence of instructions written in a language understood by a
computer is called a computer program. A program controls a computer’s processing
activity, and the computer performs precisely what the program wants it to do. When a
computer is using a program to perform a task, we say, it is running or executing that
program.
The term software refers to a set of computer programs, procedures, and associated
documents (flowcharts, manuals, etc.) describing the program, and how they are to be used.
A software package is a group of programs that solve a specific type of job. For example, a
word processing package may contain programs for text editing, text formatting, drawing
graphics, spelling checking, etc. Hence, a multipurpose computer system, like a personal
computer in your home, has several software packages, one each for every type of job it
can perform.
27
2.1.1 Relation between Hardware and Software
For a computer to produce useful output its hardware and software must work together.
Nothing useful can be done with the hardware on its own, and software cannot be utilized
without supporting hardware.
To take an analogy, a cassette player and its cassettes purchased from the market are
hardware. However, the songs recorded on the cassettes are its software. To listen to a
song, that song has to be recorded on one of the cassettes first, which is then mounted on
the cassette player and played. Similarly, to get a job done by a computer, the
corresponding software has to be loaded in the hardware first and then executed.
Following important points regarding the relationship between hardware and software are
brought out by this analogy:
1. Both hardware and software are necessary for a computer to do useful job. Both are
complementary to each other.
2. Same hardware can be loaded with different software to make a computer perform
different types of jobs just as different songs can be played using the same cassette
player.
3. Except for upgrades (like increasing main memory and hard disk capacities, or adding
speakers, modems, etc.); hardware is normally a one- time expense, whereas software
is a continuing expense. Like we buy new cassettes for newly released songs or for
songs whose cassettes, we do not have, we buy, new software to be run on the same
hardware as and when need arises, or funds become available.
---------------------------------------------------------------------------------------------------------
2.2 TYPES OF SOFTWARE
---------------------------------------------------------------------------------------------------------
Software is broadly classified into following two types:
• System Software
• Application Software
28
• System Development Software (Language Translators, Application Generators,
CASE Tools)
• System Software Utilities
Assemblers: Assemblers translate the assembly language code (source program) into
machine language code (object program). After assembling, a linker program is used to
convert the object program into an executable program. The Microsoft assembler program
(MASM) and Borland Turbo assembler program (TASM) are two popular assemblers.
Assemblers are used mainly in development of system software.
There are certain disadvantages of interpreters. As instructions are translated and executed
simultaneously using interpreters, they are very slow for executing large programs. Hence,
interpreters are not suitable for most of applications development.
29
SOFTW
SYSTEM APPLICATION
Assemble Compilers
Spreads Databas
---------------------------------------------------------------------------------------------------------
2.3 SOFTWARE DEVELOPMENT LIFE CYCLE
---------------------------------------------------------------------------------------------------------
Software Development Life Cycle or SDLC is a model of a detailed plan on how to create,
develop, implement and eventually fold the software. It’s a complete plan outlining how
the software will be born, raised and eventually be retired from its function. All software
needs to be developed by someone. Developing software and putting it to use is a complex
process involving following steps:
1. Analyzing the problem at hand, and planning the program (s ) to solve the problem;
2. Coding the program (s);
3. Testing, debugging, and documenting the program (s);
4. Implementing the program (s);
5. Evaluating and maintaining the program (s).
30
Fig 2.2 Software Development Life Cycle
We will be able to tell how long it will take to complete the project, to test and deploy. Not
only that, you'll have an easier time debugging and finding flaws in the software program
or make enhancement to it.
---------------------------------------------------------------------------------------------------------
2.4 INTRODUCTION TO ALGORITHM
---------------------------------------------------------------------------------------------------------
Planning a program involves defining its logic (the correct sequence of instructions needed
to solve the problem at hand). The term Algorithm refers to the logic of a program. It is a
step – by – step description of how to arrive at a solution. To a given problem. It is defined
as a sequence of instructions that when executed in the specified sequence, the desired
results are obtained. In order to qualify as an algorithm, a sequence of instructions must
possess the following characteristics:
1. Each instruction should be precise and unambiguous.
2. Each instruction should be executed in a finite time.
3. One or more instructions should not be repeated infinitely. This ensures that the
algorithm will ultimately terminate.
4. After executing the instructions (when the algorithm terminates), the desired results
are obtained.
31
Therefore, in simple terms, we can say that an algorithm is a procedure to accomplish a
specific task. It is the idea behind any computer program. To be interesting, an algorithm
has to solve a general, well-specified problem. An algorithmic problem is specified by
describing the complete set of instances it must work on and what properties the output
must have as a result of running on one of these instances. This distinction between a
problem and an instance of a problem is fundamental. To gain insight into algorithms, let
us consider a simple example.
Example: There are 50 students in a class who appeared in their final examination. Their
mark sheets have been given to you. Write an algorithm to calculate and print the total
number of students who passed in first division.
Algorithm:
Step 3: Check the division column of the mark sheet to see if it is FIRST. If no, go to step
5.
Step 8: Stop.
It must be clear to you from this example that even for every simple problems, the
development of algorithms is not as simple as it might initially appear and requires some
thinking. It may also be noted from the given example that in order to solve a given
problem, each and every instruction must be strictly carried out in a particular sequence. It
is this fact, which a beginner to problem solving by computers finds difficult to appreciate.
---------------------------------------------------------------------------------------------------------
2.5 FLOWCHARTS
---------------------------------------------------------------------------------------------------------
A Flowchart is a pictorial representation of an algorithm. Programmers often use it as a
program – planning tool for visually organizing a sequence of steps necessary to solve a
problem using a computer. It uses boxes of different shapes to denote different types of
instructions. The actual instructions are written within these boxes using clear and concise
statements. Solid lines having arrow marks connect these boxes to indicate the flow of
32
operation, that is, the exact sequence in which to execute the instructions. The Process of
drawing a flowchart for an algorithm is known as flowcharting.
Think of what you might do if I asked you to write a set of instructions for brushing your
teeth. What are the steps you might write down? Would you write this down?
If you write only these three instructions, it means that the person must somehow know
where the toothbrush and toothpaste are located, how to get the toothpaste out of the tube,
what it means toothbrush, and how to put the toothbrush away. You cannot assume that the
person knows these things. You have not taken care of any possible problems that might
arise. You would have to be much more detailed in you writing. Let try it again
(1) Go to the bath-room.
(11) If toothpaste does not come out of the tube, check tube.
33
(14) Fill glass with water.
It took twenty-two instructions to replace the three instructions and I have left out one
instruction did you spot it?!Did not put the cap back on the toothpaste!
Sometimes, if you Java out a step like that, the computer will just stop. It may say
something to you or it may not. It may continue to do things, but they may not be the things
you want you do. It may give you an answer, but the answer may not be the correct one.
The computer did not make a mistake. It did all the steps you asked it to do. If the computer
does not do what you want it to do, it may be because you did not tell it the right steps. It
may be because you left out a choice that made a change in the program.
Did you notice that I included what you had to do if anything went wrong? If there were no
toothbrush or toothpaste or if the toothpaste did not come out of the tube, you were
instructed to do something. You must plan 'for all the things that could happen when the
computer is running its program. What if a number gets to be too big or someone gives the
wrong answer to a question? You must have something for the computer to do in every
base.
You are making a plan for the computer to follow, just as the architect makes a plan for the
carpenters to follow. Before we begin to make plans for a computer to follow, let’s try to
plan some things for people to do and then have you follow the plans. Some actions you
might write instructions for are typing a shoelace of a necktie, putting on makeup, or riding
bicycle. If you don’t put in enough steps, you may find someone in a very strange position.
34
Example: Two Flowcharts for a Common Process
Suppose your research revealed that you always want fries and a drink with your burger.
You decide to streamline your process by ordering the combo meal, which automatically
includes fries and a drink. The two flowcharts show at a glance that you omit two decisions
and two order steps by using the streamlined order process.
35
The terminator symbol marks the starting or ending point of the system. It usually
contains the word "Start" or "End."
A box can represent a single step ("add two cups of flour"), or and entire sub-
process ("make bread") within a larger process.
Indicates that the flow continues on another page, where a matching symbol
(containing the same letter) has been placed.
36
Basic Flowchart
A basic Flowchart identifies the starting and ending points of a process, the sequence of
actions in the process, and the decision or branching points along the way.
1. Better Communication
2. Effective analysis
3. Effective synthesis
5. Effective coding
6. Systematic debugging
7. Systematic testing
37
---------------------------------------------------------------------------------------------------------
2.6 REVIEW QUESTIONS
------------------------------------------------------------------------------------------
1. Differentiate between system and application software. Give 4 examples of each
2. What are the various flowcharting symbols?
3. Draw a flow chart of getting the maximum of three numbers input.
4. What is algorithm? What are the characteristics necessary for a sequence of
instructions to qualify as an algorithm?
5. Define the terms hardware and software.
6. Describe the functions of the various basic flowcharting symbols.
38
---------------------------------------------------------------------------------------------------------
OPERATING SYSTEMS
---------------------------------------------------------------------------------------------------------
Structure
3.1 Introduction
3.1.1 Layers of Operating System
3.1.2 Functions of Operating Systems
3.1.3 Characteristics of an Operating System
3.1.4 Measuring System Performance
The Operating System is not the command interpreter alone, as people perceive. The
Operating System is the program that must be running all the time, and cannot be replaced
39
without it being a different O/S. Let us look into this most important component of the
Computer System, the Operating System.
Definition 1:
“An operating system can be defined as the set of instructions or programs, which make the
computer work”
Definition 2:
“An Operating System or OS is a software program that enables the computer hardware to
communicate and operate with the computer software”
Definition 3:
“An operating system is software, which controls the computer and its peripherals
and makes the computer ready to use by a process called booting”
An Operating System (OS) is an integrated set of programs that is used to manage the
various resources and overall operations of a computer system. It is designed to support the
activities of a computer installation. Its prime objective is to improve the performance and
efficiency of a computer and increase facility, the ease with which a system can be used.
As we have seen that an operating system is software, which makes the computer ready to
use by a process called booting. Before, discussing more on the operating systems, let us
first see what exactly do you mean by booting:
When we switch on the computer, the instructions stored in ROM are automatically
executed. These instructions help the computer to load the operating system from external
storage device (disk) to internal storage (RAM). This process of loading of operating
system from disk to RAM is called booting.
40
3.1.1 Layers of Operating System
Each group of computers may have its own and unique operating system although not
necessarily only one. Operating system programs are commonly stored in hard disk. When
we switch on the computer the booting program know as BIOS (Basic I/O System) which
is stored in the ROM (Read only memory) fetches the OS from hard disk to primary
storage (RAM). An OS tells the computer how to conduct him self. The architecture of
Operating System is designed with many layers in the core of it is Hardware/Kernel, above
it is loaded an OS which in turn controls everything inside a computer and make an
interface with the application program loaded in to the computer. It interconnects the
application program to CPU through Compiler or Interpreter.
Due to the fact that there is close-knit cooperation between operating systems and
applications programs, each and every application program must be designed such that it is
able to work with a particular operating system. All operating systems essentially do the
same things but they do it in different ways, some features may be additional which add to
the functionality. This makes the point clear that an application program may work with all
operating systems, with slight modifications. An operating system performs, basically the
following functions:
41
system start up device also. The operating system is automatically loaded into
hardware's main memory (RAM) when computer is turned on. Then the OS either
waits for you to give it a command of it brings a pre selected program into a read to
operate condition. This sequence is known as boot strapping or simply booting.
2. Assigning Priorities: Usually, the OS has several levels of priorities. For instance, a
report generating program may continue to run until the system receives a
command or query from the terminal, (a priority in computer lingo). Then the
system responds to the request from the terminal before continuing with the report
program.
4. Control over hardware resources e.g. control over the selection and operation of all
peripheral devices used to input, or storage. The operating system also directs the
movement and processing of information required by your applications programs. It
transfers data to and from storage and input output devices like terminals or
printers.
5. Managing the data and program files: The operating system directs the information
storage and retrieval functions using one or more filing methods. These may include
sequential (magnetic tape), random (as on disk, units) or data base storage
structures.’ the latter method uses special identifiers for each file to locate
information more rapidly and to avoid- redundant information storage.
6. Provide utility functions that provide the user with tools for some operations like:
• Loading programs
• Transferring files from one floppy to another, backing up and copying.
• Formatting a disk to accept data Program.
• Sending information to I/O devices like printer, or a modem.
• Displaying the directory of contents of a disk.
7. Handling errors when they occur and using corrective routines where possible.
42
3.1.3 Characteristics of an Operating System
Let us try to identify the main characteristics of an operating system:
• Concurrency: being able to handle events as they occur and executing multiple
tasks in parallel;
• Sharing the resourced for a number of reasons:
1. Cost
2. Using the work of others
3. Sharing data: use the same data in several different programs possibly
used by several different users.
• Removing redundancy;
• Long-term storage of information (privacy, integrity, security);
• Non determinacy: an operating system must be able to handle events occurring
in an unpredictable order.
1. Throughput: Throughput is the amount of work that a system is able to do per unit
time. It is measured as the number of jobs (processes) completed by the system per
unit time. For example, if a system is able to complete n processes in t seconds, its
throughput is n/t processes per second during that interval. Throughput is measured
normally in processes per hour. Note that the throughput of a system does not
depend on its jobs processing efficiency only, but also on the number of jobs
processed. For long process, throughput of a system may be one process/hour;
whereas for short processes, it may be 100 processes /hour for the same system.
2. Turnaround time: From the point of view of an individual user, an important
criterion is how long it takes a system to complete a job submitted by him/her.
Turnaround time is the interval between the time of submission of a job to the
system for processing to the time of completion of the job. Although, higher
throughput is desirable from the pointy of view of overall system performance,
individual users are more interested in better turnaround time for their jobs.
3. Response time: Turnaround time is not a suitable measure for interactive systems
because in such a system a process can produce some output early during its
execution and can continue executing while previous results are being output to the
user. Hence, another measure used in case of interactive systems is response time. It
is the interval between the time of submission of a job to the system for processing
to the time of the system producing the first response for the job. In any computer
system, it is desirable to maximize throughput and minimize turnaround time and
response time.
43
---------------------------------------------------------------------------------------------------------
3.2 EVOLUTION OF OPERATING SYSTEMS
--------------------------------------------------------------------------------------------------------
An operating system may process its task serially (sequentially) or concurrently (several
tasks simultaneously). It means that the resources of the computer system may be dedicated
to a single program until its completion or they may be allocated among several programs
in different stages of execution. The feature of operating system to execute multiple
programs in interleaved fashion or different time cycles is called as multiprogramming
systems. In this topic, we will try to trace the evolution of operating system. In particular,
we will describe serial processing, batch processing and multiprogramming.
Advent of Input Output devices, such as punched cards paper tape and language translators
(Compiler/Assemblers) brought a significant step in computer system utilization. Program
started being coded into programming language are first changed into object code (binary
code) by translator and then automatically gets loaded into memory by a program called
loader. After transferring a control to the loaded program, the execution of a program
begins and its result gets displayed or printed. Once in memory, the program may be re-run
with a different set of input data. The process of development and preparation of a program
in such environment is slow and cumbersome due to serial processing and numerous
manual processing. In a typical sequence first the editor is called to create a source code of
user program written in programming language, translator is called to convert a source
code into binary code and then finally loader is called to load executable program into main
memory for execution. If syntax errors are detected, the whole process must be restarted
from the beginning. The next development was the replacement of card decks with
standard input/output and some useful library programs, which were further linked with
user program through system software called linker. While there was a definite
improvement over machine language approach, the serial mode of operation is obviously
not very efficient. This results in low utilization of resources.
44
suppose the operator received one FORTRAN program, one COBOL program and another
FORTRAN program. If he runs them in that order, he would have to set up for FORTRAN
program environment (loading the FORTRAN compiler tapes) then set up COBOL
program and finally FORTRAN program again. If he runs the two FORTRAN programs as
a batch, however he could set up only once for FORTRAN thus saving operator's time.
Batching similar jobs brought utilization of system resources quite a bit. But there were still
problems. For example, when a job is stopped, the operator would have to notice that fact
by observing the console, determine why the program stopped and then load the card reader
or paper tape reader with the next job and restart the computer. During this transition from
one job to the next, the CPU sat idle.
To overcome this idle time, a small program called a resident monitor was created which is
always resident in the memory. It automatically sequenced one job to another job. Resident
monitor acts according to the directives given by a programmer through control cards
which contain information like marking of job's beginnings and endings, commands for
loading and executing programs, etc. These commands belong to job control language.
These job control language commands are included with user program and data. Here is an
example of job control language commands.
Figure 3.3 shows a sample card deck set up for a simple batch system.
With sequencing of program execution mostly automated by batch operating system, the
speed discrepancy between fast CPU and comparatively slows input/output devices such as
' card readers, printers emerged as a major performance bottleneck. Even a slow CPU
works in the microsecond range, with millions of instructions per second. But, fast card
45
reader, on the other hand, might read 1200 cards per minute. Thus, the difference in speed
between the CPU and its input/output devices may be three orders of magnitude or more.
The relative slowness of input/output devices can mean that CPU is often waiting for
input/output. As an example, an Assembler or Compiler may be able to process 300 or
more cards per second. A fast card reader, on the other hand, may be able to read only 1200
cards per minute. This means that assembling or compiling a 1200 card program would
require only 4 seconds of CPU time but 60 seconds to read. Thus, the CPU is idle for 56
out of 60 seconds or 93.3 per cent of the time. The resulting CPU utilization is only 6.7 per
cent. The process is similar for output operations. The problem is that while an input/output
is occurring, the CPU is idle, waiting for the input/output to complete; while the CPU is
executing, input/output devices are idle.
Buffering is a method of overlapping input, output and processing of a single job. The idea
is quite simple. After data has been read and the CPU is about to start operating on it, the
input device is instructed to begin the next input immediately. The CPU and input device
are then both busy. With luck, by the time that the CPU is ready for the next data item the
input device will have finished reading it. The CPU can then begin processing the newly
read data, while the input device starts to read the following data. Similarly, this can be
done for output. In this case, the CPU creates data that is put into a buffer until an output
device can accept it. For output, the CPU can proceed at full speed until, eventually all
system buffers are full. Then the CPU must wait for the output device. This happens with
input/output bound jobs where the amount of input/output relation to computation is very
high. Since the CPU is faster than the input/output device, the speed of execution is
controlled by the input/output device, not by the speed of the CPU.
Buffering overlaps input, output and processing of a single job whereas Spooling allows
CPU to overlap the input of one job with the computation and output of other jobs.
Therefore this approach is better than buffering. Even in a simple system, the spooler may
be reading the input of one job while printing the output of a different job.
46
Fig 3.4 Spooling
3.2.3 Multiprogramming
Buffering and spooling improve system performance by overlapping the input, output and
computation of a single job, but both of them have their limitations. A single user cannot
always keep CPU or I/O devices busy at all times. Multiprogramming offers a more
efficient approach to increase system performance. In order to increase the resource
utilization, systems supporting multiprogramming approach allow more than one job
(program) to utilize CPU time at any moment. More number of programs competing for
system resources, better will be resource utilization. The idea is implemented as follows.
The main memory of a system contains more than one program (Figure 3.5).
The operating system picks one of the programs and start executing. During execution
process program1 may need some I/O operation to complete. In a sequential execution
environment (Figure 3.6a), the CPU would sit idle. In a multiprogramming system, (Figure
3.6b) operating system will simply switch over to the next program (Program2).
When that program needs to wait for some I/O operation, it switches over to Program 3 and
so on. If there is no other new program left in the main memory, the CPU will pass its
control back to the previous programs.
47
Multiprogramming has traditionally been employed to increase the resource utilization of a
computer system and to support multiple simultaneously interactive users (terminals).
Compared to operating system which supports only sequential execution,
multiprogramming system requires some form of CPU and memory management strategies
---------------------------------------------------------------------------------------------------------
3.3 TYPES OF OPERATING SYSTEM
---------------------------------------------------------------------------------------------------------
As computers have progressed and developed so have the types of operating systems.
Many types of operating systems are available for computers, which can be divided into the
following two broad categories -
(a) Single-user operating systems: These operating systems are used for mainly
computers having only one terminal (stand-alone PCs). MS DOS (Microsoft Disk
Operating System) and PC DOS (Personal Computer Disk Operating System) are the two
important single user operating systems. Both systems are almost identical and are simply
called DOS. OS/2 and Windows NT are other popular single-user multi-tasking operating
systems for microcomputers.
48
(i) Microsoft DOS - MS DOS, developed by 'Microsoft Inc.' in 1981, is the
most widely used operating system of IBM-compatible microcomputers.
The latest version identification number of a release of software) of MS
DOS is 7.
(ii) PC DOS - PC DOS is essentially the same operating system as MS DOS,
but developed and supplied by IBM for its personal computers.
(b) Multi-user operating systems: These operating systems are used for those computers
(micro to mainframe), which have many terminals (multi-user systems). The popular
operating systems used for multi-user systems are UNIX, NETWARE, MVS, OS/400,
VMS and Linux.
Multi-user operating systems are used on networks of computers and allow many different
users to access the same data and application programs on the same network. It also allows
users to communicate with each other.
Modern computer operating systems may also be classified into three other groups, which
are distinguished by the nature of interaction that takes place between the computer user
and his or her program during its processing. The three groups are called batch, time-
shared and real time operating systems.
Batch processing operating systems are good at churning through large numbers of
repetitive jobs on large computers. Jobs like: printing of invitations for AGM,
consolidation of marks and presenting result, working out the pay of each employee in
large firm; or processing all the questionnaire forms in a large survey.
In a batch processing operating system environment users submit jobs to a central place
where these jobs are collected into a batch, and subsequently placed on an input queue at
the computer where they will be run. In this case, the user has no interaction with the job
during its processing, and the computer’s response time is the turnaround time-the time
from submission of the job until execution is complete, and the results are ready for return
to the person who submitted the job.
A time-sharing system has many (even hundreds of) user terminals connected to the same
computer simultaneously. Using these terminals, multiple users can work on the system
49
simultaneously. Multiprogramming feature allows multiple user programs to reside
simultaneously in main memory, and special CPU scheduling algorithm allocates a short
period of CPU time one-by-one to each user process (from the first one to the last one, and
then again beginning from the first one). The short period during which a user process gets
to use CPU is known as time slice, time slot, or quantum, and is typically of the order of
10 to 100 milliseconds. Hence, when CPU is allocated to a user process, it uses the CPU
until the allotted time slice expires (system's clock sends an interrupt signal to CPU after
every time slice), or it needs to perform some I/O operation, or it completes its execution
during this period. Notice that CPU is taken away from a running process when the allotted
time slice expires. Figure 3.7 shows the process state diagram of a time-sharing system
1. Reduces CPU idle time. A user's thinking and typing speed is much slower than a
computer's processing speed. Hence, during interactive usage of a system, while a user is
engaged in thinking or typing his / her input, a time-sharing system services many other
users. Hence, time-sharing systems help in reducing CPU idle time and, in turn, provide
increased system throughput.
2. Provides advantages of quick response time. The special CPU scheduling algorithm
used in time sharing systems ensures quick response time to all users. This feature helps in
improving programmers' efficiency by making interactive programming and debugging
much simpler and quicker. Multiple programmers can work simultaneously for writing,
50
testing, and debugging their programs, or for trying out various approaches to a problem
solving.
3. Offers good computing facility to small users. Small users can gain direct access to
more sophisticated hardware and software than they could otherwise justify or afford. In
time-sharing systems, they merely pay a fee for resources used and are relieved of
hardware, software, and personnel problems associated with acquiring and maintaining
their own installation.
The operating system allows you to switch between the applications and even transfer data
between them (for example, it helps you to copy a picture from an internet site shown on
your browser application and paste it into your DTP application).
Multitasking Operating systems allow multiple software processes to be run at the same
time. Operating systems that would fall into this category are:
• System 7.x
• System 8.x
• UNIX
• Windows 2000
• Windows 95
• Windows 98
• Windows NT 4.0
Multitasking operating systems allow a user to do more than one thing at the same time.
Multi - User - Allows multiple users to utilize the computer and run programs at the same
time. Operating systems that would fall into this category are:
• System 7.x
• System 8.x
• UNIX
• Windows 2000
• Windows 3.1x
• Windows 95
• Windows 98
51
• Windows NT
Real Time Operating Systems are designed to service those applications where response
time is of the essence in order to prevent error, misrepresentation or even disaster.
Examples of real time operating systems are those, which handle airlines reservations,
machine tool control, and monitoring of a nuclear power station. The systems, in this case,
are designed to be interrupted by external signal that require the immediate attention of the
computer system.
In fact, many computer operating systems are hybrids, providing for more than one of these
types of computing service simultaneously. It is especially common to have a background
batch system running in conjunction with one of the other two on the same computer. A
number of other definitions are important to gaining an understanding of operating
systems:
A multiprogramming operating system is a system that allows more than one active user
program (or part of user program) to be stored in main memory simultaneously. Thus, it is
evident that a time-sharing system is a multiprogramming system, but note that a
multiprogramming system is not necessarily a time-sharing system. A batch or real time
operating system could, and indeed usually does, have more than one active user program
simultaneously in main storage. Another important, and all too similar, term is
‘multiprocessing’.
A multiprocessing system is a computer hardware configuration that includes more than
one independent processing unit. The term multiprocessing is generally used to refer to
large computer hardware complexes found in major scientific or commercial applications.
This Operating system allows multiple processors to be utilized. Operating systems that
would fall into this category are:
52
• UNIX
• Windows 2000
• Windows NT 4.0
The networked and distributed computing environments and their respective operating
systems are designed with more complex functional capabilities. In a network operating
system the users are aware of the existence of multiple computers, and can log in to remote
machines and copy files from one machine to another. Each machine runs its own local
operating system and has its own user (or users).
A distributed operating system, in contrast, is one that appears to its users as a traditional
unprocessed system, even though it is actually composed of multiple processors. In a true
distributed system, users should not be aware of where their programs are being run or
where their files are located; that should all be handled automatically and efficiently by the
operating system.
Network operating systems are not fundamentally different from single processor operating
systems. They obviously need a network interface controller and some low-level software
to drive it, as well as programs to achieve remote login and remote files access, but these
additions do not change the essential structure of the operating systems.
---------------------------------------------------------------------------------------------------------
3.4 OPERATING SYSTEM TECHNIQUES
---------------------------------------------------------------------------------------------------------
There are several techniques used in Multi-user operating systems for enabling many users
to concurrently share the single or multiple CPU (e.g. Multiprogramming and
Multiprocessing). Some techniques are used in single-user operating system to handle
multiple tasks (Multitasking). We will now discuss these common techniques used in
different operating systems.
3.4.1 Multiprogramming
It is a process by which single CPU works on two or more programs simultaneously.
Using this technique, the operating system keeps the CPU busy. Multiprogramming allows
the processor to handle either multiple batch jobs at a time (Batch Multiprogramming) or
53
multiple interactive jobs shared among multiple users (Time Sharing Multiprogramming).
Time-sharing is a technique that allows a CPU to simultaneously support the activities of
several users by allocating fixed time slots (in milliseconds). Examples of operating
systems that support multiprogramming are OS/2, UNIX and Macintosh System 7.
3.4.2 Multiprocessing
It refers to the use of two or more CPUs to perform a coordinated task simultaneously.
Figure 3.8 shows the architecture of a computer with its CPU, memory, and I/O processors.
Fig 3.8 Architecture of a computer system with its CPU, memory, and I/O processors.
The idea of using I/O processors to improve system performance was carried a step further
by designing systems with multiple CPUs. Such systems are called multiprocessing
systems because they use multiple processors (CPUs) and can execute multiple processes
concurrently. Multiple CPUs of these systems are used to process either instructions from
different and independent programs or different instructions from the same program
simultaneously. Figure 3.9 shows basic organization of a typical multiprocessing system.
3.4.3 Multitasking
It refers to the ability of an operating system to execute two or more tasks concurrently. In
multitasking environment, the user opens new applications without closing the previous
ones and the information can be easily moved among a number of applications.
54
Technically speaking, multitasking is same as multiprogramming. Many authors do not
distinguish between multiprogramming and multitasking because both refer to the same
concept. However, some authors prefer to use the term multiprogramming for multi-user
systems (systems that are used simultaneously by many users such as mainframe and server
class systems), and multitasking for single-user systems (systems that are used by only one
user at a time such as a personal computer or a notebook computer). Note that even in a
single-user system, it is not necessary that the system processes only one job at a time. In
fact, a user of a single-user system often has multiple tasks being processed by the system.
For example, while editing a file in foreground, a sorting job can be given in background.
Similarly, while compilation of a program is in progress in background, user may be
reading his/her electronic mails in foreground. In this manner, a user may work
concurrently on many tasks. In such a situation, status of each of the tasks is viewed on
computer's screen normally by partitioning the screen into multiple windows. Progress of
different tasks is viewed on different windows in a multitasking system.
Hence, for those who like to differentiate between multiprogramming and multitasking,
multiprogramming is interleaved execution of multiple jobs (of same or different users) in
a multi-user system, while multitasking is interleaved execution of multiple jobs (often
referred to as tasks of same user) in a single-user system. Typically, computer systems used
for such purposes are uni-processor systems (having only one CPU). Typically, computer
systems used for such purposes are uni-processor systems (having only one CPU). For
example, Windows NT and OS/2 operating systems use this technique.
3.5.4 Multithreading
Threads are a popular way to improve application performance. In traditional operating
systems, the basic unit of CPU utilization is a process. Each process has its own program
counter, its own register states, its own stack, its own address space (memory area allocated
to it). On the other hand, in operating systems, with threads facility, the basic unit of CPU
utilization is a thread. In these operating systems, a process consists of an address space
and one or more threads of control [see Figure 3.10(b)]. Each thread of a process has its
own program counter, its own register states, and its own stack. However, all the threads of
a process share the same address space. Hence, they also share the same global variables.
In addition, all threads of a process also share the same set of operating system resources,
such as open files, signals, accounting information, etc. Due to sharing of address space,
there is no protection between the threads of a process. However, this is not a problem
because process (and hence all its threads) is always owned by a single user. Therefore,
protection between multiple threads of a process is not necessary. Protection between
multiple processes is needed because different processes may belong to different users.
Threads share a CPU in the same way as processes do. At a particular instance of time, a
thread can be in anyone of several states - running, blocked, ready, or terminated. Due to
these similarities, threads are often viewed as mini processes. In fact, in operating systems
with threads facility, a process having a single thread corresponds to a process of a
traditional operating system [see Figure 3.10(a)]. Threads are often referred to as
lightweight processes and traditional processes are referred to as heavyweight processes.
55
Fig 3.10 (a) Single-threaded and (b) Multithreaded processes.
Operating systems that allow different parts of software program to run concurrently.
Operating systems that would fall into this category are:
• UNIX
• Windows2000
• Windows95
• Windows98
• Windows NT 4.0
---------------------------------------------------------------------------------------------------------
3.5 SOME POPULAR OPERATING SYSTEMS
---------------------------------------------------------------------------------------------------------
3.5.1 Disk Operating System
What is DOS and what do DOS mean? DOS is an acronym for Disk Operating System.
Though this doesn't say exactly what DOS does it tells you what it is. An operating system
is a program that is run on a computer that allows the user to communicate with it in a way
the user understands. Imagine if you had to talk to the computer on its level! No one would
want to work with computers if that were the case.
DOS allows you to perform tasks on the computer by telling the computer what to do in
terms of English like commands such as COPY and MOVE are infinitely better than
10001110101110111! Designed for microcomputers (your PC is a microcomputer), DOS
makes it easier for you to work with the information on your disks whether they are floppy
disks or hard disks. But before we look deeper into how to use DOS we need to have a little
background on how DOS looks at information on the computer.
Rebooting the Computer: Sometimes it may happen that your system crashes down
because of any reason. In This process is called Warm Boot or Reset. This will again get
things going. But it is advisable to use it as a last alternative when all other efforts of
resuming work fail. At times, Warm Boot also fails to restart the computer. This means the
instructions that are given by the keyboard are no longer valid and are not interpreted by
the system. In this case, switch off the power supply such a situation, hit < Ctrl + Alt + Del
56
> Keys together. This will restart your computer and wait for a few minutes. Then turn on
the power supply and start working. Sometimes, due to unknown reasons the system is
unable to boot from the hard disk, in such a situation, you are required to boot the system
from the bootable floppy (floppy that contains DOS).
Concept of Files and Directories: File is a collection of related information. Any kind of
text, data or program that is entered is stored in a file. Now, it is very essential to organize
your files in an ordered manner. This makes file search easier. Otherwise, it can really be a
difficult and time consuming job to search for a particular file out of the whole lot of files
stored on the disk. An example of library can make the explanation of the concept clearer.
As you must have already observed, the books in a library are put in big cabinets. Each
cabinet is divided into many shelves and sub shelves. Each shelve or sub-shelve contains
books on a particular subject. So, the required book on a particular subject can be found out
very easily without wasting much time and effort.
On similar grounds, all the files that are related to each other are clubbed at one place. This
is known as a Directory Structure or simply a Directory. A directory structure resembles
an inverted tree. The main directory becomes the Root directory. The directories and files
become the branches of this directory tree. Any number of files and directories can be
added to it, thus, making the tree grow big downwards. Let us take an example. Suppose
we wish to store two kinds of files on our disk: ACCOUNT and EXPENSE. Further, we
wish to keep two more kinds of files (say CASHSALE and CREDSALE) under
ACCOUNT sub-directory. DOS can very much help you in organizing your files through
directory structure.
1. On the top of the directory structure, there is a Root directory. This directory is
always present and is shown by \(backslash) for referencing. Any file or directory
that is created is always under the Root directory.
2. EXPENSE is the sub-directory of the Root directory.
3. ACCOUNT is the parent directory of the directories CASHSALE and CREDSALE.
It can also be said that the CASHSALE and CREDSALE are the sub-directories of
the ACCOUNT directory. Thus, a directory under a directory is called a sub-
directory / (Root).
• ACCOUNT EXPENSE
• CASHSALE CREDSALE [Link]
• [Link]
It can be clearly seen that the files relating to a particular subject can be put under a
directory. For example, all the files relating to expenses can be put under EXPENSE
subdirectory whereas all the files relating to cash sales can be stored under the subdirectory
CASHSALE.
Referencing Files
It’s time to learn as to how to locate a file. The directory structure has two sub-directories
under the Root directory. The sub-directory EXPENSE has two files under it. DOS allows
you to go from one directory to another by following a certain path. In the beginning, the
user is always resident in the Root directory. While traveling from one directory to another
57
certain rules have to be followed. A user cannot go directly from ACCOUNT subdirectory
to EXPENSE sub-directory. To go from one sub-directory to another, you have to first go
to its parent directory or the Root directory. Thus, for going from ACCOUNT sub-directory
to EXPENSE sub-directory, you first have to go to Root directory. Similarly for going from
the file [Link] to [Link], you have gone to the EXPENSE sub-directory first.
Thus, in other words, while moving from one directory to another, you have to its parent
directory first. Now, in order to reach out to the file [Link] the following path has to
be followed:
C:\>Expense\[Link]
12345
Here,
1. Is the drive name where the file is resident in;
2. Is the path which DOS takes to reach for a file;
3. Is the directory under the Root;
4. Is the primary name of the file that is to be accessed;
5. Is the extension name of the same file.
The \ (backslash) has to be used for tracing out the path. First backslash takes you to the
Root directory. The subsequent backslashes separate the directories, sub-directories and the
filename that are given in the whole path. File Naming Conventions There are certain rules
that have to be followed while giving names to your files. A filename has two parts:
1. Primary Name
2. Extension (Secondary Name)
A dot (.) separates a primary name from an extension. Let see the two parts of the file
named [Link]. A primary name cannot have more than eight characters and
similarly an extension can contain only up to three characters. Filename having only the
primary name and no extension is absolutely valid because it is absolutely optional to give
an extension to a filename. An extension is generally given by language or software used
by the file. For example, if you entering BASIC and PASCAL programs, their filenames
would have extension BAS and PAS respectively. A filename can contain the following
characters:
It is a good practice to give meaningful names to your files. However, no two files can have
exactly the same name on disk. Thus, a name given to a file on a disk has to be unique. A
look at a few valid and invalid filenames:
58
The rules for naming a directory are the same as that of naming files.
Dos Commands:
DOS offers a variety of commands to perform various functions. With the help of DOS
commands, you can display the list of files and directories that are present on the disk,
create new files and directories; remove unwanted files and directories and much more.
DOS commands can be entered either in uppercase or lowercase letters. The format of a
DOS command is called syntax. All DOS commands begin with command name. When
DOS carries out the instructions given by you, is called the execution of DOS command.
All DOS commands can be classified into two categories: Internal Commands and External
Commands.
Internal Commands
The commands which are a part of the main files of DOS [Link] and two
hidden files) are known as Internal Commands. They are loaded in the RAM as soon as the
computer is switched on. The important internal commands are DIR, COPY, DEL, REN,
MD, CD, RD, TYPE, COPY CON, DATE, TIME, CLS, ECHO, PROMPT and PATH.
External Commands
External commands are those commands, which are stored disks as separate program files.
These files have the same primary name as the command name. The extension of these
files is either COM or EXE. So, at the time of execution of these commands, the
corresponding program file should be present in the DOS sub-directory of the hard disk and
DOS sub-directory should also be in the path search. The commonly used external
commands are- FORMAT, DISKCOPY, CHKDSK, XCOPY and LABEL.
Let us discuss some of the important DOS commands in detail.
• CD or CHDIR
59
CD windows - If present would take you into the Windows directory. Windows can be
substituted with any other name. Example Suppose you are under the EXPENSE sub-
directory and you want to access the files or directories in the ACCOUNT subdirectory.
This would involve the changing of directory from EXPENSE to ACCOUNT. This will
make the ACCOUNT directory active. The task of changing directories can be
accomplished with the help of CD command. Look at the following example:
C:\>CD ACCOUNT <Enter>
The above command will take you to the sub-directory ACCOUNT as shown by following
prompt:
C:\ACCOUNT>
The command for going to the root directory from prompt is:
C:\ACCOUNT\CASHSALE>CD\ <Enter>
But, the command for going to the parent or previous (whether it is root or subdirectory) is:
C:\ACCOUNT\CASHSALE>CD.. <Enter>
If you are in the sub-directory CASHSALE, the command will take you to ACCOUNT
sub-directory below:
C:\ACCOUNT>
Suppose you are under the EXPENSE sub-directory want to access the files or directories
in the ACCOUNT subdirectory. This would involve the changing of directory.
EXPENSE to ACCOUNT. This will make the directory active. The task of changing
directories accomplished with the help of CD command. Look following example:
C:\>CD ACCOUNT <Enter>
where CD stands for Change Directory
The above command will take you to the sub-directory ACCOUNT as shown by following
prompt:
C:\ACCOUNT>-
If you want to go to the sub-directory CASHSALE from the sub-directory EXPENSE,
issue the following command:
60
C:\ACCOUNT\CASHSALE>_
The command for going to the root directory from prompt is:
C:\ACCOUNT\CASHSALE>CD\ <Enter>
But, the command for going to the parent or previous
(whether it is root or subdirectory) is: C:\ACCOUN-RCASHSALE>CD.. <Enter>
If you are in the sub-directory CASHSALE, the command will take you to ACCOUNT
sub-directory below:
C:\ACCOUNT>-
The command for displaying the name of the currently directory is:
C:\>CD <Enter>
• DIR
Displays a list of files and subdirectories in a directory.
Syntax
DIR [drive:][path][filename] [/P] [/W] [/A[[:]attributes]] [/
O[[:]sort order]] [/S] [/B] [/L] [/V]
Example
dir = Lists all files and directories in the directory that you are currently in.
61
dir /s = Lists the files in the directory that you are in and all sub directories after that
directory, if you are at root “C:\>” and type this command this will list to you every file and
directory that is on the computer.
dir /p = If the directory has a lot of files and you cannot read all the files you can use this
command and it will display all files one page at a time.
dir /w = If you don’t need the info on the date / time and other information on the files you
can use this command to list just the files and directories going horizontal taking as little as
space needed.
dir /s /w /p = This would list all the files and directories in the current directory and the sub
directories after that in wide format one page at a time.
• COPY CON
This command is used to create a file.
Syntax
Copy con <filename>
Once you have entered the above command this will create the file by the name specified.
Once you have typed all the lines you wish to be in the file press and hold CTRL + Z. This
should enter ^Z, once on the screen press the enter and one file should be copied.
Example
C:\>copy con [Link]
• MD
This command is used t make a directory.
Syntax
MD <directoryname>
Example
C:\>md dir1
This will create a directory named dir1 under root.
• COPY
Copies one or more files to another location.
Syntax
COPY Source Destination
Example
copy *.* a: = This would copy all files in the directory currently in to the floppy disk in
drive a:
copy [Link] c:\dir1\[Link] = This would copy [Link] to a directory dir1 under root
with a different name [Link].
62
copy [Link]+[Link] = This command would copy the contents in [Link] and
combine it with the contents in
[Link]
• DEL
Deletes one or more files.
Syntax
DEL [drive:][path]filename
Examples
del [Link] = Deletes the [Link] in the directory that you currently are in, if the file
exists.
del c:\windows\[Link] = Delete the c:\windows\[Link] in the windows directory if it
exists.
del c:\windows\temp\*.* = (* is for wild character(s)) *.* indicates that you would like to
delete all files in the c:\windows\temp directory.
del c:\windows\temp\?[Link] = (? is a single wild character for one letter) This command
would delete any file ending with [Link] such as [Link] or [Link]
• EDIT
Edit allows a user to view, create and or modify their computer files. The disadvantage of
copy con is that you cannot modify a file. So we use edit.
Syntax
EDIT <filename>
Example
Using edit you can also create files, for example if you wanted to create a file called
[Link] you would type:
edit [Link] <press enter>
This would bring up a blank edit screen, as long as the file is saved upon exit this will
create the file [Link].
• MOVE
Allows you to move files or directories from one folder to another or from one drive to
another.
Syntax
MOVE source destination
Example
C:\>move [Link] c:\dir1\[Link]
This would move a file named [Link] to directory dir1 with the same name.
• REN OR RENAME
Used to rename files and directories from the original name to a new name.
Syntax
Ren oldfilename newfilename
Example
C:\>ren [Link] [Link]
This will change the name of [Link] to [Link].
63
• CLS
cls is a command that allows a user to clear the complete contents of the screen and leave
only a prompt.
Syntax
cls
• Format
Format is used to erase all of the information off of a computer diskette or fixed drive.
Syntax
Format <drive>
Example
C:\>Format a:
This will erase all the contents of the floppy disk inside floppy drive.
3.5.2 UNIX
UNIX was developed by some of the members of the Multics team at the bell labs starting
in the late 1960’s by many of the same people who help created the C programming
language. The UNIX today however is the not just the work of a couple of programmers.
Many other organizations, institutes and various other individuals contributed significant
additions to the system we now know to day.
UNIX is primarily a command line oriented operating system you can get additional
applications such as X-Window which allows you to have a graphic oriented operating
system similar to Windows 3.x / Windows 95 / Windows 98. However while this is
available UNIX is still primarily used from the command line. Because the UNIX
operating system is an open operating system you will discover that there are various
shells. A shell is a large add-on / modification of the UNIX operating system, to determine
the shell you can type echo $shell at the UNIX prompt. When typing this you will receive a
response such as / bin/csh which in this case indicates that the UNIX you are logged into is
a C shell. Another popular shell is the Borne shell which is / bin/ sh and Korn shell that the
UNIX you are logged into is a C shell. Another popular shell is the Borne shell which is /
bin/sh and Korn shell.
3.5.3 Linux
Linux is an open- source operating system enhanced and backed by thousands of
programmers worldwide. It is a multi tasking, multiprocessing operating system designed
originally for use on personal computers. The name “Linux” is derived from its inventor
Linus Torvalds. Torvalds was a student at the University of Helsinki, Finland in early
1990s when he wrote the first version of an UNIX- like kernel as a toy project. He later
posted the code on the Internet and asked programmers across the world to help him build
it into a working system. The result was Linux. Torvalds holds the copyright but permits
free distribution of source code. That is, he oversees development of kernel and owns its
trademark. When someone submits a change or a feature, Torvalds and his core team of
kernel developers review the merit of adding it to kernel source code.
64
3.5.4 Microsoft Windows
It is a series of software operating systems and graphical user interfaces produced by
Microsoft. It was developed by Microsoft to overcome the limitations of its own MS-DOS
operating system. Microsoft first introduced an operating environment named Windows in
November 1985 as an add-on to MS-DOS in response to the growing interest in graphical
user interfaces (GUIs). Microsoft Windows came to dominate the world's personal
computer market, overtaking Mac OS, which had been introduced previously. The most
recent client version of Windows is Windows Vista; the most recent server version is
Windows Server 2008. Vista's successor, Windows 7 (currently a release candidate), It is a
family of operating systems for personal computers. Windows dominates the personal
computer world, running, by some estimates, on 90% of all personal computers. The
remaining 10% are mostly Macintosh computers. Like the Macintosh operating
environment, Windows provides a graphical user interface (GUI), virtual memory
management, multitasking, and support for many peripheral devices. Main Features of
Microsoft Windows are as follows:
Its native interface is a GUI. Hence, for a new user it is easier to learn and use a computer
system.
A Microsoft window was designed to be not just an operating system but also a complete
operating environment. That is, all its programs conform to a standard way of working. For
example, a Microsoft Windows word processor works similarly the way a Microsoft
windows spreadsheet (or any other type of Windows program) works. This means that
experience gained by learning one Windows program is useful while using any other
Microsoft Windows program.
It is single- user, multitasking operating system. That is, a user may run more than one
program at a time. For example, while editing a file in foreground, a sorting job can be run
in background. Monitor’s screen can be portioned into multiple windows and progress of
different programs can be viewed on different windows.
65
Fig 3.11 Microsoft Windows
66
o Support for 15 network protocols
o Peer-to-peer and FTP server capabilities
o Client software for both telnet and FTP services
• Messaging Capabilities
o Windows Messaging Subsystem
o Microsoft Exchange and Microsoft Schedule+ included
o WINCHAT, NET MESSAGE, or Net DDET
• Remote Management
o Remote management utilities such as Event Viewer, Performance Monitor,
Service Controller, and Registry Editor
o Dial-out capability to remote servers
o Remote dial-in capability
• Remote Access Services (RAS)
o Internet access to Windows NT Server and DNS names for resource
connections
o Dial-out capability to remote servers, including Internet services
o Remote dial-in ability to any workstation
o Full network functionality over remote links using NetBEUI, IPX/SPX, and
TCP/IP protocols
o Dial-in capability to remote NetWare servers using RAS
o Multi-link capability for channel aggregation of multiple modem
connections
• Security
o Per-file and per-directory security with the NT file system (NTFS)
o Local desktop security; user ID and password required for access
o Account lockout capabilities to prevent unlimited login attempts
o Network security with single network login using challenge/response
protocol
• Application Support
o Native support for all applications based on Windows 95, Win32, 16-bit
Windows, 16-bit MS-DOS, 16-bit OS/2, and POSIX 1003.1
o Separate memory spaces for 16-bit applications (multiple virtual MS-DOS
machines)
o Preemptive multitasking for 16-bit and 32-bit applications
o 486 emulator allows 386-enhanced 16-bit applications to run on RISC
machines
o OLE support between all 16-bit and 32-bit Windows based applications
o Asynchronous I/O queue for improved responsiveness
o Structured exception handling for easy troubleshooting
• Graphics and Multimedia
o Significant performance gains for graphic intensive applications
o OpenGL APIs for high-performance three-dimensional color graphics
o 16-bit and 32-bit API support for the Video for Windows 1.1 feature set
• Utilities
o File compression with NTFS
o User Manager for configuration and security
67
o Disk Administrator for graphical disk configuration
o Diagnostics utility that details basic system information
o Performance Monitor for local and remote troubleshooting
o Tape backup
o Event Viewer and logging utility for local and remote troubleshooting
o Long filename support on FAT and NTFS
o Configuration details managed in registry database
• Hardware Support
o Multiple hardware configuration; you can specify a hardware profile at start
time, including services, devices, and video resolutions
o Intel, Alpha AXP, MIPS, and PowerPC platforms
o Symmetric multiprocessing (SMP) support
---------------------------------------------------------------------------------------------------------
3.6 REVIEW QUESTIONS
---------------------------------------------------------------------------------------------------------
1. Discuss about the role of System Software?
2. Comment on the role of Operating System as a System Software.
3. What components are involved in determining the performance of computer
system?
4. What factors affect the performance of computer system?
5. Explain the role of classifying criteria for the Operating Systems.
6. Explain the working of Single User Operating Systems.
7. Explain the working of Multi User Operating Systems.
8. Explain the Concept of Multi Tasking
9. List some of the Technical features of Microsoft Windows NT.
68