Home Page
Assignment Page


Each generation increases in reliability, speed, efficiency and ease of use and decreases in cost & size.

The first Generation (1945 - 1955)
- Very large computers made up of vacuum tubes and often programmed using wiring plugboards
- Programmed using machine language
- Mostly used for numerical calculations as working out mathematical tables
- No OS

The Second Generation (1955 - 1965)
- Mainframes made up of transistors
- Mainframes made up of transistors
- At first punch cards were used to provide input, then tapes were used (for batch processing)
- Used Assemblers and FORTRAN compilers for program writing
-Simple batch processing was used with input files, programs and output on tape
- Smaller computers (e.g. IBM 1401) was used to read programs and data on punch cards on to input tapes and for offline printing
- Used mainly for scientific and engineering applications
- FMS (Fortran Monitor System) and IBM IBSYS as OSs for handling jobs (e.g. to read a job and to run it)

The Third Generation (1965 - 1980)

-Mainframes based on small scale ICs were used.
- Capable of multiprogramming (running several jobs at the same time)
- Fixed disks were used and new jobs on cards to be executed could be read on to the disk while executing other jobs (spooling)
- Though the first models used multiprogrammed batch processing, to cater to increased response time, timesharing was introduced later (Time-sharing Systems)
- Complex OSs as OS/360 were used.
- Used for various applications including scientific and business applications
- Mini computers also appeared on the market which were used by small departments etc. and became the platform for UNIX.

The Fourth Generation (1980 . . . )
- Mainframes, Minicomputers, Workstations, Personal Computers (Desktop and portable) based on VLSI components
- Network operating systems that facilitate file sharing, remote logging etc. and Client Server computing.
- Distributed OSs that make use of multiple machines and processors to run applications.
- GUI based OS interfaces and applications.
- Virtual Machines and Network Computers (NCs)

Main Frame and Super Computers:
They consist of terminals. they have time sharing facilities. Super computer are high performance Computers.

Micro Computer:
They are called desktop computers. They are use for intensive calculations e.g. laptop computers, note book, hand-held computer, Palm top computer.

Dedicated or Special Purpose Computers:
They are called embedded (use for consumer good areas). They are used in industry for controlling robots. In these Computers, there are programs stored on a chip/micro chips, that can’t be changed. They are called firm base.

Computer Connections: (Network revolutions)
In the network configurations main frame computers are used, using time sharing facilities e.g. personal computes, using land or local area network.

Computers commonly used today

Micro Computers:
Used by one person at a time. They are also called work station. All high and desktop computer, are use for intensive computation. Other examples are laptop computers, note book, hand held (Palm top) computers. Examples of Palm top computers are personal digital assistance, personal communicator.

Dedicated or Special Purpose Computers:
These are called embeded computers e.g. they are used in enhanced consumers areas (super market) for calculating amount or for space inventory control. They are used in industry for controlling robots and computer numerical.

Controlling Manufacturing Machine:
In this, a program is stored on a micro chip which cannot be changed and it is called firm ware which mean a combination of hard ward and software. 


Emergence of Network:
In main frames, time sharing is done by connecting terminals to CPU of main frame that is called time sharing. Another example of network is local area network (LAN) in which PC’s are connected to each other. Many LAN are connected to each other it makes WAN (Wide area network).

Experimental networks for internet begins in late 60’s. Internet became east to use with the development of www (world wide web). Internet has graphical user interface (GUI). By means of internet, text information can be transformed into multi-media (sound, image, text).


Four basic functions of computers are:

1) Input
2) Output
3) Storage
4) Processing (perform arithmetic/logical operation on information)

A computer system is composed of devices which accomplish these above mention tasks. In the world of computers, information is digital. It means that information is made of discrete units (units that can be counted).

A bit is the smallest unit of inform. It can have two values on or off, one or zero, pulse or no pulse.

Binary means that ever number is represented by a unique strings of 0 and 1. Bits are processed as group. A byte is eight bit. ASCII code used eight bit codes to represent characters (256 unique patterns). Each ASCII character represent 1 bytes.

UNI code uses 2 bytes or 16 bits per character and can represent 65536 distinct codes. A group of byte can represent colours, sounds, value or an instruction in a program.


Clock Speed: Internal timing device which synchronize the computer operations is called clock speed. It is measured in mega hertz.

Registers: are memory locations built directly into CPU that are uses to hold data, that are being processed by instructions. Register is storage compartments inside CPU for temporary holding numbers that are being manipulated. It is measured in bits.

Data Bus size: is the path way connecting micro processor to memory.

RISC: (Reduced instruction set computing)
It is the name of a advance technology.

Ram is for volatile or primary memory. In this memory patterns of electric current flowing through microscopic circuits in Si chips. Every memory location has an address that holds one byte. Memory have input and output storing information in input and output areas of memory.

CPU is consists of single silicon chip. It is also called microprocessor. It is housed with other chips and electrical components on a circuit board, called the mother board. It consists of two unit, one is controlled unit and other is arithmetic logic unit.

Software is written to run on a particular processor. Every processor have a built in instruction set.

ROM (Read Only Memory):
It is microchip type of memory and not magnetic. Its mean that it is a circuitary memory. Whatever is stored in that you can’t change. It contains startup instructions and other critical information for computer system. It contain firmware programs called BIOS (Basic Input and output system). It contain startup instruction for computer.

Buses are the group of wires through which information travels between computer components. Buses consists of 8, 16, and 32 etc. group of wires. Wider buses travel information faster.

Ports are the sockets on outside of computer chase to connect devices. It may be part of Computer system or may be on a added circuit board.
There are three types of Computer Programs:
1) Application Programs e.g. MS Word
2) System Software e.g. operating System (DOS, Windows)
3) Compiler and other translator program e.g. Turbo C Compiler (transfer high level to low level language)

Giving Computer Instructions:
Computer is a machine in which what we input it give output. It needs an algorithm (algorithm is a set of step by step procedures for accomplishing a task).

Programming Languages:
In programming languages, machine language is consider a binary language. It consist of combinations of zeros and one. Binary language is very difficult to code.

Higher Level Programming Languages:
Examples are Basics, C, Cobol, Fortran, Pascal. They are special languages with there own rules. They need translators or compiler to convert to the machine language.


a) Word Processing & Desktop publishing (e.g. MS Word, Photo Shop, Corel Draw)
b) Spread Sheet (e.g. MS Excel)
c) Data bases for information storage & retrieved (e.g. MS access, Dbase, Foxpro.)
d) Telecommunication and networking software (e.g. LAN= Software + Circuit)
e) Computer graphic applications (e.g. Corel draw, photo shop)
f) Multimedia and hyper media

What is Software Package:
The software package is a disc containing software which is to be installed. It contain documentation, written manuals, on line documentation, other consideration are compatibility of hardware, compatibility of software and plateform. Plateform is hardware on which software runs or operating system on which software runs.

Characteristics of good software products: It built around visual mataphors of real world tools. It extends human capabilities in same way making them valuable as a tool.

Integrated applications: It means that it include several applications designed to work together (e.g. Microsoft office)

System Software: It means that hardware and software applications/connection

Basic Operating System Functions
The main purpose of an operating system is to make the computer easier to use. That is, the software provides an interface that is more user friendly than underlying hardware. As a part of this process, the operating system manages the resources of the computer in an attempt to meet overall system goals such as efficiency. The operating system usually hides such complexities from the user.

The operating system supports a user interface that governs the interactions with programmers, operators, etc. The user interface is what is usually described in response to the question, What kind of operating system is this?

The operating system also provides programs with a set of services that can aid in the performance of many common tasks. Such service routines can be thought of as providing a run-time environment for the programs being executed.

1) Types of Operating Systems
2) User Interface
3) Run-Time Environment

Types of Operating Systems
The most common ways of classifying operating systems are based on the kind of user interface provided.

One way of classifying operating systems is concerned with the number of users the system can support at one time.

A network of computers may be organized in a number of different ways.

Historically, operating systems have also been classified by the type of access provided to a user.

User Interface

The user interface provided by an operating system is designed to serve the needs of the various groups of people who must deal with the computer.

The user interface of an operating system does not usually present major technical problems. However, the design of this interface is extremely important because it is the part of the system that is experienced by most users.

An operating system must also contain service routines to support the user interface.

Run-Time Environment
The run-time environment contains a set of service routines that are available for use during program execution. It also provides facilities for managing the resources of the computing system, assigning these resources to user programs as needed.

The service routines can be thought of as defining an extended machine for use by programs during extended machine; they have no need to be concerned with the underlying real machine.

In a multiprogramming operating system, the run-time environment also contains routines that manages the resources of the computer, allocating them to user jobs as needed.

The run-time environment provides each user job with the illusion of having its own separate extended machine, even though the underlying real machine is being shared among several users. Multiprocessor and distributed operating system provide a similar service for their jobs.

On a typical machine, the generation of an interrupt also causes the CPU to switch from user mode to supervisor mode.

Restricting the use of such privileged instructions forces programs to make use of the services provided by the run-time environment. That is, user programs must deal with the extended machine interface, rather than utilizing the underlying hardware functions directly. This restriction also prevents user programs from interfering, either deliberately or accidentally, with the resource management functions of the operating systems. Privileged instructions and user/supervisor modes (or their equivalents) are a practical necessity for a system that supports more than one user at a time.

Various Parts of Operating System

An operating system for large scale contains many millions of lines of instructions written by programmers. To make operating systems easier to write, they are constructed as a series of modules, each module responsible for one function. Typical modules in a larger multi user OS could be:

1) Kernel (also know as the executive)
2) Process Manager
3) Scheduler
4) File Manager

1) Real Time Executive (kernel):
Some of the functions perform by it are
i) Switching b/w program
ii) Hardware device controls programming
iii) Memory Management
iv) Process Management
v) Scheduling
vi) Inter process communication
vii) Processing of exceptions and interrupts

2) Process Manager:
A process is the unit of work in a system. Such a system consists of a collection of processes, some of which are operating system processes and the rest of which are user processes. All these processes can potentially execute concurrent, by multiplexing the CPU among them.

The operating system is responsible for the following activities in connection with process management:

- The creation and deletion of both user and system processes
- The suspension and resumption of processes

3) Scheduler:
A process migrates between the various scheduling queues throughout its lifetime. The operating system must select, for scheduling purposes, processes from these queues in some fashion. The selection process is carried out by the appropriate scheduler.

4) File Manager:
A file is a collection of related information defined by its creator. Computers can store information on several different types of physical media. Magnetic tape, magnetic disk, and optical disk are the most common media.

The operating system implements the abstract concept of a file by managing mass storage media, such as tapes and disks, and the devices which control them. Also, files are normally organized into directories to ease their use. Finally, when multiple users have access to files, it may be desirable to control by whom and in what ways files may be accessed.

The operating system is responsible for the following activities in connection with file management.

- The creation and deletion of files
- The creation and deletion of directories
- The support of primitives for manipulating files and directories
- The backup of files on stable (nonvolatile) storage media.

A thread is a part of a process. A process can consists of several thread, each of which execute individually e.g. one thread could be fresh or handled screen refresh and drawning, another thread printing, another thread the mouse and keyboard. This gives good response time for complex programs. Window NT is an example of an OS which support multi-threading.

Multi-Process OS:
Some systems runs only a single process at a time, other system runs multiple process at once. Most computer system are single processor based, and a processor can only execute one instruction at a time. Processor of computer runs one process for short period of time, then is switch to rent process, as the processor execute millions of instructions per second, this give the appearance of many processes running at once.

In a computer system which support more than one process at once, some mechanism must by use to switch from one to another task. There are two main method use to perform this switching. One is co-operative switching and other is pre-emptive switching.

Context Switching:
Switching the CPU to another process requires saving the state of old process and loading the saved state for the new process. This task is known as a context switch. Its speed varies from machine to machine, depending on the memory speed, the number of registers which must be copied, and the existence of special instructions. Typically, the speed ranges from 1 to 1000 microseconds.

Context-switch times are highly dependent on hardware support. For instance, some processors provide the multiple sets of registers. The more complex the operating system, the more work must be done during a context switch. Time spent that a process runs for before being context switch is called a time slice.

Deciding which process should run next is called Scheduling, and can be done n a wide varieties of ways.

Co-operative Schedulers are very simple, as the processes are arranged in "round robin" queue. When running give up itself, it goes to end of the queue. Process at top of queue is then run, and all process in the queue move up one place.

Pre-emptive Scheduling a real time clock which generates interrupts at regular intervals e.g. every 1 hundred of a second. Each time an interrupt occurs, processors switch to another task. System employing this type of scheduling assigns priorities to each processes, so that some may be executed frequently than others.

Loaded Operating System:
O.S can be loaded in two ways into computer memory:

1) It is already present in ROM
2) It is loaded from disc when computer is turned on.

If O.S is already present in ROM, for system like industrial, controller, petrol pumps etc., it will gain control immediately the processor is powered on, for more complex system O.S is usually stored on secondary media such as disc, and loaded into RAM when computer is powered on. Advantages of this type of system is that changes to O.S are easier to make and implement.


O.S are divided into categories which defines their characteristics. Modern may use combination of those described below:

1) Batch O.S:
It is the Earliest type of O.S, allowed only one program to run at a time. Programs was entered entered into Computer then run till completed. Data used by program could not be modified while program was running. Any error in program/data means starting all over again.

2) Interactive O.S:
This allow modification and entry of data while program is running, Typical system are : Air line reservation.

3) Time Sharing/Multi User O.S:
Time sharing, or multi tasking is a logical extension of multiprogramming. Multiple jobs are executed by the CPU switching between them, but the switches occur so frequently that the users may interact with each program while it is running. A time shared operating system allows the many users to share the computer simultaneously. Since each action or command in time shared system tend to be short, only a little CPU time is need for each user. As the system switches rapidly from one user to the next, each user is given the impression that he has his own computer, whereas actually one computer is being shared among many users.

International standard organisation develops a model which promotes a network protocol Model proposed that all network protocols (algorithm) should consist of seven distinct layer.

1) Each layer should performed each define function of set of related tasks.
2) Each layer on one system communicates with the equivalent layer on other systems.
3) Each layer may have it own protocols, or may be a logical segmentation.
4) Layer boundaries should be chosen so that there is only small amount of information flow across the boundary.

Following the International Standard Organization, we refer to the layers with the following descriptions:

1. Physical Layer:
The Physical layer is responsible for handling both the mechanical and electrical details of the physical transmission of a bit stream. At the physical layer, the communicating systems must agree on the electrical representation of a binary 0 and 1, so that when data are sent as a stream of electrical signals, the receiver is able to interpret the data properly as binary data. This layer is implemented in the hardware of the networking device.

2. Data-link layer:
The data-link layer is responsible for handling the frames or fixed length parts of packets, including any error detection and recovery that occurred in the physical layer.

3. Network Layer:
The network layer is responsible for providing connections and for routing packets in the communication network, including handling the address of outgoing packets, decoding the address of incoming packets, and maintaining routing information for proper response to changing load levels. Routers works at this layer.

Connectionless mode (CL):
In CL mode, only a datagram service is provided, similar to the postal letter service. No one guarantees that data arrive in same order in which they have been sent, and every intermediate system is allowed to discard packet, if there are insufficient resources available to deal with e.g. buffer are full. In CL mode system. In CL mode system, high layers have to deal with resequencing. Re-transmission of lost packets e.g., where a reliable data stream is required.

4. Transport Layer:
The transport layer is responsible for low-level access to the network and for transfer of messages between the clients, including partitioning messages into packets, maintaining packet order, controlling flow, and generating physical addresses.

5. Session Layer:
The session layer is responsible for implementing sessions or process-to-process communications protocols. Typically, these protocols are the actual communications for remote logins, and for file and mail transfers.

6. Presentation Layer:
The presentation layer is responsible for resolving the difference in formats among the various sites in the network, including character conversions, and half duplex-full modes (character echoing).

7. Application Layer:
The application layer is responsible for interacting directly with the users. This layer deals with file transfer, remote-login protocols, and electronic mail, as well as with schemas for distributed databases.

Transmission media refers to medium which carries signal from sender to receiver. Copper based wire is the most common form of wire and is used for virtually all links except for long distance.

Media often introduces unwanted changes to the signals, which limit and frequency range of signals which can be transmitted.

Open wire seldom nowadays. It has been replaced by microwave system or newer technologies. Twisted pair wire are most common form of wires used today to connect telephone subscriber to exchanges (switching centers and wire buildings).

Two insulated wires are twisted around each other, and combine with other into a wire. Twisting wire is started to be a favourite choice for inter connecting computers on a local area network. In general each twisted pair supports a single voice channel. Twisted pairs are used in LAN as several ratings, categories 3 as a speed rating of 10M bits/sec that is speed of ether net where as category 5 as a speed rating of 100B bits/sec.Wires are provided with ground shield which help to reduce signal interference from external sources, this making signal travelling round the cable less inclined to alteration. Twisted is provided in two form

1) Shielded twisted pair
2) Unshielded twisted pair (UTP)

Unshielded twisted pair is a predominant wire used today. Two conductors are coated with a plastic sheet then twisted around each other to make multi pair wire. Twisting of wires around each other helps to reduce unwanted signals being induced in the wires.

It is use for telephone wiring inside the buildings, as telephone wires which links customer houses and building to telephone exchanges, and for implementing LAN.

UTP has advantages of

- Cheap to install
- easy to terminate

- limited in distance
- very noisy disadvantages

- Suffers from interference

Co-axial wire:
Until recently co-axial wire extensively used to support long distance link. Today it is being replaced by microwave, satellite or fiber optic links. Co-axial wire is a two wire conductor with the larger band width than twisted pair wire. It is used in television, radios and ethernet based LAN. Each co-axial wire support about 60 channels. Its most popular form RG-58AU wire commonly called thin ethernet. Thin ethernet is cheap to install and it has a speed of 10 billion bits per second. Each end of wire is terminated using a 50 ohm terminator.

Co-axial wire is used extensively in data communication and networking. A centre conductor is separated from an outer conductor by an insulating media. Wire cannot be crushed or bent sharply, as it damages the insulation between conductor and thus alter electrical characteristics of wire. It is used for LAN, linking computer together. Networking protocol commonly used with co-axial wire is ethernet, which describes how data is formated and transmitted along a shared system. Co-axial wire has the advantages of cost less to install, confirms to standard, widely used.

It’s disadvantages are

1) limited in distance
2) limited in number of connections
3) terminations and connections must be done properly.

Micro Wave:
Micro wave is a radio system uses very high frequencies to send and receive data. Because of the high frequencies involve stations are located about 31 km and in line of sight (visible to each other). They have sufficient band width capacity to support a large number of voice channels and 2 or more TV channel.

Micro wave has advantages of medium capacity, medium cost, can go long distance. It’s disadvantages are noise interference, geographical difficulties due to line of sight requirements.

Fiber Optic Wire:
This is made from strands of silicon (glass), coated with a plastic sheet. This signals are converted to light pulses before being sent. Each fiber optic strand can support thousands of speech channel, and multiple TV channel simultaneously. It is used mainly for long haul links and inter continental links.

A strand of Si glass fiber (thinner than a human hair) is coated with a refractive surface. When light provided by laser is shown into the strand, it travels along fiber strand, the refractive layer prevents it from skipping. It is used for long haul transmission links, high speed data links from computers and information service to home.

Fiber wire have advantages of higher capacity, resistance to interference, can go long distances. It’s disadvantages are : costly and difficult to join.

Ground stations with large dishes communicate with a communication satellite in Geo-stationary orbit around the earth. Each channel is managed by a trasnponder which can receive thousands of speech channels and about 4 TV channel simultaneously. Cost of satellite links is still very expensive about 4b$ per transponder. Satellite systems are comprises of ground based transmitter and receiver dishes with an orbital satellite circuit called transponder. Signals are transmitted to satellite which relays it back to ground station.

The foot print coverage of a satellite is very large, covering thousands of sq.km. Satellite system have the advantages of low cost per user, high capacity, very large coverage. It’s disadvantages are high installed cost in launching a satellite, receivers and decoders required.

Channel Organization

Data may be send between 2 points in 2 ways. Lets consider sending 8 bit of digital data. These bits can be send al one parallel or one after the other serial.

Parallel Transmission:
Each bit uses a separate wire to transfer data on a parallel links, a separate line is use as a clock signal. This serves to inform the receiver when data is available. In addition another line may be used by the receiver to inform the sender that data has been used and is ready for next data. Parallel transmission is quicker than serial one, because more than one bit is send at a time. parallel transmission is good for short links, an examples are found in all computers. The address, data and control buses, which interface the processor to other peripheral inside the computer are all parallel buses. In addition most printer on computers (LPT1/LPT2) (are line printers) use parallel interface commonly called centronic interface. In serial transmission each bit is send over a signal wire on after the other. No signal lines are use to convey clock timing information. There are two ways in which timing information is in coded with the signal so that sender and receiver are synchronised, working on save data at same time. If no clock information is send, receiver can mis-interpretate ariving data due to bits being lost going too slow. Common standard for serial communication is RS232.


Editor are use to create text document. They provide facilities for load, editing, saving of source document, second change and replace text string character or words and third find, search for text string, character of words. Move, copy, delete block of text.

Editor consists of two basic types

1) line based 2) Screen based

Line Based Editor:
It presents a single line for editing. All source program lines are referenced by line number, generated by the editor. Editing is perform on single line. Left & right cursor key may be used to get the line of text. e.g. DOS

Screen Based Editor:
These provide many features, editing is perform using complete screen for example more than one line. Cursor may be moved in any of 4 directions, provision is made for scrolling the text when cursor exceeds the boundary of the displayed window.

By displaying more than one line at a time, screen editor facilitate the speedy modifications requires for source document e.g. Note Pad

Program Translation Sequence:
In developing a software program to accomplish a particular task, program developer chooses an appropriate language, develops an algorithm which is a sequence of steps which when carried out in a order prescribed, achieve the desired result. Implement this algorithm in selective language (coding), then test and debug final result. This is a maintenance phase.

The selected language is undoubtly need to be converted into binary bit pattern which make sense to the target processor (CPU, the processor on which the software will be run). This process of conversion is called Translation.

Assembler are programs which generate Machine codes instructions from a source code program written in assembly language. The features provided by an assembler are:

1) Allow programmer to use mnemonics (memory techniques to remember difficult name) when writing source code programs.
2) Variables are represented by symbolic names, not as memory locations.
3) Symbolic code is easier to read and follow.
4) Error checking is provided.
5) Changes can be quickly and easily been incorporated with reassembly.
6) Programming techniques are included for expression evaluation.

High Level Languages:
In high level languages, one english type statement represents sequence of Machine code statements. High level languages are useful in developing complex softwares as they support complex data structure and increase programmers productivity. It also means that programmer does not need to learnt instruction sets of each computer being work with.

All HLL statements must be converted to Machine code in order for a processor to run them. There are two ways in which HLL can be converted to Machine codes. Either at run time (interpreted) or before run time (compile).

A program that executesinstructions written in a high-level language. There are two ways to run programs written in a high-level language. The most common is to compile the program; the other method is to pass the program through an interpreter.

An interpreter translates high-level instructions into an intermediate form, which it then executes. In contrast, a compiler translates high-level instructions directly into machine language. Compiled programs generally run faster than interpreted programs. The advantage of an interpreter, however, is that it does not need to go through the compilation stage during which machine instructions are generated. This process can be time-consuming if the program is long. The interpreter, on the other hand, can immediately execute high-level programs. For this reason, interpreters are sometimes used during the development of a program, when a programmer wants to add small sections at a time and test them quickly. In addition, interpreters are often used in education because they allow students to program interactively.

Both interpreters and compilers are available for most high-level languages. However, BASIC and LISP are especially designed to be executed by an interpreter. In addition, page description languages, such as PostScript, use an interpreter. Every PostScript printer, for example, has a built-in interpreter that executes PostScript instructions.

A program that translates source code into object code. The compiler derives its name from the way it works, looking at the entire piece of source code and collecting and reorganizing the instructions. Thus, a compiler differs from an interpreter, which analyzes and executes each line of source code in succession, without looking at the entire program. The advantage of interpreters is that they can execute a program immediately. Compilers require some time before an executable program emerges. However, programs produced by compilers run much faster than the same programs executed by an interpreter.

Every high-level programming language (except strictly interpretive languages) comes with a compiler. In effect, the compiler is the language, because it defines which instructions are acceptable.

Because compilers translate source code into object code, which is unique for each type of computer, many compilers are available for the same language. For example, there is a FORTRAN compiler for PCs and another for Apple Macintosh computers. In addition, the compiler industry is quite competitive, so there are actually many compilers for each language on each type of computer. More than a dozen companies develop and sell C compilers for the PC.

The Linker is an application that you use to link or join together object modules that were created using An assembler or compiler that creates Intel OMF-51 object modules. Object modules that are created by these applications are relocatable and cannot be executed by themselves. They must be converted into absolute object modules.

Programs you create using the Assembler and the C Compiler from Franklin Software, Inc., must be linked using Linker. You cannot execute or simulate programs that are not linked. Even if they consist of only one source module.

The Linker will link one or more object modules together and will resolve references from one to the other. This allows you to create a large program that is spread over a number of source and object modules.

In brief, The Linker performs the following operations:
Combines several program modules into one module automatically incorporating modules from the library files
Combines relocatable partial segments of the same segment name into a single segment
Allocates and manipulates the necessary memory for the segments with which all relocatable and absolute segments are processed
Generates code that interfaces with the RTX51 Real-Time Multitasking Operating Systems
Analyzes the program structure and manipulates the data memory using overlay techniques
Resolves external and public symbols
Generates the code necessary to switch code banks when bank switched functions are invoked.
Defines absolute addresses and computes the addresses of relocatable segments
Produce an absolute object file that contains the entire program
Produce a listing file that contains information about the Link/Locate procedure, program symbols, and cross reference of public and external symbol names
Detects errors found in the invocation line or during the Link/Locate run