Chapter 1
Chapter 1
INTRODUCTION:
Operating Systems are an essential part of any computer system. Similarly, a course on operating
system is an essential part of any computer science education. This field is undergoing rapid change, as
computers are now prevalent in virtually every application, from games for children through the most
sophisticated planning tools for governments and multinational firms. This chapter will focus in the
introduction and the concepts that underlie in Operating System.
LESSON PROPER:
We often use computers for a variety of applications which require some logistical system support. A
few typical applications are listed below:
- Document design
- Accounting
- Email
- Image processing
- Games
An operating system is similar to a government. Like a government, it performs no useful function by itself. It
simply provides an environment within which other programs can do useful work.
To understand more fully the operating system’s role, we next explore operating systems from two viewpoints:
that of the user and that of the system.
a. User View - The user’s view of the computer varies according to the interface being used. The user
view depends on the system interface that is used by the users. The different types of user view
experiences can be explained as follows –
Most computer users sit in front of a PC, consisting of a monitor, keyboard, mouse, and
system unit. Such a system is designed for one user to monopolize its resources. The goal is to
maximize the work (or play) that the user is performing. In this case, the operating system is
designed mostly for ease of use, with some attention paid to performance and none paid to
resource utilization—how various hardware and software resources are shared. Performance
is, of course, important to the user; but such systems are optimized for the single-user
experience rather than the requirements of multiple users.
Some computers have little or no user view. For example, embedded computers in home
devices and automobiles may have numeric keypads and may turn indicator lights on or off to
show status, but they and their operating systems are designed primarily to run without user
intervention.
b. System View - From the computer’s point of view, the operating system is the program most intimately
involved with the hardware. According to the computer system, the operating system is the bridge
between applications and hardware. It is most intimate with the hardware and is used to control it as
required.
The different types of system view for operating system can be explained as follows:
In this context, we can view an operating system as a resource allocator. A computer system
has many resources that may be required to solve a problem: CPU time, memory space, file-
storage space, I/O devices, and so on. The operating system acts as the manager of these
resources. Facing numerous and possibly conflicting requests for resources, the operating
system must decide how to allocate them to specific programs and users so that it can
operate the computer system efficiently and fairly. As we have seen, resource allocation is
especially important where many users access the same mainframe or minicomputer.
A slightly different view of an operating system emphasizes the need to control the various
I/O devices and user programs. An operating system is a control program. A control program
manages the execution of user programs to prevent errors and improper use of the computer.
It is especially concerned with the operation and control of I/O devices.
The first computers did not have operating systems. Each program that was running on these first
computers had to include all the code needed to run on the computer, communicate with the connected
hardware and perform the calculation that the program was intended to perform. This situation made
even the simplest programs become very complex.
In response to this problem, the owners of the central computers began to develop system
software that facilitated the writing and execution of the programs included in the computer, and thus the
first operating systems were born.
- Operating systems were first developed in the late 1950s to manage tape storage
- The first operating system was created by General Motors in 1956 to run a single IBM central computer.
- In the 1960s, IBM was the first computer manufacturer to take on the task of developing operating
systems and began distributing operating systems included in its computers.
- In the late 1960s, the first version of the Unix OS was developed.
- Microsoft Windows was developed in response to an IBM request for an operating system to run its range
of personal computers or PCs.
- The first OS built by Microsoft was DOS. It was built in 1981 by purchasing the 86-DOS software from a
Seattle company
- The present-day popular OS Windows first came to existence in 1985 when a GUI was created and paired
with MS-DOS.
The operating system has been evolving through the years. The table shows the history of OS.
When the first electronic computer was developed in 1940, it was created without any operating
system. In early times, users have full access to the computer machine and write a program for each task in
absolute machine language. Machines of the time were so primitive that programs were often entered one
bit at time on rows of mechanical switches (plug boards). Programming languages were unknown (not
even assembly languages).
The second-generation operating system was based on a single stream batch processing system
because it collects all similar jobs in groups or batches and then submits the jobs to the operating system
using a punch card to complete all jobs in a machine. At each completion of jobs (either normally or
abnormally), control transfer to the operating system that is cleaned after completing one job and then
continues to read and initiates the next job in a punch card. After that, new machines were called
mainframes, which were very big and used by professional operators.
During the late 1960s, operating system designers were very capable of developing a new
operating system that could simultaneously perform multiple tasks in a single computer program called
The fourth generation of operating systems is related to the development of the personal
computer. A major factor related to creating personal computers was the birth of Microsoft and the
Windows operating system. Microsoft created the first window operating system in 1975. After introducing
the Microsoft Windows OS, Bill Gates and Paul Allen had the vision to take personal computers to the next
level. Therefore, they introduced the MS-DOS in 1981; however, it was very difficult for the person to
understand its cryptic commands.
Today, Windows has become the most popular and most commonly used operating system
technology. And then, Windows released various operating systems such as Windows 95, Windows 98,
Windows XP and the latest operating system, Windows 7. Currently, most Windows users use the Windows
10 operating system. Besides the Windows operating system, Apple is another popular operating system
built in the 1980s, and this operating system was developed by Steve Jobs, a co-founder of Apple. They
named the operating system Macintosh OS or Mac OS.
Resource Management: When parallel accessing happens in the OS means when multiple users are
accessing the system the OS works as Resource Manager, Its responsibility is to provide hardware to
the user. It decreases the load in the system.
Process Management: A program does nothing unless its instructions are executed by a CPU. A
program in execution, as mentioned, is a process. A time-shared user program such as a compiler is a
process. A word-processing program being run by an individual user on a PC is a process. A system
task, such as sending output to a printer, can also be a process (or at least part of one). A process
needs certain resources—including CPU time, memory, files, and I/O devices—to accomplish its task.
Storage Management: The file system mechanism used for the management of the
storage. NIFS, CFS, CIFS, NFS, etc. are some file systems. All the data stores in various tracks of Hard
disks that all managed by the storage manager. It included Hard Disk.
The operating system is responsible for the following activities in connection with file management:
o Creating and deleting files
o Creating and deleting directories to organize files
o Supporting primitives for manipulating files and directories
o Mapping files onto secondary storage
o Backing up files on stable (nonvolatile) storage media
The operating system is responsible for the following activities in connection with disk management:
o Free-space management
o Storage allocation
o Disk scheduling
Memory Management: Refers to the management of primary memory. The operating system has to
keep track, how much memory has been used and by whom. It has to decide which process needs
memory space and how much. OS also has to allocate and deallocate the memory space.
The operating system is responsible for the following activities in connection with memory
management:
o Keeping track of which parts of memory are currently being used and who is using them.
o Deciding which processes (or parts of processes) and data to move into and out of memory.
o Allocating and deallocating memory space as needed
In Batch Operating System, there is no direct interaction between user and computer. Therefore,
the user needs to prepare jobs and save offline mode to punch card or paper tape or magnetic tape. After
Examples of Batch based Operating System: Payroll System, Bank Statements, etc
It is the type of operating system that allows us to connect many people located at different
locations to share and use a specific system at a single time. The time-sharing operating system is the
logical extension of the multiprogramming through which users can run multiple tasks concurrently.
Furthermore, it provides each user his terminal for input or output that impacts the program or processor
currently running on the system. It represents the CPU's time is shared between many user processes. Or,
the processor's time that is shared between multiple users simultaneously termed as time-sharing.
The Embedded operating system is the specific purpose operating system used in the computer
system's embedded hardware configuration. These operating systems are designed to work on dedicated
devices like automated teller machines (ATMs), airplane systems, digital home assistants, and the internet
of things (IoT) devices.
Due to the CPU's underutilization and the waiting for I/O resource till that CPU remains idle. It
shows the improper use of system resources. Hence, the operating system introduces a new concept that
is known as multiprogramming. A multiprogramming operating system refers to the concepts wherein two
7|Page Operating Systems 1
or more processes or programs activate simultaneously to execute the processes one after another by the
same computer system. When a program is in run mode and uses CPU, another program or file uses I/O
resources at the same time or waiting for another system resource to become available. It improves the
use of system resources, thereby increasing system throughput. Such a system is known as a
multiprogramming operating system.
A network operating system is an important category of the operating system that operates on a
server using network devices like a switch, router, or firewall to handle data, applications and other
network resources. It provides connectivity among the autonomous operating system, called as a network
operating system. The network operating system is also useful to share data, files, hardware devices and
printer resources among multiple computers to communicate with each other.
o Peer-to-peer network operating system: The type of network operating system allows users to
share files, resources between two or more computer machines using a LAN.
o Client-Server network operating system: It is the type of network operating system that allows
the users to access resources, functions, and applications through a common server or center
hub of the resources. The client workstation can access all resources that exist in the central
hub of the network. Multiple clients can access and share different types of the resource over
Examples of Network Operating System are: Microsoft Windows Server 2003, Microsoft Windows Server
2008, UNIX, Linux, Mac OS X, Novell NetWare, and BSD, etc.
It is the type of operating system that refers to using two or more central processing units (CPU) in
a single computer system. However, these multiprocessor systems or parallel operating systems are used
to increase the computer system's efficiency. With the use of a multiprocessor system, they share
computer bus, clock, memory and input or output device for concurrent execution of process or program
and resource management in the CPU. A multiprocessing operating system is capable of running many
programs simultaneously, and most modern network operating systems (NOSs) support multiprocessing.
Examples of Multiprocessing Operating Systems include Windows NT, 2000, XP, and Unix.
A real-time operating system is an important type of operating system used to provide services
and data processing resources for applications in which the time interval required to process & respond to
input/output should be so small without any delay real-time system. For example, real-life situations
governing an automatic car, traffic signal, nuclear reactor or an aircraft require an immediate response to
complete tasks within a specified time delay. Hence, a real-time operating system must be fast and
9|Page Operating Systems 1
responsive for an embedded system, weapon system, robots, scientific research & experiments and various
real-time objects.
o Hard Real-Time Systems: These OSs are meant for applications where time constraints are very
strict and even the shortest possible delay is not acceptable. These systems are built for saving
life like automatic parachutes or airbags which are required to be readily available in case of
any accident. Virtual memory is rarely found in these systems.
o Soft Real-Time Systems: These OSs are for applications where for time-constraint is less strict.
Examples of Real-Time Operating Systems are: Scientific experiments, medical imaging systems,
industrial control systems, weapon systems, robots, air traffic control systems, etc.
Open-source operating systems are those available in source-code format rather than as compiled
binary code. Linux is the most famous opensource operating system, while Microsoft Windows is a well-
known example of the opposite closed-source approach.
There are many benefits to open-source operating systems, including a community of interested
(and usually unpaid) programmers who contribute to the code by helping to debug it, analyze it, provide
support, and suggest changes. Arguably, open-source code is more secure than closed-source code
because many more eyes are viewing the code. Certainly, open-source code has bugs, but open-source
advocates argue that bugs tend to be found and fixed faster owing to the number of people using and
viewing the code.
Modern operating systems are interrupt-driven. If there are no processes to execute, no I/O devices to
service, and no users to whom to respond, an operating system will sit quietly, waiting for something to
happen.
Events are almost always signaled by the occurrence of an interrupt or a trap. A trap (or an exception) is a
software-generated interrupt caused either by an error (for example, division by zero or invalid memory
access) or by a specific request from a user program that an operating-system service be performed. The
interrupt-driven nature of an operating system defines that system’s general structure. For each type of
interrupt, separate segments of code in the operating system determine what action should be taken. An
interrupt service routine is provided to deal with the interrupt.
An operating system is sometimes described as ―the first program,‖ one that allows you to run
other programs. However, it is usually stored as a file (or, more commonly, a collection of files) on a disk.
How does this ―first‖ program get to run?
The operating system is loaded through a bootstrapping process, more succinctly known as booting.
A boot loader is a program whose task is to load a bigger program, such as the operating system.
When you turn on a computer, its memory is usually uninitialized. Hence, there is nothing to run.
Early computers would have hardware that would enable the operator to press a button to load a
sequence of bytes from punched cards, punched paper tape, or a tape drive. Switches on the
computer’s front panel would define the source of the data and the target memory address. In some
cases, the boot loader software would be hard wired as non-volatile memory (in early computers,
this would be a grid of wires with cuts in the appropriate places where a 0-bit was needed).
In later systems, read-only memory would contain a small boot loader that would have basic
intelligence to read, say, the first sector (512 bytes) of a disk.
Since this initial program had to be as small as possible, it would have minimal capabilities. What
often happened is that the boot loader would load another boot loader, called a second stage
loader, which was more sophisticated.
10 | P a g e Operating Systems 1
This second stage loader would have error checking, among possibly other features, such as giving
the user a choice of operating systems to boot, the ability to load diagnostic software, or enabling
diagnostic modes in the operating system.
This multi-stage boot loader, having a boot loader load a bigger boot loader, is called chain loading.
The boot loader will often perform some core initialization of the system hardware and will then load
the operating system.
Once the operating system is loaded, the boot loader transfers control to it and is no longer needed.
The operating system will initialize itself, configure the system hardware (e.g., set up memory
management, set timers, set interrupts), and load device drivers, if needed.
11 | P a g e Operating Systems 1