Download as pdf or txt
Download as pdf or txt
You are on page 1of 43

What is an Operating System?

The task of defining an operating system is not


an easy one. This is because the meanings
ascribed to it are varied depending on the
context from which definition is offered.
However, an operating system (OS) is mostly
held as a collection of software that manages
computer hardware resources and provides
common services for computer programs. The
operating system is a vital component of the
system software in a computer. Operating
system is a program that acts as an
intermediary between a user of a computer and
the computer hardware. It controls and
coordinates the use of the hardware among the
various application programs for the various
users.

The operating system consists of the kernel.


The kernel is the central module of an
operating system (OS). It is the part of the
operating system that loads first, and it remains
in main memory. Because it stays in memory, it
is important for the kernel to be as small as
possible while still providing all the essential
services required by other parts of the
operating system and applications. The kernel
code is usually loaded into a protected area of
memory to prevent it from being overwritten
by programs or other parts of the operating
system.

Typically, the kernel is responsible for memory


management, process and task management,
and disk management. The kernel connects the
system hardware to the application software.
Every operating system has a kernel. For
example the Linux kernel uses numerous
operating systems including Linux, Android
and others.1

There are three types of kernels:

• A monolithic kernel
• A microkernel.
• Hybrid Kernel

A monolithic kernel is a system program that


contains all the code required to perform every
kernel related task. It contains all the core
operating system functions and device drivers.
Since all the various functions live in the same
memory area, it is possible for one function to
modify the behavior of another function.
Worse yet, data corruption resulting from the
operation of one function can cause the whole
system to crash. However, with these negative
side effects come some great gains: the
dynamic module loading ability of some
monolithic kernels minimizes the operating
system's memory footprint while running faster
than microkernels in most practical cases.
Examples of monolithic operating systems are
DOS, BSD, Linux, and OpenVMS. 2

In a microkernel operating system design, the


kernel itself does not contain any functions —
all tasks are delegated to separate programs
called servers. These servers provide services
for the operating system, leaving the kernel to
contain only what it needs to operate: a
mechanism of mapping requests to servers and
executing them. This greatly reduces the size of
the kernel, and also increases its stability since
any fault in any of the servers does not really
affect the kernel itself. Nevertheless, the critical
overall performance of microkernel is lower
than that of their monolithic counterparts
because of their (mostly) large number of
request-to-server mappings. Popular examples
of microkernel operating systems are GNU
Hurd, MINIX, and QNX.
The architecture of hybrid kernels is similar to
that of microkernel, except not every request is
delegated to a server, but some codes are
loaded into kernel space as in monolithic
kernels. The performance overhead incurred by
microkernel when running some services (such
as the file system) in user space is eliminated
by moving the code for such services into
kernel space. This technique allows the kernel
to enjoy the best of both worlds: modularity
and performance. However, there is a
compromise: unlike monolithic kernels, hybrid
kernels cannot dynamically load additional
modules to extend the capabilities of the kernel.
Examples of hybrid kernel operating systems
are Microsoft Windows, Mac OS X, and the
discontinued BeOS. 3

Features of Operating Systems


When talking about features of an operating
system, often they get mixed up with its
functions.

It is better to see an operating system's feature


as a prominent attribute of the operating system;
in other words, its major components. In fact,
features that operating systems offer vary
greatly from each other that it is difficult to tell
which ones qualify to be listed and which ones
don't. In this section, we will discuss only
those that are widely known and accepted.

System calls
On modern microprocessors, there are at least
two modes of operation: kernel mode and user
mode. If an application running in user mode
tries to perform a privileged operation (such as
directly accessing the hardware), the CPU will
most likely throw an exception. So, then, how
does an application read input from the
keyboard or write to the screen? It does so by
sending a request to the kernel. Of course, this
slows down the operation, but ensures that
application programs do not execute code that
could damage or compromise the system.
These requests that application programs send
to the kernel are called system calls. A system
call can thus be simply defined as a request by
a computer program to the operating system's
kernel.4
When a system call is invoked, control is
transferred to the kernel which, in turn,
determines whether the calling application
should be granted the requested service. If
granted, the kernel executes the necessary
instructions, causes a switch into user mode,
and returns control back to the calling program.
Most operating systems however provide an
intermediary interface that sits between
applications and the system calls layer, in a
form of a library or an Application
Programming Interface (API). Such an
intermediary interface makes it possible for
programs written in high level languages to
invoke system calls. Moreover, it is easier and
more portable to use a library or an API than to
code the system call in assembly language
instructions.

Device drivers
A computer system is usually made up of
several devices such as disk drives, keyboards,
mice, video adapters, sound cards, etc. When a
user attaches such devices to their computer,
they expect the operating system to identify the
device and make use of it. Indeed, the
operating system may know what the device is
but not how to communicate with it. The latter
problem is solved by means of a driver. A
device driver is a computer program that
controls a particular device attached to a
computer. It provides an interface through
which the operating system can transparently
make calls to the device. In fact, device drivers
have built-in functions that are meant to be
called by the operating system or other
privileged programs.

Devices are generally slower compared with


the CPU. This means that whereas the CPU
could be doing other stuff, it many times waits
for a busy but slow device to finish whatever
job it is doing. This bad behavior, however, is
mitigated by the use of hardware interrupts.
Interrupts cause control to be transferred to a
routine designed to process the interrupt. For
example, when a key is pressed on a computer
keyboard, a hardware interrupt is generated,
which invokes the keyboard device driver.
After the driver has finished processing the
event, control is returned back to the
interrupted program. However, only a few
peripherals support interrupts which means that
drivers have to poll the hardware, i.e. ask
whether there is an event to process.5

File system
Every computer file is stored in a linear space
on a storage device of finite capacity. Each file
has its address on storage, which is determined
by the number of byte offsets from the
beginning of the storage medium. But then,
there is the need for a structure that tells where
one piece of data begins and a where it ends—a
file system. File systems keep track of unused
space on the disk as well as additional
information about each file such as the name,
size, owner, creation date, access control,
encryption, etc. What is more, file systems
manage the directory structure and the
mapping of file names to file control blocks.

A file system can thus be defined as a


structured data representation and a set of
metadata that describe stored data.
A storage medium is made up of several cells
which are 1 byte in size. These cells are
grouped together into sectors of fixed length
(e.g. 1024 bytes) which is the minimum
addressable unit of the physical storage. A
group of sectors make a block, which, in turn,
when grouped make up a partition. Each byte is
addressed by using a pair of sector and
in-sector offset. For example, byte 3000 on a
file system of sectors of size 1024 bytes will be
referenced at sector 3 offset 952, i.e.
[sector]+[sector]+[952 bytes], noting that each
sector is of size 1024 bytes. Despite this
scheme, on many file systems, the in-sector
offset is ignored, causing files to occupy whole
sectors. So a file of size of say, 1 byte, will
occupy 1024 bytes of storage, for example.

User Interface
Here is another feature of an operating system:
its user interface. An operating system's user
interface determines how the user interacts
with the computer. The two most common
forms of a user interface are the Command
Line Interface (CLI) and the Graphical User
Interface (GUI). A CLI provide a prompt at
which commands can be given line-by-line.
This kind of interface is usually implemented
with a program called a command line shell,
which accepts commands as text input and
converts them to the appropriate operating
system functions. CLIs can be quite powerful
for experienced users, but if one does not know
the system well enough, they can become quite
lost. Examples of CLIs are the UNIX shells
and the Windows Command Prompt.
In contrast, a GUI provides a visual
environment where a device (such as a mouse)
is used to navigate the system and perform
tasks. Unlike CLIs where performing a task can
become slow and error-prone (such as when
very long commands are to be entered), GUIs
present the user with widgets that trigger some
of the operating system's commands, reducing
complexity and the need to memorize
command names and their parameters. For
many users, a GUI presents a more accessible
user interface; however, the choice of a user
interface is simply a matter of personal
preference. Examples of GUIs are those
implemented in Microsoft Windows, Apple's
Mac OS X, and GNOME/KDE for the X
Windows system on Unix-like operating
systems.6

Revision questions;
Likely exam questions, more Updates on CFA
at midnight, stay tuned

_ could be simply defined as a request by a


computer program to the operating system.
A. System request
B. Operation request
C. System call
D. Operation call
E. All of the above

A device driver is a computer program that


controls a particular device attached to a
computer
A. True
B. False
C. Not sure
D. Not in the textbook
E. Options C and D
A Laptop computer is a good example of_____
A. Supercomputers
B. Mainframe computers
C. Microcomputers
D. Minicomputers
E. Monolithic computers

The two most common forms of a user


interface are_____ and _
A. OS and CPU
B. GUI and CLI
C. GUI and OS
D. CLI and OS
E. GUI and CPU

Which of the following is not a function of


Operating System (OS)
A. Memory management
B. Processor management
C. Device management
D. File management
E. None of the above

By means of_____ and other similar


techniques, the OS can prevent unauthorized
access to programs and data
A. Sharp code
B. Pass code
C. Password
D. Options A and C
E. Options B and C

One of the features of OS that enable it


structure describes and store data is_____
A. System call
B. Device system
C. File system
D. User Interface
E. Device mapping

As the memory manager, the OS performs all


but one of these functions
A. Keep track of primary memory
B. Delete harmful files without prompt
C. Decides which process will get memory
when and how much
D. Allocates memory for necessary operation
E. De-allocate memory when the process no
longer needs it

Operating System’s ability to keep track of all


devices is synonymous to _
A. Memory management
B. Device management
C. File management
D. Task management
E. System control

Answers;
1C
2A
3C
4B
5E
6E
7C
8B
9B

HISTORY OF COMPUTER
The History of computer can therefore be
divided into the “Mechanical and Six
generations”., each of which was marked by
critical conceptual advances.

The Mechanical Era (1623–1945)


This era was dominated by the idea of using
machines to solve mathematical problems.
Mathematicians in this era, designed and
implemented calculators that were capable of
addition, subtraction, multiplication, and
division. Among the earliest of these as we
stated above was Gottfried Wilhelm Leibniz
(1646-1716), Charles Babbage (1791-1871),
George Boole (1815-1864), etc.
First Generation Electronic Computers
(1937--1953)
Three machines have been promoted at various
times as the first electronic computers. These
machines used electronic switches, in the form
of vacuum tubes, instead of electromechanical
relays. Electronic components had one major
benefit, however: they could "open" and
"close" about 1,000 times faster than
mechanical switches. A second early electronic
machine was Colossus, designed by Alan
Turing for the British military in 1943. This
machine played an important role in breaking
codes used by the German army in World War
II. 16 The Turing machine held the far-reaching
promise that any problem that could be
calculated could be calculated with such an
"automaton"
The first general purpose programmable
electronic computer was the Electronic
Numerical Integrator and Computer (ENIAC),
built by J. Presper Eckert and John V.
Mauchly at the University of Pennsylvania.
The successor of the ENIAC, in the first
generation, was the EDVAC (Electronic
Discrete Variable Automatic Computer). By
recognizing that functions in the form of a
sequence of instructions for a computer can be
encoded as numbers, the EDVAC group knew
the instructions could be stored in the
computer's memory along with numerical data.
Eckert and Mauchly later designed what was
arguably the first commercially successful
computer, the UNIVAC; in 1952.
Software technology during this period was
very primitive. 17

Summery
• The first computer systems:
• Used vacuum tubes for circuitry
and magnetic drums for memory;
• Were often enormous, taking up entire
rooms;
• Were very expensive to operate;
• Used a great deal of electricity;
• Generated a lot of heat, which was often the
cause of malfunctions;
• Relied on machine language, the
lowest-level programming language
understood by computers, to perform
operations, and they could only solve one
problem at a time;
• Input was based on punched cards and paper
tape, and output was displayed on printouts.

The UNIVAC and ENIAC computers are


examples of first-generation computing devices.
The UNIVAC was the first commercial
computer delivered to a business client, the U.S.
Census Bureau in 1951.

Second Generation Computers (1954--1962)


The second generation saw several important
developments at all levels of computer system
design, from the technology used to build the
basic circuits to the programming languages
used to write scientific applications. Memory
technology was based on magnetic cores which
could be accessed in random order, as opposed
to mercury delay lines, in which data was
stored as an acoustic wave that passed
sequentially through the medium and could be
accessed only when the data moved by the
interface. During this second generation many
high level programming languages were
introduced, including FORTRAN (Formula
Translation 1956), ALGOL (Algorithm
Language 1958), and COBOL (Common
Business Oriented Language 1959). Important
commercial machines of this era include the
IBM 704 and its successors, the 709 and 7094.
The latter introduced I/O (input/output)
processors for better throughput between I/O
devices and main memory. 18
Summery
• The world saw transistors replaced vacuum
tubes in the second generation of computers
(The transistor was invented at Bell Labs in
1947 but did not see widespread use in
computers until the late 1950s.);
• The transistor was far superior to the vacuum
tube, allowing computers to become: smaller,
faster, cheaper, more energy-efficient and more
reliable than their first-generation
predecessors;
• Though the transistor still generated a great
deal of heat that subjected the computer to
damage, it was a vast improvement over the
vacuum tube.
• Second-generation computers still relied on
punched cards for input and printouts for
output.
• Second-generation computers moved from
cryptic binary machine language to symbolic,
or assembly languages, which allowed
programmers to specify instructions in words.

• These were also the first computers that


stored their instructions in their memory, which
moved from a magnetic drum to magnetic core
technology.

The first computers of this generation were


developed for the atomic energy industry.

Third Generation Computers (1963--1972)


The third generation brought huge gains in
computational power. Innovations in this era
include the use of integrated circuits, or ICs
(An integrated circuit (IC) is a small electronic
device made out of a semiconductor material.
They were semiconductor devices with several
transistors built into one physical component
The first integrated circuit was developed in the
1950s by Jack Kilby of Texas Instruments and
Robert Noyce of Fairchild Semiconductor.),
semiconductor memories starting to be used
instead of magnetic cores, microprogramming
as a technique for efficiently designing
complex processors, the coming of age of
pipelining and other forms of parallel
processing, and the introduction of operating
systems and time-sharing.

Summery
• The development of the integrated
circuit was the hallmark of the third generation
of computers.
• Transistors were miniaturized and placed
on silicon chips, called semiconductors, which
drastically increased the speed and efficiency
of computers.
• Instead of punched cards and printouts, users
interacted with third generation computers
through keyboards and monitors
• Interfaced with an operating system, which
allowed the device to run many
different applications at one time with a central
program that monitored the memory.
• Computers for the first time became
accessible to a mass audience because they
were smaller and cheaper than their
predecessors.

Fourth Generation Computers (1972--1984)


The next generation of computer systems saw
the use of large scale integration (LSI --1000
devices per chip) and very large scale
integration (VLSI -- 100,000 devices per chip)
in the construction of computing elements. At
this scale entire processors will fit onto a single
chip, and for simple systems the entire
computer (processor, main memory, and I/O
controllers) can fit on one chip. Two
important events marked the early part of the
fourth generation: the development of the C
programming language and the UNIX
operating system, both at Bell Labs. In 1972,
Dennis Ritchie, seeking to meet the design
goals of CPL and generalize Thompson's B,
developed the C language. 19
Fifth Generation Computers (1984--1990)
The development of the next generation of
computer systems is characterized mainly by
the acceptance of parallel processing. The fifth
generation saw the introduction of machines
with hundreds of processors that could all be
working on different parts of a single program.
The scale of integration in semiconductors
continued at an incredible pace --- by 1990 it
was possible to build chips with a million
components --- and semiconductor memories
became standard on all computers.

Summery of the Fourth and Fifth Generations


• The microprocessor brought the fourth and
fifth generations of computers, as thousands of
integrated circuits were built onto a single
silicon chip;
• Computers became small in sizes. What in
the first generation filled an entire room could
now fit in the palm of the hand.
• As these small computers became more
powerful, they could be linked together to form
networks, which eventually led to the
development of the Internet. Fourth generation
computers also saw the development
of Graphical User Interfaces GUIs,
the mouse and handheld devices.

The Intel 4004 chip, developed in 1971, located


all the components of the computer — from
the central processing unit and memory to
input/output controls—on a single chip.
In 1981 IBM introduced its first computer for
the home user, and in 1984 Apple introduced
the Macintosh. Microprocessors also moved
out of the realm of desktop computers and into
many areas of life as more and more everyday
products began to use microprocessors.

Sixth Generation Computers (1990--)


Many of the developments in computer
systems since 1990 reflect gradual
improvements over established systems, and
thus it is hard to claim they represent a
transition to a new "generation", but other
developments will prove to be significant
changes. One of the most dramatic changes in
the sixth generation will be the explosive
growth of wide area networking. Network
bandwidth has expanded tremendously in the
last few years and will continue to improve for
the next several years.
Sixth generation computing devices, which are
also based on artificial intelligence, are still in
development, though there are some
applications, such as voice recognition, that are
being used today. The use of parallel
processing and superconductors is helping to
make artificial intelligence a reality.
Quantum computation and molecular
and nanotechnology will radically change the
face of computers in years to come. The goal of
fifth-generation computing is to develop
devices that respond to natural language input
and are capable of learning and
self-organization.

Revision questions

1) The earliest mechanical counting device is


known as.....
2) What's the meaning of ENIAC?
3) What's the meaning of UNIVAC
4) What's the meaning of RAM and ROM
5) What's the meaning of CPU and IPO
6) What’s the full meaning of FORTRAN
7) What’s the full meaning of COBOL
8) What’s the full meaning of ALGOL
9) Name three popular programming languages
today

Answers
1. Abacus
2.ENIAC (ELECTRONIC NUMERICAL
INTEGRATOR AND COMPUTER)
3.UNIVAC (UNIVERSAL AUTOMATIC
COMPUTER)
4.RAM (RANDOM ACCESS MEMORY),
ROM(READ ONLY MEMORY
5. CPU (CENTRAL PROCESSING UNIT)
IPO(INITIAL PUBLIC OFFERING)
6) FORTRAN (formula translation)
7) COBOL (common business oriented
language)
8) ALGOL (Algorithm language)
9) Phython, Java and C++

one of the following is not part of the


Mechanical era of computer development
A. Blaise Pascal
B. Bill Gate
C. Gottfried Wilhelm Leibniz
D. Charles Babbage
E. George Boole
Answer: B

Intel released the first microprocessor in the


year_____
A. 1965
B. 1993
C. 1983
D. 1971
E. 1957
Answer: D

The first general purpose programmable


electronic computer was_____
A. UNIVAC
B. EDVAC
C. ABC
D. ENIAC
E. IBM
Answer: D

The Mechanical Era of computer development


is best put between_____
A. 1714 – 1914
B. 1933 – 2000
C. 1563 – 1645
D. 1233 – 1999
E. 1623 – 1945
Answer: E

The mechanical era of computer was


dominated by the idea of using machines to
solve mathematical problems such as addition,
subtraction, multiplication, and division
A. True
B. False
C. Not very sure
D. The era included colour printing
E. Options A and D
Answer: A

1. _ is popularly recognized in Germany as the


father of the computer
A. DEHOMAG D11
B. Hedrick Zackins
C. Heinz Billings
D. Korad Zuse
E. None of the above
2. The Colossus was constructed by _
A. Africans
B. The Americans
C. The British
D. The Japanese
E. Indians

3. The basic components of a computer are the


_ and _
A. The hardware, the software
B. The Program, the data
C. The Keyboard, the monitor
D. The processor, the ALU
E. All of the above
Answer: A

4. Pick out the odd option in terms of hardware


A. System unit
B. mouse
C. keyboard
D. Monitor
E. None is odd

5. _ refers to the electromechanical parts and


devices that make up a compute
A. Software
B. Manware
C. Hardware and software
D. Hardware
E. All of the above except option B
Answer: D

6. floppy disk is example of_____


A. Software
B. Hard disk support device
C. Soft copy of hard disk
D. A programming language
E. Storage device
Answer: A
7. By the year 1890, the range of improvements
in computer development included
A. Accumulation of partial results
B. Storage and automatic reentry of past results
C. Printing of the results
D. All of the above
E. None of the above

8. CorelDraw is an example of_____


A. An application software
B. A driver software
C. A hacking software
D. Installation software
E. Program hardware

9. _is renowned for his work on a smaller


version of the difference engine
A. Charles Power
B. Charles Babbage
C. George Scheutz
D. Barnes Lee
E. Hendricks Finer

10. ROM means_____


A. Random organised memory
B. Roaming only memory
C. Read only memory
D. Random only memory
E. Random option memory
Answer: C

11. ROM _
A. Is mostly volatile
B. Requires a steady flow of electricity to
maintain its contents
C. Takes time to boot-up
D. it stores information with the help of a UPS
E. none of the above
12. A computer virus is a _
A. Harmful device programming
B. Harmful hardware file
C. Harmful system spam
D. Harmful software program
E. Harmful hardware component

13. The World Wide Web was invented


by_____
A. Thomson Calvin
B. Bernard Redmond
C. Blaise Pascal
D. Tomlinson Williams
E. Tim Berners-Lee

14. One of these is not a storage device


A. Flash drive
B. Memory stick
C. Zip disk
D. Smart cards
E. Zip racer
Answer: E

15. One of these is not a category of hardware


devices according to the basic computer
operations they perform
A. Output hardware
B. Input hardware
C. Storage hardware
D. Anti virus hardware
E. Network hardware

16. The process of input, output, processing


and storage is performed under the supervision
of a unit called_____
A. Internal Unit
B. Control unit
C. Arithmetic and logic unit
D. Memory unit
E. Output unit

17. The first e-mail was sent by_____


A. Tomie Gray in 1990
B. Ray Tomlinson in 1971
C. Will Smith in 1986
D. Bill Gate in 1990
E. Fred Colmar in 1990

18. The major operations performed by the


ALU are_____
A. Addition and subtraction
B. Multiplication and division
C. Logic and comparison
D. All of the above
E. None of the above

19. Pick out the odd option in the following


output devices
A. Printer
B. Monitor
C. Speaker
D. Keyboard
E. Plotter
Answer: E

20. One of these is not a basic characteristic of


a computer
A. Speed
B. Values addition
C. Memory
D. Versatility
E. Accuracy
Answer: B

21. What is the full meaning of HTML


A. Hypertext Makeup Language
B. Hypertext Transfer Modular Language
C. High Transmission Master Liner
D. High Text Marking language
E. Options C and D
Answer: A

22. the Central Module of the Operating


System is _
A. Channel
B. System call
C. Main memory
D. Kernet
E. Kernel

23. Which of these options is best suited for


nuclear testing
A. Supercomputers
B. Mainframe computers
C. Microcomputers
D. Minicomputers
E. All of the above

24. Today, all the following are descriptions of


a computer except_____
A. A programmable electronic device that can
store, retrieve, and process data
B. Computing devices, whether or not they are
electronic, programmable, or capable of
‘storing and retrieving’ data
C. A general purpose machine that processes
data according to a set of instructions that are
stored internally either temporarily or
permanently
D. Someone who computes or engages in
calculations, especially mathematical
operations
E. A device that can transforms data into
meaningful information
Answer: D

25. One of these is not among the defining


features of the computer
A. Accept data
B. process data as desired
C. Assimilate data
D. Store data
E. Retrieve stored data as and when required

You might also like