OS Unit 1
OS Unit 1
) SEM III
Unit I
Operating System Overview: Operating System Objectives and Functions, The Evolution of
Operating Systems, Major Achievements, Developments Leading to Modern Operating Systems,
Fault Tolerance, OS Design Considerations for Multiprocessor and Multicore, Overview of
different operating systems Microsoft Windows, Traditional UNIX Systems, Modern UNIX
Systems, Linux, Android.
PROCESSES: Process Description and Control
An Operating System is a program that controls the execution of application programs, and
acts as an interface or an intermediary between a user of computer and the computer
hardware. The end user views a computer system in terms of a set of applications. An
application can be expressed in a programming language, and is developed by an application
programmer. If one were to develop an application program as a set of machine instructions
that is completely responsible for controlling the computer hardware. The OS masks the
details of the hardware from the programmer, and provides the programmer with a
convenient interface for using the system. It acts as a mediator, making it easier for the
programmer and for application programs to access and use those facilities and services.
Briefly, the OS typically provides three objectives and functionality or services in the
following areas:
Objectives:
∙ Convenience: An OS makes a computer more convenient to use.
∙ Efficiency: An OS allows the computer system resources to be used in an efficient manner.
∙ Ability to evolve: An OS should be constructed in such a way as to permit the effective
development, testing, and introduction of new system functions without interfering with
service.
Functionality or services:
∙ Program development: The OS provides a variety of facilities and services, such as editors
and debuggers, to assist the programmer in creating programs.
∙ Program execution: A number of steps need to perform to execute a program. Instructions
and data must be loaded into main memory, I/O devices and files must initialized, and
other resources must be prepared. The OS handles these scheduling duties for the user.
∙ Access to I/O devices: Each I/O device requires its own peculiar set of instructions or
control signals for operation. The OS provides a uniform interface that hides these details
so programmers can access such devices using simple reads and writes.
∙ Controlled access to files: system with multiple users, the OS may provide protection
mechanisms to control access to the files.
∙ System access: For shared or public systems, the OS controls access to the system as a
whole and to specific system resources. The access function must provide protection of
resources and data from unauthorized users, and must resolve conflicts for resource
contention.
∙ Error detection and response: A variety of errors can occur while a computer system is
running. These include internal and external hardware errors (such as a memory error, or a
device failure or malfunction), and various software errors.
∙ Accounting: A good OS will collect usage statistics for various resources and monitor
performance parameters such as response time.
∙ The Operating System as Resource Manager: The OS is responsible for controlling the
use of a computer’s resources, such as I/O, main and secondary memory, and processor
execution time.
The need to regular update an OS places certain requirements on its design. An obvious
statement is that the system should be modular in construction, with clearly defined interfaces
between the modules, and that it should well documented.
In attempting to understand the key requirements for an OS and the significance of the major
features of a contemporary OS, it is useful to consider how operating systems have evolved
over the years.
1. Serial Processing
2. Simple Batch Systems
3. Multi programmed Batch Systems
4. Time-Sharing Systems
1. Serial Processing
∙ This mode of operation could be termed serial processing, reflecting the fact that users
have access to the computer in series. Over time, various system software tools were
developed to attempt to make serial processing more efficient.
Prof. Hemchandra Kumbhar 2 | P a g e
OPERATING SYSTEM S.Y.B.SC. (I.T.) SEM III
∙ These include libraries of common functions, linkers, loaders, debuggers, and I/O driver
routines that were available as common software for all users.
∙ The central idea behind the simple batch-processing scheme is the use of a piece of
software known as the monitor. With this type of OS, the user no longer has direct
access to the processor.
∙ To improve utilization, the concept of a batch OS was developed. It appears that the first
batch OS (and the first OS of any kind) was developed in the mid-1950s by General
Motors for use on an IBM 701. By the early 1960s, a number of vendors had
developed batch operating systems for their computer systems.
∙ Even with the automatic job sequencing provided by a simple batch OS, The problem is
I/O devices are slow compare to the processor. The processor spends a certain amount
of time executing, until it reaches an I/O instruction. It must then wait until that I/O
instruction concludes before proceeding.
∙ The approach is known as multiprogramming, or multitasking. It is the central theme of
modern operating systems. Now suppose the jobs are run concurrently under a
multiprogramming OS.
4. Time-Sharing Systems
In this latter case, the technique is referred to as time-sharing, because processor time is
shared among multiple users. In a time-sharing system, multiple users simultaneously access
the system through terminals.
With the use of multiprogramming, batch processing can be quite efficient. Just as
multiprogramming allows the processor to handle multiple batch jobs at a time,
multiprogramming can also be used to handle multiple interactive jobs.
Prof. Hemchandra Kumbhar 3 | P a g e
OPERATING SYSTEM S.Y.B.SC. (I.T.) SEM III ⮚ Major Achievements
There have been four major theoretical advances in the development of operating systems:
∙ Memory management: System managers need efficient and orderly control of storage
allocation. The OS, to satisfy these requirements, has five principal storage management
responsibilities: Process isolation, Automatic allocation and management, Protection and
access control, Long-term storage. Virtual memory is a facility that allows programs to
address memory from a logical point of view, without regard to the amount of main memory
physically available.
∙ Information protection and security: The growth in the use of time-sharing systems and,
more recently, computer networks has brought with it a growth in concern for the protection
of information. Much of the work in security and protection as it relates to operating systems
can be roughly grouped into four categories: Availability, Confidentiality, Data integrity,
Authenticity.
∙ Scheduling and resource management: Scheduling and resource management are essentially
operations-research problems and the mathematical results of that discipline can be applied.
In addition, measurement of system activity is important to be able to monitor performance
and make adjustments.
The rate of change in the demands on operating systems requires not just modifications and
enhancements to existing architectures, but new ways of organizing the OS. A wide range of
different approaches and design elements has been tried in both experimental and commercial
operating systems, but much of the work fits into the following categories:
1. Microkernel architecture
2. Multithreading
3. Symmetric multiprocessing
4. Distributed operating systems
5. Object-oriented design
⮚ Fault Tolerance
Fault tolerance refers to the ability of a system or component to continue normal operation
despite the presence of hardware or software faults. This typically involves some degree of
redundancy. Fault tolerance is intended to increase the reliability of a system. The three basic
measures of the quality of the operation of a system that relate to fault tolerance are reliability,
Mean Time To Failure (MTTF) and availability. These concepts were developed with specific
reference to hardware faults, but apply more generally to hardware and software faults.
The mean time to failure (MTTF) is defined as
∞
MTTF = ∫ ��(��)
0
The mean time to repair (MTTR) is the average time it takes to repair or replace a faulty
element. The availability of a system or service is define as the fraction of time the system is
available to service users’ requests. The time during which the system is not available is
called downtime. We can group faults into the following categories:
1. Permanent: A fault that, after it occurs, is always present. The fault persists until the faulty
component is replaced or repaired. Examples include disk head crashes, software bugs,
and a burnt-out communications component.
2. Temporary: A fault that is not present all the time for all operating conditions. Temporary
faults can be further classified as follows:
a. Transient: A fault that occurs only once.
b. Intermittent: A fault that occurs at multiple, unpredictable times.
1. Physical redundancy: Physical redundancy involves the use of multiple components that
either perform the same function simultaneously, or configured so one component is
available as a backup in case of the failure of another component.
2. Temporal redundancy: Temporal redundancy involves repeating a function or operation
when an error is detected. This approach is effective with temporary faults, but not useful
for permanent faults.
3. Information redundancy: Information redundancy provides fault tolerance by replicating
or coding data in such a way that bit errors can be both detected and corrected.
2. Multicore OS Considerations
The considerations for multicore systems include all the design issues discussed so far in this
section for SMP systems. However, additional concerns arise. The issue is one of the scale of the
potential parallelism. Current multicore vendors offer systems with ten or more cores on a single
chip.
The design challenge for a many-core multicore system is to efficiently harness the multicore
processing power and intelligently manage the substantial on-chip resources.
First, there is hardware parallelism within each core processor, known as instruction level
parallelism, Second, there is the potential for multiprogramming and multithreaded execution
within each processor.
∙ Parallelism within Applications: Most applications can, in principle, be subdivided into
multiple tasks that can execute in parallel, with these tasks then being implemented as
multiple processes, perhaps each with multiple threads. The difficulty is that the developer
must decide how to split up the application work into independently executable tasks. That
is, the developer must decide what pieces can or should be executed asynchronously or in
parallel. It is primarily the compiler and the programming language features that support the
parallel programming design process. However, the OS can support this design process, at
minimum, by efficiently allocating resources among parallel tasks as defined by the
developer.
∙ Virtual Machine Approach An alternative approach is to recognize that with the ever
increasing number of cores on a chip, the attempt to multi-program individual cores to
support multiple applications may be a misplaced use of resources.
systems
1. Microsoft Windows
∙ It is designed to run on any standard x86 Intel and AMD. hence most of the hardware vendors
make drivers for windows like Dell, HP, etc.
∙ It supports enhanced performance by utilizing multi-core processors. ∙ It comes preloaded with
many productivity tools which helps to complete all types of everyday tasks on your computer.
∙ Windows has a very large user base so there is a much larger selection of available software
programs, utilities.
∙ Windows is backward compatible meaning old programs can run on newer versions. ∙ Hardware
is automatically detected eliminating need of manually installing any device drivers.
∙ UNIX is no longer a small system, it is a rather very powerful one. Unlike Windows & DOS, ∙
UNIX can be used concurrently by several users.
∙ You can interact with a UNIX system through a command-line interpreter called the shell. ∙
UNIX is a computer operating system that was first developed on 3 November 1971. ∙ A single
user may run multiple tasks concurrently.
∙ UNIX provides shell which is also a programming language designed for programmers, not for
casual end-users.
4. Linux
∙ Linux is free can be downloaded from the Internet or redistribute it under GNU licenses and
has the best community support.
∙ Linux OS is easily portable which means it can be installed on various types of devices like
mobile, tablet computers.
∙ It is a multi-user, multitasking operating system.
∙ BASH is the Linux interpreter program which can be used to execute commands. ∙
Linux provides multiple levels of file structures.
∙ Linux provides user security using authentication features and also threat detection and solution
is very fast because Linux is mainly community driven.
5. Android
∙ The android operating system is an open source operating system means that it’s free and any
one can use it.
∙ Android offers optimized 2D and 3D graphics, multimedia, GSM connectivity, multi tasking.
∙ Android OS is known for its friendly user interface.
∙ Huge choice of applications for its users since Play store offer over one million apps. ∙ Software
developers who want to create applications for the Android OS can download the Android
Software Development Kit (SDK) to easily develop apps for android. ∙ Android would consume
very little power but deliver extreme performance since its hardware is based on ARM
architecture.
PROCESSES
Question Bank
1. What is OS? Explain functions or services provide bt OS?
2. Explain the Evolution of Operating Systems.
3. Explain four major theoretical advances Achievements in the development of operating
system.
4. Explain different approaches and design elements to Developments Modern Operating
Systems.
5. What is Fault tolerance? Explain its categories and redundancy.
6. Explain OS Design Considerations for Multiprocessor and Multicore.
7. Explain the Overview of following operating systems
a. Microsoft Windows
b. Traditional UNIX Systems
c. Modern UNIX Systems
d. Linux
e. Android
8. What is process? Explain elements of process control block.