Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 12

Unit I

Photo by ktenter

An Introduction to Operating System

The 1960’s definition of an operating system is “the software that


controls the hardware”. However, today, due to microcode we need a
better definition. We see an operating system as the programs that
make the hardware useable. In brief, an operating system is the set of
programs that controls a computer. Some examples of operating
systems are UNIX, Mac, MS-DOS, MS-Windows, Windows/NT, Chicago,
OS/2, MacOS, VMS, MVS, and VM. [Source: Kent State University]

An operating system is a collection of system programs that


manages all the other programs (i.e, application programs) in a
computer as well as the allocation and use of hardware resources
such as the CPU (central processing unit), memory and the hard
disk drive (HDD). It controls and facilitates the overall operation of
a computer. It acts as an interface between the hardware and the
user level program.
Any operating system can be conceptually divided into three sets of
components: a kernel, low-level utilities and other system programs,
and a user interface(s). The kernel is the most important and basic part
of any operating system. It has complete control over everything that
occurs in it and communicates directly with the hardware. Kernel
controls low-level processes that the average user usually cannot see: it
controls how memory is read and written, the order in which processes
are executed, how information is received and sent by devices like the
monitor, keyboard and mouse, and decides, how to interpret
information received from networks. Kernel of an operating system is
copied from storage (hard disk) into a computer’s memory (RAM) as the
computer boots by a boot program and remains there until the
computer is shut down.

An important feature of Unix-like operating system is that these


components are completely separate entities, thus enabling users to run
various combinations of kernels, user interfaces and utility programs. In
other operating systems the separation is only conceptual
Whether it’s Windows, Mac, or Linux, operating systems have a Kernel.
The Kernel is the heart of an operating system, the part that does
the invisible work such as allowing user applications access to
hardware, managing resources like the memory and CPU,
scheduling tasks, and storing device drivers. It is usually the first
part of the OS that is loaded after you turn on your computer and it
completes the POST (Power On Self Test). If a problem occurs at any
point when the OS is loading, usually an error message appears on the
screen.

Utilities are small programs that are used to help manage the operating
system and hardware. System programs also include daemons, which
monitor the system for certain types of events and respond to them.
The user interface is a component that interacts with the computer
user directly, allowing them to control and use programs. The user
interface may be graphical with icons and a desktop, or textual, with a
command line. The most basic, but also the most powerful, type of user
interface is a shell, which, as its name implies, is an outer wrapper to
the kernel that enables users to interact with computers in a text-only
mode. Most modern operating systems also have a graphical user
interface (GUI), which provides windows, icons and menus in a
desktop metaphor that are easily manipulated with a mouse or similar
pointing device. GUIs have the advantage of being much more intuitive
and enjoyable for most new users.
The operating system is usually stored on a HDD (hard disk drive), but it
can also be stored on other media, including a CDROM (or even a single
floppy disk in the case of some very small operating systems such as
muLinux).
Whereas users interact with the system through a shell or a GUI,
application programs make use of the operating system and
communicate with each other by making requests for services through
application program interfaces (APIs) that are defined by the operating
system.

Application programming interfaces provide services and code


libraries that let applications developers write modular code reusing
well defined programming sequences in user space libraries or in the
operating system itself. Which features are considered part of the
operating system is defined differently in various operating systems.
For example, Microsoft Windows considers its user interface to be part
of the operating system, while many versions of Linux do not. [Source:
Wikipedia]
Since Windows ME, the Windows family has been based on the WinNT
architecture. The first version was NT 3.1, and there were other
versions in the 3.x group which was followed by NT 4.0. Linux and Mac
are based on Unix. Both the Windows and Linux/Mac architectures
consist of a layered structure with User mode sitting on top of the
Kernel. In order to make user applications work it takes an API
(Application Program Interface) & libraries. An API consists of pre-
made tools that aid in writing software. A library is a collection of
often-used functions or other code that can be implemented by various
programs. That way, a programmer doesn’t have to rewrite the same
code every time it’s needed. Windows uses Dynamic Link Libraries,
which simply means the library is called during run time, i.e. when a
program is actually running. Another way of looking at it is the library is
used only when needed. Dynamic Link Libraries usually have a .dll
extension. [Source: Learning about Computers]
Kernel (the core component), Shell (the user interface) and File
System are the major 3 components of operating system.
Numerous operating systems have been developed over the years, but
only a few are widely used. Microsoft Windows is the dominant family
of operating systems for personal computers, with a share generally
estimated at in excess of 90 percent worldwide. However, its shares are
much smaller for other types of applications, such as mainframes,
servers and embedded devices. An embedded device is a combination of
computer hardware and software that is built into some other product,
such as an electric appliance, industrial production equipment, cell
phone or disk drive.

For a list of the most commonly used operating systems along with a
brief description of each, see The Most Popular Operating Systems, by
The Linux Information Project, May 2006

In the opinion of many computer experts, the best and most successful
(as measured in terms of such criteria such as stability, efficiency,
flexibility and longevity) operating systems that have been developed to
date are UNIX and its various descendants (such as Linux and Mac OS X),
commonly referred to as Unix-like operating systems. This is largely a
result of their emphasis (although not always fully achieved) on
simplicity, modularity and transparency.
The first computers did not have operating systems. Rather, a user
would typically load punched paper tape or cards containing a program
and data directly into a tape reader or card reader connected to the
computer. The computer would then commence work and continue
until the program was completed or until it crashed (which was even
more common then than now).
The development of operating systems represented a major
improvement in the efficiency of computer utilization. However, the
early operating systems were not standardized, with each computer
manufacturer developing one or more specific to its particular
computer models. This situation continued into the 1960s, when IBM
developed the System/360 series of mainframe computers, all of whose
models ran a single basic operating system, referred to as OS/360.
UNIX, the first version of which was developed in 1969 at Bell Labs by
Ken Thompson, represented a major advance over earlier operating
systems because of its simplicity and portability (i.e., ability to be used
on a wide variety of computers). This, together with the facts that it was
initially essentially free as well as easily obtainable and easily modified,
led to its widespread acceptance by universities and businesses. It also
resulted in its serving as the starting point for the development of other
operating systems.

UNIX was so successful, in fact, that it was difficult for any subsequently
developed systems, including MS-DOS and the other Microsoft systems,
to not be influenced by it.

Although many people have attempted to develop new operating


systems, very few have met with any success. The reason is that it is an
extremely complicated project and it can take years to complete even a
most basic version. Moreover, it would become an even more difficult
and time-consuming project if the system were to incorporate some
truly novel features. For example, it took Linus Torvalds more that a
year of to make Linux even marginally useful despite the fact that it was
basically just a clone of existing operating systems, and it took many
more years for Linux to take off and become truly useful.

Types of Operating Systems


There are four major types of computer operating systems: A Real
Time OS is for industry and machines. There’s basically no user
involvement. A single-user single task operating system is for one
person to do one thing at a time. A single-user multitask OS allows one
person to run more than one application on a computer simultaneously.
A multi-user operating system permits multiple users to access a
single computer. [Source:Learning about Computers]

Batch Operating Systems


A batch operating system is a single stream system that processes the
data and program submitted in a group or batch.
Batch processing requires the program, data and appropriate system
commands to be submitted together in the form of a job to the computer
operator. The job is usually in the form of punch cards. A computer
executes the submitted commands and data to process and after some
time the computer produces output. The output consists of the result of
the program as well as a dump of the final memory and register
contents for debugging.
Batch Operating system allow little or no interaction between users and
executing programs. Programs that do not require interaction and
programs with long execution times may be served well by Batch
Operating System.

Real-time

A real-time operating system is a multitasking operating system that


aims at executing real-time applications. Real-time operating systems
often use specialized scheduling algorithms so that they can achieve a
deterministic nature of behavior. The main objective of real-time
operating systems is their quick and predictable response to events.
They have an event-driven or time-sharing design and often aspects of
both. An event-driven system switches between tasks based on their
priorities or external events while time-sharing operating systems
switch tasks based on clock interrupts.

Multi-user

A multi-user operating system allows multiple users to access a


computer system concurrently. Time-sharing system can be classified as
multi-user systems as they enable a multiple user access to a computer
through the sharing of time. Single-user operating systems, as opposed
to a multi-user operating system, are usable by a single user at a time.
Being able to use multiple accounts on a Windows operating system
does not make it a multi-user system. Rather, only the network
administrator is the real user. But for a Unix-like operating system, it is
possible for two users to login at a time and this capability of the OS
makes it a multi-user operating system.

Multi-tasking vs. Single-tasking

When only a single program is allowed to run at a time, the system is


grouped under a single-tasking system. However, when the operating
system allows the execution of multiple tasks at one time, it is classified
as a multi-tasking operating system. Multi-tasking can be of two types:
pre-emptive or co-operative. In pre-emptive multitasking, the operating
system slices the CPU time and dedicates one slot to each of the
programs. Unix-like operating systems such as Solaris and Linux
support pre-emptive multitasking, as does AmigaOS. Cooperative
multitasking is achieved by relying on each process to give time to the
other processes in a defined manner. 16-bit versions of Microsoft
Windows used cooperative multi-tasking. 32-bit versions, both
Windows NT and Win9x, used pre-emptive multi-tasking. Mac OS prior
to OS X used to support cooperative multitasking.

Distributed

A distributed operating system manages a group of independent


computers and makes them appear to be a single computer. The
development of networked computers that could be linked and
communicate with each other gave rise to distributed computing.
Distributed computations are carried out on more than one machine.
When computers in a group work in cooperation, they make a
distributed system.

Embedded

Embedded operating systems are designed to be used in embedded


computer systems. They are designed to operate on small machines like
PDAs with less autonomy. They are able to operate with a limited
number of resources. They are very compact and extremely efficient by
design. Windows CE and Minix 3 are some examples of embedded
operating systems.

Functions of Operating Systems


Operating system performs various tasks such as Process Management,
Memory Management, File Management, IO Management, Secondary
Storage Management, Networking and Protection System.

Process Management
The operating system manages many kinds of activities ranging from
user programs to system programs like printer spooler, name servers,
file server etc. Each of these activities is encapsulated in a process. A
process includes the complete execution context (code, data, PC,
registers, OS resources in use etc.).
It is important to note that a process is not a program. A process is only
ONE instant of a program in execution. There are many processes can be
running the same program. The five major activities of an operating
system in regard to process management are
• Creation and deletion of user and system processes.
• Suspension and resumption of processes.
• A mechanism for process synchronization.
• A mechanism for process communication.
• A mechanism for deadlock handling.

Main-Memory Management

Primary-Memory or Main-Memory is a large array of words or bytes.


Each word or byte has its own address. Main-memory provides storage
that can be access directly by the CPU. That is to say for a program to be
executed, it must in the main memory.
The major activities of an operating in regard to memory-management
are:
• Keep track of which part of memory are currently being used and by
whom.
• Decide which process are loaded into memory when memory space
becomes available.
• Allocate and deallocate memory space as needed.

File Management

A file is a collection of related information defined by its creator. A


computer can store files on the disk (secondary storage), which
provides long-term storage. Some examples of storage media are
magnetic tape, magnetic disk, and the optical disk. Each of these media
has its own properties like speed, capacity, data transfer rate and access
methods.
A file system normally organized into directories to ease their use.
These directories may contain files and other directions.
The five main major activities of an operating system in regard to file
management are
1 The creation and deletion of files.
2 The creation and deletion of directions.
3 The support of primitives for manipulating files and directions.
4 The mapping of files onto secondary storage.
5 The back up of files on stable storage media.
I/O System Management
I/O subsystem hides the peculiarities of specific hardware devices from
the user. Only the device driver knows the peculiarities of the specific
device to whom it is assigned.

Secondary-Storage Management

Generally speaking, systems have several levels of storage, including


primary storage, secondary storage, and cache storage. Instructions and
data must be placed in primary storage or cache to be referenced by a
running program. Because main memory is too small to accommodate
all data and programs, and its data are lost when power is lost, the
computer system must provide secondary storage to back up main
memory. Secondary storage consists of tapes, disks, and other media
designed to hold information that will eventually be accessed in primary
storage (primary, secondary, cache) is ordinarily divided into bytes or
words consisting of a fixed number of bytes. Each location in storage has
an address; the set of all addresses available to a program is called an
address space.

The three major activities of an operating system in regard to secondary


storage management are:
1 Managing the free space available on the secondary-storage device.
2 Allocation of storage space when new files have to be written.
3 Scheduling the requests for memory access.
Networking
A distributed system is a collection of processors that do not share
memory, peripheral devices, or a clock. The processors communicate
with one another through communication lines called network. The
communication-network design must consider routing and connection
strategies, and the problems of contention and security.
Protection System
If a computer systems have multiple users and allow the concurrent
execution of multiple processes, then the various processes must be
protected from one another’s activities. Protection refers to a
mechanism for controlling the access of programs, processes, or users
to the resources defined by a computer system.
Command Interpreter System
A command interpreter is an interface of the operating system with the
user. The user gives commands with are executed by operating system
(usually by turning them into system calls). The main function of a
command interpreter is to get and execute the next user-specified
command. Command-Interpreter is usually not part of the kernel, since
multiple command interpreters (shell, in UNIX terminology) may be
supported by an operating system, and they do not really need to run in
kernel mode. There are two main advantages to separating the
command interpreter from the kernel.
1 If we want to change the way the command interpreter looks, i.e., I
want to change the interface of command interpreter, I am able to
do that if the command interpreter is separate from the kernel. I
cannot change the code of the kernel so I cannot modify the
interface.
2 If the command interpreter is a part of the kernel it is possible for a
malicious process to gain access to certain part of the kernel that
it showed not have to avoid this ugly scenario it is advantageous
to have the command interpreter separate from kernel.
 

Points to Remember

• multiprogramming means multiple programs, so if an operating


system can execute multiple programs in one processor, it is
multiprogramming. Similarly, multiprocessing is multiple
processing, so if an operating system can use multiple processors
to run one program, it is multiprocessing operating system.
• Operating system can have graphical user interface (GUI) or
character user interface (CUI). Windows is GUI operating
system and DOS is CUI operating system. GUI offers desktop, icons
and menus to click, drag and drop to issue commands where as
CUI offers a command line where you will type the command in
correct syntax.
• Batch Operating System, Real Time Operating System, Single User
Single Tasking Operating System, Single User Multi Tasking
Operating System, Multi-User Operating System, Distributed
Operating System, Embedded Operating System are the different
types of operating systems.
• Operating Systems are responsible to:
◦ Provide the instructions to display the on-screen elements.
These elements are collectively known as user interface.
◦ Load programs into computer memory so that users can use.
◦ Control the flow of data in and out of computer as well as to and
from peripheral devices.
◦ Manage the data stored in secondary storage
◦ Provide security by preventing unauthorized access to the
computer’s resources.
◦ Monitor the status of critical computer components to detect
failures that affect processing.
◦ Assign processors to different tasks being performed by the
computer system.
• Windows operating system supports multitasking, multithreading
and multiprogramming.
• DOS supports only single user and single tasking.
• Operating system works like an air traffic controller to coordinate the
activities within the computer.
• CP/M is the first PC operating system developed by Dr. Gary A.
Kildall in 1974.
• In 1981 Microsoft purchased an unauthorized clone of CP/M from
Seattle Software Works and licensed this clone to IBM. IBM
marketed it as PC-DOS on the first IBM PC in 1981. Microsoft
marketed it to all other PC as MS-DOS.
• In Windows XP, the term XP stands for eXPerience.
• Windows XP was first released on 25th October 2001.
• Windows Vista released on 30th January 2007.
• Windows 7 is released on 22nd July 2009.
• Windows CE is an operating system developed by Microsoft for
embedded systems. Windows CE are used in industrial
controllers, communication hubs, POS terminals, cameras, tablets,
interactive televisions.
• Pointer, pointing device, icons, desktop, windows, menus, buttons,
toolbars etc are the basic components of GUI (Graphical User
Interface).

You might also like