Prof. Babaso Aldar

Introduction to Operating System

An operating system acts as an intermediary between the user of a computer and the computer hardware.

The purpose of an operating system is to provide an environment in which a user can execute programs in a convenient and efficient manner.

An operating system is software that manages the computer hardware.

The hardware must provide appropriate mechanisms to ensure the correct operation of the computer system and to prevent user programs from interfering with the proper operation of the system.

Internally, operating systems vary greatly in their makeup, since they are organized along many different lines.

The design of a new operating system is a major task.

It is important that the goals of the system be well defined before the design begins.

These goals form the basis for choices among various algorithms and strategies.

Because an operating system is large and complex, it must be created piece by piece.

Each of these pieces should be a well delineated portion of the system, with carefully defined inputs, outputs, and functions.

Introduction:

An
Operating System is a program that manages the computer hardware.

It
also provides a basis for application programs and acts as an intermediary between
the computer user and the computer hardware.

An
amazing aspect of operating systems is how varied they are in accomplishing
these tasks.

Mainframe
operating systems are designed primarily to optimize utilization of hardware.
Personal computer (PC) operating systems support complex games, business
applications, and everything in between.

Operating
systems for handheld computers are designed to provide an environment in which
a user can easily interface with the computer to execute programs.

Thus,
some operating systems are designed to be convenient, others to be efficient,
and others some combination of the two.

Before
we can explore the details of computer system operation, we need to know
something about system structure.

We
begin by discussing the basic functions of system startup, I/0, and storage.

We
also describe the basic computer architecture that makes it possible to write a
functional operating system.

A
modern computer system consists of one or more processors, some main memory, disks,
printers, a keyboard, a display, network interfaces, and other input/output
devices.

All
in all, a complex system. Writing programs that keep track of all these
components and use them correctly, let alone optimally, is an extremely
difficult job.

For
this reason, computers are equipped with a layer of software called the operating
system, whose job is to manage all these devices and provide user programs
with a simpler interface to the hardware.

The
placement of the operating system is shown in Fig. 1.

At
the bottom is the hardware, which, in many cases, is itself composed of two or
more levels (or layers).

It
is important to realize that these programs are definitely not part of the
operating system, even though they are typically supplied by the computer
manufacturer.

This
is a crucial, but subtle, point. The operating system is (usually) that portion
of the software that runs in kernel mode or supervisor mode.

It
is protected from user tampering by the hardware (ignoring for the moment some
older or low-end microprocessors that do not have hardware protection at all).

Compilers
and editors run in user mode.

If
a user does not like a particular compiler, he is free to write his own if he
so chooses: he is not free to write his own clock interrupt handler, which is
part of the operating system and is normally protected by hardware against attempts
by users to modify it.

This
distinction, however, is sometimes blurred in embedded systems (which may not
have kernel mode) or interpreted systems (such as Java-based operating systems
that use interpretation, not hardware, to separate the components).

Still,
for traditional computers, the operating system is what runs in kernel mode.

That
said, in many systems there are programs that run in user mode but which help
the operating system or perform privileged functions.

For
example, there is often a program that allows users to change their passwords.

This
program is not part of the operating system and does not run in kernel mode,
but it clearly carries out a sensitive function and has to be protected in a
special way.

In
some systems, this idea is carried to an extreme form, and pieces of what is
traditionally considered to be the operating system (such as the file system)
run in user space.

In
such systems, it is difficult to draw a clear boundary.

Everything
running in kernel mode is clearly part of the operating system, but some
programs running outside it are arguably also part of it, or at least closely
associated with it.

Finally,
above the system programs come the application programs.

These
programs are purchased or written by the users to solve their particular
problems, such as word processing, spreadsheets, engineering calculations, or
storing information in a database.

References

MODERN OPERATING SYSTEMS by Andrew S. Tanenbaum, Second Edition

The Operating System Concepts by Silberschatz, Galvin, Gagne, 8th Edition

TODAY'S THOUGHT

- Prof. Babaso Aldar

LabVIEW

Laboratory Virtual Instrument Engineering Workbench (LabVIEW) is a system-design platform and development environment for
a visual programming language from National Instruments.

LabVIEW is a
programming environment in which you create programs using a graphical notation
(connecting functional nodes via wires through which data flows); in this
regard, it differs from traditional programming languages like C, C++, or Java,
in which you program with text. However, LabVIEW is much more than a
programming language. It is an interactive program development and execution
system designed for people, like scientists and engineers, who need to program
as part of their jobs.

The LabVIEW development
environment works on computers running Windows, Mac OS X, or Linux. LabVIEW can
create programs that run on those platforms, as well as Microsoft Pocket PC,
Microsoft Windows CE, Palm OS, and a variety of embedded platforms, including
Field Programmable Gate Arrays (FPGAs), Digital Signal Processors (DSPs), and
microprocessors.