0% found this document useful (0 votes)
49 views

Operating System

The document discusses different types of operating systems including batch, multi-tasking, real-time, distributed, network, and mobile operating systems. It provides details and examples of each type of operating system.

Uploaded by

20dayama Vishnu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
49 views

Operating System

The document discusses different types of operating systems including batch, multi-tasking, real-time, distributed, network, and mobile operating systems. It provides details and examples of each type of operating system.

Uploaded by

20dayama Vishnu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 58

Types of Operating System (OS)

Following are the popular types of OS (Operating System):

 Batch Operating System


 Multitasking/Time Sharing OS
 Multiprocessing OS
 Real Time OS
 Distributed OS
 Network OS
 Mobile OS

Batch Operating System


Some computer processes are very lengthy and time-consuming. To speed the
same process, a job with a similar type of needs are batched together and run as a
group.

The user of a batch operating system never directly interacts with the computer. In
this type of OS, every user prepares his or her job on an offline device like a punch
card and submit it to the computer operator.

Examples of Batch based Operating System: Payroll System, Bank Statements, etc.

Diagram:-

Multi-Tasking/Time-sharing Operating systems


Time-sharing operating system enables people located at a different terminal(shell)
to use a single computer system at the same time. The processor time (CPU) which
is shared among multiple users is termed as time sharing.

Some Examples of Time Sharing Operating System


 UNIX.
 Multics.
 Linux.
 Windows 2000 server.
 Windows NT server.
 TOPS-10 (DEC)
 TOPS-20 (DEC)
Real time OS
A real time operating system time interval to process and respond to inputs is very
small. Examples: Military Software Systems, Space Software Systems are the Real
time OS example.

Distributed Operating System


Distributed systems use many processors located in different machines to provide
very fast computation to its users.

Few examples of a distributed OS are as follows:


 AIX operating system for IBM RS/6000 computers.
 Solaris operating system for SUN multiprocessor workstations.
 Mach/OS is a multitasking and multithreading UNIX compatible operating system.
 OSF/1 operating system.

Network Operating System


Network Operating System runs on a server. It provides the capability to serve to
manage data, user, groups, security, application, and other networking functions.

Examples of Network Operating System are: 


Microsoft Windows Server 2003,
Microsoft Windows Server 2008,
UNIX,
Linux,
Mac OS X,
Novell NetWare, and BSD, etc.

Mobile OS
Mobile operating systems are those OS which is especially that are designed to
power smartphones, tablets, and wearables devices.

Some most famous mobile operating systems are Android and iOS, but others
include BlackBerry, Web, and watchOS.

Functions of Operating System


Some typical operating system functions may include managing memory, files,
processes, I/O system & devices, security, etc.

Below are the main functions of Operating System:


Fu
nctions of Operating System

Characteristics of Modern OS
Huge lines of code, a huge number of unnecessary features aren’t only the good Characteristics
of Modern OS. So, we have to consider the design concepts before saying that it is a modern
operating system.

The Characteristics of Modern OS include:


1. Object-Oriented Design
2. Multi-threading
3. Systematic Multi-Processing
4. Distributed Operating System
5. Micro-Kernel Architecture
Object-Oriented Design:
Object-Oriented Design is the largest trend in designing of the operating system. In which the
OS creates the objects for each facility, each object has a set of operations.

Multi-threading:
An application or program is divided into several smaller tasks, these tasks are executed by the
processor concurrently. These smaller tasks are called threads. A thread is a lightweight
process or a dispatchable unit of work. A thread has some of the characteristics of a process.
The number of independent threads in an application executed by the processor at the time is
called Multi-threading.
Systematic Multi-Processing:
If a computer has more than one processor, these processors can share the memory and
Input/Output facilities and these processors share the same job for execution then the system is
called Systematic Multi-Processor System. The operating system designed for Systematic
processing is called ‘ Systematic Multi-Processing Operating System’.
The advantage of using Systematic Multi-Processing over uni architecture. There are:
i. Throughput: It simply means that the number of jobs executed by the processor in a time slot.
ii. Reliability: it means that if one processor failed due to hardware problems even can execute
the jobs with other processors.
iii. From the user point of view, jobs are executed very fast.

Distributed Operating System:


A Distributed Operating System is an operating system that runs on a network of computers.
The operating system, memory files shared by the number of users in the network from the
server. In a Distributed Operating System, each user thinks that running on a single large
system with one operating system. The users don’t need to know where the files are in the
network.

Micro-Kernel Architecture:
A Micro-Kernel Architecture is a minimal operating system that performs only the essential
functions of an operating system. System processes perform all other operating system
functions. Here the system processes mean Servers. A system that contains the server is called
the Client-Server Model.

Concept of Hardware and Software

The concept of hardware and software is explained in detail below −

Hardware
The term hardware refers to mechanical device that makes up computer. Computer hardware
consists of interconnected electronic devices that we can use to control computer’s operation,
input and output. Examples of hardware are CPU, keyboard, mouse, hard disk, etc.
Hardware Components
Computer hardware is a collection of several components working together. Some parts are
essential and others are added advantages. Computer hardware is made up of CPU and
peripherals as shown in image below.

Software
A set of instructions that drives computer to do stipulated tasks is called a program. Software
instructions are programmed in a computer language, translated into machine language, and
executed by computer. Software can be categorized into two types −

 System software
 Application software
System Software

System software operates directly on hardware devices of computer. It provides a platform to


run an application. It provides and supports user functionality. Examples of system software
include operating systems such as Windows, Linux, Unix, etc.

Application Software

An application software is designed for benefit of users to perform one or more tasks.
Examples of application software include Microsoft Word, Excel, PowerPoint, Oracle, etc.

Differences between Software and Hardware are sorted out below −

Sr.No Software Hardware


.

1 It is a It includes physical components of computer system.


collection of
programs to
bring
computer
hardware
system into
operation.

2 It includes It consists of electronic components like ICs, diodes, registers,


numbers, crystals, boards, insulators, etc.
alphabets,
alphanumeric
symbols,
identifiers,
keywords,
etc.
3 Software Hardware design is based on architectural decisions to make it work
products over a range of environmental conditions and time.
evolve by
adding new
features to
existing
programs to
support
hardware.

4 It will vary as It is mostly constructed for all types of computer systems.


per computer
and its built-
in functions
and
programming
language.

5 It is designed The hardware can understand only low-level language or machine


and language.
developed by
experienced
programmers
in high-level
language.

6 It is The hardware works only on binary codes 1’s and 0’s.


represented
in any high-
level
language
such as
BASIC,
COBOL, C,
C++, JAVA,
etc.

7 The software The hardware consists of input devices, output devices, memory, etc.
is
categorized
as operating
system,
utilities,
language
processor,
application
software, etc.

1.4 CPU states

The

process, from its creation to completion, passes through various states. The minimum number of
states is five.

The names of the states are not standardized although the process may be in one of the
following states during execution.
1. New
A program which is going to be picked up by the OS into the main memory is called a new
process.

2. Ready
Whenever a process is created, it directly enters in the ready state, in which, it waits for the CPU
to be assigned. The OS picks the new processes from the secondary memory and put all of them
in the main memory.

The processes which are ready for the execution and reside in the main memory are called ready
state processes. There can be many processes present in the ready state.

3. Running
One of the processes from the ready state will be chosen by the OS depending upon the
scheduling algorithm. Hence, if we have only one CPU in our system, the number of running
processes for a particular time will always be one. If we have n processors in the system then we
can have n processes running simultaneously.

4. Block or wait
From the Running state, a process can make the transition to the block or wait state depending
upon the scheduling algorithm or the intrinsic behavior of the process.

When a process waits for a certain resource to be assigned or for the input from the user then
the OS move this process to the block or wait state and assigns the CPU to the other processes.

5. Completion or termination
When a process finishes its execution, it comes in the termination state. All the context of the
process (Process Control Block) will also be deleted the process will be terminated by the
Operating system.

6. Suspend ready
A process in the ready state, which is moved to secondary memory from the main memory due to
lack of the resources (mainly primary memory) is called in the suspend ready state.

If the main memory is full and a higher priority process comes for the execution then the OS
have to make the room for the process in the main memory by throwing the lower priority
process out into the secondary memory. The suspend ready processes remain in the secondary
memory until the main memory gets available.
7. Suspend wait
Instead of removing the process from the ready queue, it's better to remove the blocked process
which is waiting for some resources in the main memory. Since it is already waiting for some
resource to get available hence it is better if it waits in the secondary memory and make room for
the higher priority process. These processes complete their execution once the main memory gets
available and their wait is finished.

Operations on the Process


1. Creation
Once the process is created, it will be ready and come into the ready queue (main memory) and
will be ready for the execution.

2. Scheduling
Out of the many processes present in the ready queue, the Operating system chooses one process
and start executing it. Selecting the process which is to be executed next, is known as scheduling.

3. Execution
Once the process is scheduled for the execution, the processor starts executing it. Process may
come to the blocked or wait state during the execution then in that case the processor starts
executing the other processes.

4. Deletion/killing
Once the purpose of the process gets over then the OS will kill the process. The Context of the
process (PCB) will be deleted and the process gets terminated by the Operating system.

I/O channels
One of the important jobs of an Operating System is to manage various I/O devices including
mouse, keyboards, touch pad, disk drives, display adapters, USB devices, Bit-mapped screen,
LED, Analog-to-digital converter, On/off switch, network connections, audio I/O, printers etc.
An I/O system is required to take an application I/O request and send it to the physical device,
then take whatever response comes back from the device and send it to the application. I/O
devices can be divided into two categories −
 Block devices − A block device is one with which the driver communicates by sending
entire blocks of data. For example, Hard disks, USB cameras, Disk-On-Key etc.
 Character devices − A character device is one with which the driver communicates by
sending and receiving single characters (bytes, octets). For example, serial ports,
parallel ports, sounds cards etc

Device Controllers
Device drivers are software modules that can be plugged into an OS to handle a particular
device. Operating System takes help from device drivers to handle all I/O devices.
The Device Controller works like an interface between a device and a device driver. I/O units
(Keyboard, mouse, printer, etc.) typically consist of a mechanical component and an electronic
component where electronic component is called the device controller.
There is always a device controller and a device driver for each device to communicate with
the Operating Systems. A device controller may be able to handle multiple devices. As an
interface its main task is to convert serial bit stream to block of bytes, perform error correction
as necessary.
Any device connected to the computer is connected by a plug and socket, and the socket is
connected to a device controller. Following is a model for connecting the CPU, memory,
controllers, and I/O devices where CPU and device controllers all use a common bus for
communication.

Synchronous vs asynchronous I/O


 Synchronous I/O − In this scheme CPU execution waits while I/O proceeds
 Asynchronous I/O − I/O proceeds concurrently with CPU execution

Communication to I/O Devices


The CPU must have a way to pass information to and from an I/O device. There are three
approaches available to communicate with the CPU and Device.
 Special Instruction I/O
 Memory-mapped I/O
 Direct memory access (DMA)

Special Instruction I/O

This uses CPU instructions that are specifically made for controlling I/O devices. These
instructions typically allow data to be sent to an I/O device or read from an I/O device.

Memory-mapped I/O

When using memory-mapped I/O, the same address space is shared by memory and I/O
devices. The device is connected directly to certain main memory locations so that I/O device
can transfer block of data to/from memory without going through CPU.

While using memory mapped IO, OS allocates buffer in memory and informs I/O device to use
that buffer to send data to the CPU. I/O device operates asynchronously with CPU, interrupts
CPU when finished.
The advantage to this method is that every instruction which can access memory can be used
to manipulate an I/O device. Memory mapped IO is used for most high-speed I/O devices like
disks, communication interfaces.

Direct Memory Access (DMA)


Slow devices like keyboards will generate an interrupt to the main CPU after each byte is
transferred. If a fast device such as a disk generated an interrupt for each byte, the operating
system would spend most of its time handling these interrupts. So a typical computer uses
direct memory access (DMA) hardware to reduce this overhead.
Direct Memory Access (DMA) means CPU grants I/O module authority to read from or write to
memory without involvement. DMA module itself controls exchange of data between main
memory and the I/O device. CPU is only involved at the beginning and end of the transfer and
interrupted only after entire block has been transferred.
Direct Memory Access needs a special hardware called DMA controller (DMAC) that manages
the data transfers and arbitrates access to the system bus. The controllers are programmed
with source and destination pointers (where to read/write the data), counters to track the
number of transferred bytes, and settings, which includes I/O and memory types, interrupts and
states for the CPU cycles.

The operating system uses the DMA hardware as follows −

Ste Description
p

1 Device driver is instructed to transfer disk data to a buffer address X.

2 Device driver then instruct disk controller to transfer data to buffer.

3 Disk controller starts DMA transfer.


4 Disk controller sends each byte to DMA controller.

5 DMA controller transfers bytes to buffer, increases the memory address, decreases the counter C until C

6 When C becomes zero, DMA interrupts CPU to signal transfer completion.

Polling vs Interrupts I/O


A computer must have a way of detecting the arrival of any type of input. There are two ways
that this can happen, known as polling and interrupts. Both of these techniques allow the
processor to deal with events that can happen at any time and that are not related to the
process it is currently running.

Polling I/O

Polling is the simplest way for an I/O device to communicate with the processor. The process
of periodically checking status of the device to see if it is time for the next I/O operation, is
called polling. The I/O device simply puts the information in a Status register, and the
processor must come and get the information.
Most of the time, devices will not require attention and when one does it will have to wait until it
is next interrogated by the polling program. This is an inefficient method and much of the
processors time is wasted on unnecessary polls.
Compare this method to a teacher continually asking every student in a class, one after
another, if they need help. Obviously the more efficient method would be for a student to inform
the teacher whenever they require assistance.

Interrupts I/O

An alternative scheme for dealing with I/O is the interrupt-driven method. An interrupt is a
signal to the microprocessor from a device that requires attention.
A device controller puts an interrupt signal on the bus when it needs CPU’s attention when
CPU receives an interrupt, It saves its current state and invokes the appropriate interrupt
handler using the interrupt vector (addresses of OS routines to handle various events). When
the interrupting device has been dealt with, the CPU continues with its original task as if it had
never been interrupted.

Memory Management
What is Virtual Memory?
Virtual Memory is a storage mechanism which offers user an illusion of having a
very big main memory. It is done by treating a part of secondary memory as the
main memory. In Virtual memory, the user can store processes with a bigger size
than the available main memory.

Therefore, instead of loading one long process in the main memory, the OS loads
the various parts of more than one process in the main memory. Virtual memory is
mostly implemented with demand paging and demand segmentation.

Why Need Virtual Memory?


Here, are reasons for using virtual memory:

 Whenever your computer doesn’t have space in the physical memory it writes
what it needs to remember to the hard disk in a swap file as virtual memory.
 If a computer running Windows needs more memory/RAM, then installed in
the system, it uses a small portion of the hard drive for this purpose.

How Virtual Memory Works?


 In the modern world, virtual memory has become quite common these days. It
is used whenever some pages require to be loaded in the main memory for
the execution, and the memory is not available for those many pages.

 So, in that case, instead of preventing pages from entering in the main
memory, the OS searches for the RAM space that are minimum used in the
recent times or that are not referenced into the secondary memory to make
the space for the new pages in the main memory.

For example:
Let’s assume that an OS requires 300 MB of memory to store all the running
programs. However, there’s currently only 50 MB of available physical memory
stored on the RAM.

 The OS will then set up 250 MB of virtual memory and use a program called
the Virtual Memory Manager(VMM) to manage that 250 MB.
 So, in this case, the VMM will create a file on the hard disk that is 250 MB in
size to store extra memory that is required.
 The OS will now proceed to address memory as it considers 300 MB of real
memory stored in the RAM, even if only 50 MB space is available.

During the program execution, if the program references a page that may not be
available in the main memory because it was swapped, then the processor
considers it as an invalid memory reference. That’s because the page fault and
transfers send control back from the program to the OS, which demands to store
page back into the memory.

Advantages of Virtual Memory


Here, are pros/benefits of using Virtual Memory:
 Virtual memory helps to gain speed when only a particular segment of
the program is required for the execution of the program.
 It is very helpful in implementing a multiprogramming environment.
 It allows you to run more applications at once.
 It helps you to fit many large programs into smaller programs.
 Common data or code may be shared between memory.
 Process may become even larger than all of the physical memory.
 Data / code should be read from disk whenever required.
 The code can be placed anywhere in physical memory without requiring
relocation.
 More processes should be maintained in the main memory, which
increases the effective use of CPU.
 Each page is stored on a disk until it is required after that, it will be
removed.
 It allows more applications to be run at the same time.
 There is no specific limit on the degree of multiprogramming.
 Large programs should be written, as virtual address space available is
more compared to physical memory.

Disadvantages of Virtual Memory


Here, are drawbacks/cons of using virtual memory:

 Applications may run slower if the system is using virtual memory.


 Likely takes more time to switch between applications.
 Offers lesser hard drive space for your use.
 It reduces system stability.
 It allows larger applications to run in systems that don’t offer enough
physical RAM alone to run them.
 It doesn’t offer the same performance as RAM.
 It negatively affects the overall performance of a system.
 Occupy the storage space, which may be used otherwise for long term
data storage.

Thrashing in Operating System


What is thrashing?
A state in which the CPU performs lesser “productive” work and more “swapping”
is known as thrashing. 
It occurs when there are too many pages in the memory and each page refers to
another one.
The CPU is busy swapping and hence its utilization falls.

Types of CPU Scheduling


Here are two kinds of Scheduling methods:
When scheduling is Preemptive or Non-Preemptive?
To determine if scheduling is preemptive or non-preemptive, consider these four
parameters:

1. A process switches from the running to the waiting state.


2. Specific process switches from the running state to the ready state.
3. Specific process switches from the waiting state to the ready state.
4. Process finished its execution and terminated.

Only conditions 1 and 4 apply, the scheduling is called non- preemptive.

All other scheduling are preemptive.

Important CPU scheduling Terminologies


 Burst Time/Execution Time: It is a time required by the process to complete
execution. It is also called running time.
 Arrival Time: when a process enters in a ready state
 Finish Time: when process complete and exit from a system
 Multiprogramming: A number of programs which can be present in memory
at the same time.
 Jobs: It is a type of program without any kind of user interaction.
 User: It is a kind of program having user interaction.
 Process: It is the reference that is used for both job and user.
 CPU/IO burst cycle: Characterizes process execution, which alternates
between CPU and I/O activity. CPU times are usually shorter than the time of
I/O.

CPU Scheduling Criteria


 A CPU scheduling algorithm tries to maximize and minimize the following:

There are the following algorithms which can be used to schedule the jobs.

1. First Come First Serve


 It is the simplest algorithm to implement. The process with the minimal arrival time will
get the CPU first. The lesser the arrival time, the sooner will the process gets the CPU. It
is the non-preemptive type of scheduling.
 Poor in performance as average wait time is high.
Wait time of each process is as follows −

Process Wait Time : Service Time - Arrival Time

P0 0-0=0

P1 5-1=4

P2 8-2=6

P3 16 - 3 = 13

Average Wait Time: (0+4+6+13) / 4 = 5.75

Shortest Job Next (SJN)


Given: Table of processes, and their Arrival time, Execution time

Process Arrival Time Execution Time Ser

P0 0 5 0

P1 1 3 5
P2 2 8 14

P3 3 6 8

Waiting time of each process is as follows −

Process Waiting Time

P0 0-0=0

P1 5-1=4

P2 14 - 2 = 12

P3 8-3=5

Average Wait Time: (0 + 4 + 12 + 5)/4 = 21 / 4 = 5.25


Priority Based Scheduling
 Each process is assigned a priority. Process with highest priority is to be executed first
and so on.
 Processes with same priority are executed on first come first served basis.
 Priority can be decided based on memory requirements, time requirements or any other
resource requirement.
 Given: Table of processes, and their Arrival time, Execution time, and priority.

Here we are considering 1 is the lowest priority.

Process Arrival Time Execution Time Priority S

P0 0 5 1 0

P1 1 3 2 11

P2 2 8 1 14

P3 3 6 3 5


 Waiting time of each process is as follows −

Process Waiting Time


P0 0-0=0

P1 11 - 1 = 10

P2 14 - 2 = 12

P3 5-3=2

 Average Wait Time: (0 + 10 + 12 + 2)/4 = 24 / 4 = 6

Critical sections:-

The critical section refers to the segment of code where processes access shared
resources, such as common variables and files, and perform write operations on them. Since
processes execute concurrently, any process can be interrupted mid-execution.
The critical section is a code segment where the shared variables can be accessed. An atomic
action is required in a critical section i.e. only one process can execute in its critical section at a
time. All the other processes have to wait to execute in their critical sections.
A diagram that demonstrates the critical section is as follows −
In the above diagram, the entry section handles the entry into the critical section. It acquires the
resources needed for execution by the process. The exit section handles the exit from the
critical section. It releases the resources and also informs the other processes that the critical
section is free.

Rules of Critical Section Problem


The critical section problem needs a solution to synchronize the different processes. The
solution to the critical section problem must satisfy the following conditions −

 Mutual Exclusion
Mutual exclusion implies that only one process can be inside the critical section at any
time. If any other processes require the critical section, they must wait until it is free.

 Progress
Progress means that if a process is not using the critical section, then it should not stop
any other process from accessing it. In other words, any process can enter a critical
section if it is free.

 Bounded Waiting
Bounded waiting means that each process must have a limited waiting time. Itt should
not wait endlessly to access the critical section.
What is Process Synchronization?
Process Synchronization is the task of coordinating the execution of processes in
a way that no two processes can have access to the same shared data and
resources.

It is specially needed in a multi-process system when multiple processes are running


together, and more than one processes try to gain access to the same shared
resource or data at the same time.

This can lead to the inconsistency of shared data. So the change made by one
process not necessarily reflected when other processes accessed the same shared
data. To avoid this type of inconsistency of data, the processes need to be
synchronized with each other.

How Process Synchronization Works?


For Example, process A changing the data in a memory location while another
process B is trying to read the data from the same memory location. There is a high
probability that data read by the second process will be erroneous.
Sections of a Program
Here, are four essential elements of the critical section:

 Entry Section: It is part of the process which decides the entry of a particular
process.
 Critical Section: This part allows one process to enter and modify the shared
variable.
 Exit Section: Exit section allows the other process that are waiting in the
Entry Section, to enter into the Critical Sections. It also checks that a process
that finished its execution should be removed through this Section.
 Remainder Section: All other parts of the Code, which is not in Critical,
Entry, and Exit Section, are known as the Remainder Section.

Mutual exclusion:-

Mutual Exclusion in OS
Only one process can execute its critical sections at any time. No other processes can be
executed in their critical sections. If a process is executing in its critical section and there exist
some processes that wish to enter their critical sections, then only those processes that are not
executing in their remainder section can participate in the decision of which will enter its critical
section next, and this selection can’t be postponed indefinitely. This process is called Mutual
Exclusion.

Requirements for Mutual Exclusion:


1. Mutual Exclusion must be enforced, only one process at a time is allowed into its critical
section among all processes that have critical sections for the same resource or shared object.
2. A process that halts in its non-critical section must do so without interfering with other
processes.
3. It must not be possible for a process requiring access to a critical section to be delayed
indefinitely, no deadlock or starvation can be allowed.
4. When no process is in a critical section, any process that requires entry to its critical section
must be permitted to enter without delay.
5. No assumptions are made about relative process speeds or the number of processes.
6. A process remains inside its critical section for a finite time only.
A deadlock happens in operating system when two or more processes need some resource to
complete their execution that is held by the other process.

In the above diagram, the process 1 has resource 1 and needs to acquire resource 2. Similarly
process 2 has resource 2 and needs to acquire resource 1. Process 1 and process 2 are in
deadlock as each of them needs the other’s resource to complete their execution but neither of
them is willing to relinquish their resources.

Example of Deadlock
 A real-world example would be traffic, which is going only in one direction.
 Here, a bridge is considered a resource.
 So, when Deadlock happens, it can be easily resolved if one car backs up
(Preempt resources and rollback).
 Several cars may have to be backed up if a deadlock situation occurs.
 So starvation is possible.
Ex
ample of deadlock

Coffman Conditions

Mutual Exclusion:-

Hold and Wait:-

No Preemption:-
Circular Wait:-

Deadlock Detection in OS
A deadlock occurrence can be detected by the resource scheduler. A resource
scheduler helps OS to keep track of all the resources which are allocated to different
processes. So, when a deadlock is detected, it can be resolved using the below-
given methods:

Deadlock Avoidance

Deadlock Prevention in OS
It’s important to prevent a deadlock before it can occur. The system checks every
transaction before it is executed to make sure it doesn’t lead the deadlock situations.
Such that even a small change to occur dead that an operation which can lead to
Deadlock in the future it also never allowed process to execute.
Advantages of Deadlock
Here, are pros/benefits of using Deadlock method

 This situation works well for processes which perform a single burst of activity
 No preemption needed for Deadlock.
 Convenient method when applied to resources whose state can be saved and
restored easily
 Feasible to enforce via compile-time checks
 Needs no run-time computation since the problem is solved in system design

Disadvantages of Deadlock
Here, are cons/ drawback of using deadlock method

 Delays process initiation


 Processes must know future resource need
 Pre-empts more often than necessary
 Dis-allows incremental resource requests
 Inherent preemption losses.

Device and File Management:-

What is File System?


A file is a collection of correlated information which is recorded on secondary or non-
volatile storage like magnetic disks, optical disks, and tapes.

It is a method of data collection that is used as a medium for giving input and
receiving output from that program.

In general, a file is a sequence of bits, bytes, or records whose meaning is defined


by the file creator and user.

Every File has a logical location where they are located for storage and retrieval.

Objective of File management System


 It provides I/O support for a variety of storage device types.
 Minimizes the chances of lost or destroyed data
 Helps OS to standardized I/O interface routines for user processes.
 It provides I/O support for multiple users in a multiuser systems environment.
Properties of a File System
 Files are stored on disk or other storage and do not disappear when a user
logs off.
 Files have names and are associated with access permission that permits
controlled sharing.
 Files could be arranged or more complex structures to reflect the relationship
between them.

File structure
A File Structure needs to be predefined format in such a way that an operating
system understands. It has an exclusively defined structure, which is based on its
type.

Three types of files structure in OS:

 A text file: It is a series of characters that is organized in lines.


 An object file: It is a series of bytes that is organized into blocks.
 A source file: It is a series of functions and processes.

File Attributes
A file has a name and data. Moreover, it also stores meta information like file
creation date and time, current size, last modified date, etc. All this information is
called the attributes of a file system.

Here, are some important File attributes used in OS:

 Name: It is the only information stored in a human-readable form.


 Identifier: Every file is identified by a unique tag number within a file system
known as an identifier.
 Location: Points to file location on device.
 Type: This attribute is required for systems that support various types of files.
 Size. Attribute used to display the current file size.
 Protection. This attribute assigns and controls the access rights of reading,
writing, and executing the file.
 Time, date and security: It is used for protection, security, and also used for
monitoring
File Type
It refers to the ability of the operating system to differentiate various types of files like
text files, binary, and source files. However, Operating systems like MS_DOS and
UNIX has the following type of files:

Character Special File


It is a hardware file that reads or writes data character by character, like mouse,
printer, and more.

Ordinary files
 These types of files stores user information.
 It may be text, executable programs, and databases.
 It allows the user to perform operations like add, delete, and modify.

Directory Files
 Directory contains files and other related information about those files. Its
basically a folder to hold and organize multiple files.

Special Files
 These files are also called device files. It represents physical devices like
printers, disks, networks, flash drive, etc.

The File system takes care of the following issues

Difference between Starvation and Deadlock??


3.3 Basic Multicore Concepts: Memory Sharing Styles:-
3.3.1 Uniform Memory Access (UMA):-
Uniform memory access (UMA) is a shared memory architecture used in parallel
computers. All the processors in the UMA model share the physical memory
uniformly. ... In the UMA architecture, each processor may use a private cache.

Uniform Memory Access (UMA)

Figure 3: Bus-based UMA (SMP) shared memory system.

 In the UMA system a shared memory is accessible by all processors through an


interconnection network in the same way a single processor accesses its
memory.
 All processors have equal access time to any memory location. The
interconnection network used in the UMA can be a single bus, multiple buses,
or a crossbar switch.
 Because access to shared memory is balanced, these systems are also called
SMP (symmetric multiprocessor) systems. Each processor has equal
opportunity to read/write to memory, including equal access speed.
o A typical bus-structured SMP computer, as shown in Fig. 3, attempts to
reduce contention for the bus by fetching instructions and data directly
from each individual cache, as much as possible.
o In the extreme, the bus contention might be reduced to zero after the
cache memories are loaded from the global memory, because it is
possible for all instructions and data to be completely contained within
the cache.
 This memory organization is the most popular among shared memory
systems. Examples of this architecture are Sun Starfire servers, HP V series,
and Compaq AlphaServer GS, Silicon Graphics Inc. multiprocessor servers.

Nonuniform Memory Access (NUMA)

Figure 4: NUMA shared memory system.

 In the NUMA system, each processor has part of the shared memory attached
(see Fig. 4).
 The memory has a single address space. Therefore, any processor could access
any memory location directly using its real address. However, the access time
to modules depends on the distance to the processor. This results in a
nonuniform memory access time.
 A number of architectures are used to interconnect processors to memory
modules in a NUMA. Among these are the tree and the hierarchical bus
networks.
 Examples of NUMA architecture are BBN TC-2000, SGI Origin 3000, and Cray
T3E.

UMA and NUMA are shared memory models. Multiprocessors are divided among these type of
categories. In UMA, Uniform Memory Access, a single memory controller is used and it is
applicable for general purpose applications and time sharing applications. In NUMA, Non-
Uniform Memory Access, multi memory controllers are used. NUMA is suitable for real-time
applications and time critical applications.
 Following are the important differences between UMA and NUMA.

Sr. No. Key UMA NUMA

Definition UMA stands NUMA


for Uniform stands for
1 Memory Non Uniform
Access. Memory
Access.

Memory UMA has NUMA has


Controller single multiple
2
memory memory
controller. controllers.

Memory UMA NUMA


Access memory memory
access is accsss is
3
slow. faster than
UMA
memory.

Bandwidth UMA has NUMA has


limited more
4
bandwidth. bandwidth
than UMA.

Suitablity UMA is used NUMA is


in general used in real
5 purpose and time and
time sharing time critical
applications. applications.

Memory UMA has NUMA has


Access equal varying
6
time memory memory
access time. access time.

7 Bus types 3 types of 2 types of


Buses Buses
supported: supported:
Single, Tree,
Multiple and
Sr. No. Key UMA NUMA

Crossbar. hiearchical.

No Remote memory access:-


No Remote Memory Access (abbreviated as NoRMA) is a computer memory architecture for
multiprocessor systems, given its name by Rashid (1987). In a NoRMA architecture, the
address space globally is not unique and the memory is not globally accessible by the
processors.

mobile operating system:-


An OS is a software interface that is responsible for managing and operating
hardware units and assisting the user to use those units. For mobile phones, OSs have
been developed to enable users to use phones in much the same way as personal
computers were used 1 or 2 decades ago.

The most well-known mobile OSs are Android, iOS, Windows phone OS, and
Symbian. The market share ratios of those OSs are Android 47.51%, iOS 41.97%,
Symbian 3.31%, and Windows phone OS 2.57%. There are some other mobile OSs
that are less used (BlackBerry, Samsung, etc.)

A mobile operating system is an operating system that helps to run other application
software on mobile devices. It is the same kind of software as the famous computer
operating systems like Linux and Windows, but now they are light and simple to some
extent.

The operating systems found on smartphones include Symbian OS, iPhone OS, RIM's


BlackBerry, Windows Mobile, Palm WebOS, Android, and Maemo. Android, WebOS, and
Maemo are all derived from Linux. The iPhone OS originated from BSD and NeXTSTEP,
which are related to Unix.

It combines the beauty of computer and hand use devices. It typically contains a cellular
built-in modem and SIM tray for telephony and internet connections. If you buy a
mobile, the manufacturer company chooses the OS for that specific device.
Android Operating System

Android is an open-source mobile OS developed by Google and launched in 2008 [8].


Android is a Linux-based OS that uses Linux 2.6 to provide core services such as
security, memory management, process management, network stack, and a driver
model. It offers a wide range of libraries that enable the app developers to build different
applications. Android applications are usually written in Java programming language 

Apple iOS
Apple iOS is a closed-source code mobile phone OS developed by Apple in 2007; it is
used by Apple-only products (iPhone, iPod, and iPad). The iOS architecture is based on
three layers incorporated with each other. Cocoa touch is a layer that provides some
basic infrastructure used by applications. The second layer is the media layer, which
provides audio services, animation video, image formats, and documents in addition to
providing two-dimensional (2D) and 3D drawings and audio and video support. The third
layer is the core OS, which provides core services such as low-level data types, start-up
services, network connection, and access

Symbian Operating System


Symbian OS is an open-source mobile OS written in C++ programming language
developed by Symbian Ltd. in 1977; it is mostly used by Nokia phones. Symbian OS
consists of multiple layers such as OS libraries, application engines, MKV, servers,
Base-kernel, and hardware interface layer. Symbian was the most prevalent mobile
device OS until 2010, when it was taken over by Android

Symbian operating system is a mobile operating system that provides a high-level of


integration with communication. The Symbian operating system is based on the java
language. It combines middleware of wireless communications and personal
information management (PIM) functionality. The Symbian operating system was
developed by Symbian Ltd in 1998 for the use of mobile phones. Nokia was the first
company to release Symbian OS on its mobile phone at that time.

Windows Phone Operating System


Windows phone OS is a closed-source code mobile OS developed by Microsoft
Corporation and used by multiple smart devices (personal digital assistants,
smartphones, and touch devices). Windows phone OS is based on a compact version
of .Net framework, which gives it an advantage in developing .Net-oriented mobile
applications 
Bada (Samsung Electronics): Bada is a Samsung mobile operating system that
was launched in 2010. The Samsung wave was the first mobile to use the bada
operating system. The bada operating system offers many mobile features, such as 3-D
graphics, application installation, and multipoint-touch.

BlackBerry OS: The BlackBerry operating system is a mobile operating system


developed by Research In Motion (RIM). This operating system was designed
specifically for BlackBerry handheld devices. This operating system is beneficial for the
corporate users because it provides synchronization with Microsoft Exchange, Novell
GroupWise email, Lotus Domino, and other business software when used with the
BlackBerry Enterprise Server.

Harmony OS: The harmony operating system is the latest mobile operating system that
was developed by Huawei for the use of its devices. It is designed primarily for IoT
devices.

Palm OS: The palm operating system is a mobile operating system that was developed
by Palm Ltd for use on personal digital assistants (PADs). It was introduced in 1996.
Palm OS is also known as the Garnet OS.

WebOS (Palm/HP): The WebOS is a mobile operating system that was developed


by Palm. It based on the Linux Kernel. The HP uses this operating system in its mobile
and touchpads.

Functions of OS

An operating system performs various tasks. Let us study them. Several functions of OS are:

1. Memory Management

It is the management of the main or primary memory. Furthermore, whatever program is executed,
it has to be present in the main memory. Therefore, there can be more than one program present at a
time. Hence, it is required to manage the memory.

The operating system:


 Allocates and deallocates the memory.

 Keeps a record of which part of primary memory is used by whom and how much.

 Distributes the memory while multiprocessing.

2. Processor Management/Scheduling

When more than one process runs on the system the OS decides how and when a process will use
the CPU. Hence, the name is also CPU Scheduling. The OS:

 Allocates and deallocates processor to the processes.

 Keeps record of CPU status.

3. Device Management

The processes may require devices for their use. This management is done by the OS. The OS:

 Allocates and deallocates devices to different processes.

 keep records of the devices.

 Decides which process can use which device for how much time.

4. File Management

The files on a system are stored in different directories. The OS:

 keeps records of the status and locations of files.

 Allocates and deallocates resources.

5. Security

The OS keeps the system and programs safe and secure through authentication. A user id and
password decide the authenticity of the user.

6. Other Functions

Some other functions of the OS can be:

 Error detection.

 keeping a record of system performance.


 Communication between different software etc.
Android Operating System

Android is a mobile operating system based on a modified version of the Linux kernel and other
open-source software, designed primarily for touchscreen mobile devices such as smartphones
and tablets. Android is developed by a partnership of developers known as the Open Handset
Alliance and commercially sponsored by Google. It was disclosed in November 2007, with the
first commercial Android device, the HTC Dream, launched in September 2008.

It is free and open-source software. Its source code is Android Open Source Project (AOSP),
primarily licensed under the Apache License. However, most Android devices dispatch with
additional proprietary software pre-installed, mainly Google Mobile Services (GMS), including
core apps such as Google Chrome, the digital distribution platform Google Play and the
associated Google Play Services development platform.

o About 70% of Android Smartphone runs Google's ecosystem, some with vendor-
customized user interface and some with software suite, such as TouchWizand
later One UI by Samsung, and HTC Sense.
o Competing Android ecosystems and forksinclude Fire OS (developed by Amazon)
or LineageOS. However, the "Android" name and logo are trademarks of Google
which impose standards to restrict "uncertified" devices outside their ecosystem
to use android branding.
o Why Android ?
o
o Features of Android
o Android is a powerful operating system competing with Apple 4GS and supports great
features. Few of them are listed below −

Sr.No Feature & Description


.

1
Beautiful UI
Android OS basic screen provides a beautiful and intuitive user interface.

2
Connectivity
GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC
and WiMAX.

3
Storage
SQLite, a lightweight relational database, is used for data storage
purposes.

4
Media support
H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, AAC 5.1,
MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP.

5
Messaging
SMS and MMS

6
Web browser
Based on the open-source WebKit layout engine, coupled with Chrome's
V8 JavaScript engine supporting HTML5 and CSS3.

7
Multi-touch
Android has native support for multi-touch which was initially made
available in handsets such as the HTC Hero.

8
Multi-tasking
User can jump from one task to another and same time various application
can run simultaneously.

9
Resizable widgets
Widgets are resizable, so users can expand them to show more content or
shrink them to save space.

10
Multi-Language
Supports single direction and bi-directional text.

11
GCM
Google Cloud Messaging (GCM) is a service that lets developers send
short message data to their users on Android devices, without needing a
proprietary sync solution.

12
Wi-Fi Direct
A technology that lets apps discover and pair directly, over a high-
bandwidth peer-to-peer connection.

13
Android Beam
A popular NFC-based technology that lets users instantly share, just by
touching two NFC-enabled phones together.

Features of Android Operating System

Below are the following unique features and characteristics of the android operating
system, such as:

1. Near Field Communication (NFC)

Most Android devices support NFC, which allows electronic devices to interact across short
distances easily. The main goal here is to create a payment option that is simpler than carrying
cash or credit cards, and while the market hasn't exploded as many experts had predicted, there
may be an alternative in the works, in the form of Bluetooth Low Energy (BLE).

2. Infrared Transmission

The Android operating system supports a built-in infrared transmitter that allows you to use
your phone or tablet as a remote control.

3. Automation
The Tasker app allows control of app permissions and also automates them.

4. Wireless App Downloads

You can download apps on your PC by using the Android Market or third-party options
like AppBrain. Then it automatically syncs them to your Droid, and no plugging is required.

5. Storage and Battery Swap

Android phones also have unique hardware capabilities. Google's OS makes it possible to
upgrade, replace, and remove your battery that no longer holds a charge. In addition, Android
phones come with SD card slots for expandable storage.

6. Custom Home Screens

While it's possible to hack certain phones to customize the home screen, Android comes with
this capability from the get-go. Download a third-party launcher like Apex, Nova, and you can
add gestures, new shortcuts, or even performance enhancements for older-model devices.

7. Widgets

Apps are versatile, but sometimes you want information at a glance instead of having to open
an app and wait for it to load. Android widgets let you display just about any feature you choose
on the home screen, including weather apps, music widgets, or productivity tools that helpfully
remind you of upcoming meetings or approaching deadlines.

8. Custom ROMs

Because the Android operating system is open-source, developers can twist the current OS and
build their versions, which users can download and install in place of the stock OS. Some are
filled with features, while others change the look and feel of a device. Chances are, if there's a
feature you want, someone has already built a custom ROM for it.

Architecture of Android OS
The android architecture contains a different number of components to support any android
device needs. Android software contains an open-source Linux Kernel with many C/C++ libraries
exposed through application framework services.

Among all the components, Linux Kernel provides the main operating system functions to
Smartphone and Dalvik Virtual Machine (DVM) to provide a platform for running an android
application. An android operating system is a stack of software components roughly divided
into five sections and four main layers, as shown in the below architecture diagram.
o Applications
o Application Framework
o Android Runtime
o Platform Libraries
o Linux Kernel

1. Applications

An application is the top layer of the android architecture. The pre-installed applications like
camera, gallery, home, contacts, etc., and third-party applications downloaded from the play
store like games, chat applications, etc., will be installed on this layer.

It runs within the Android run time with the help of the classes and services provided by the
application framework.

2. Application framework

Application Framework provides several important classes used to create an Android


application. It provides a generic abstraction for hardware access and helps in managing the
user interface with application resources. Generally, it provides the services with the help of
which we can create a particular class and make that class helpful for the Applications creation.
It includes different types of services, such as activity manager, notification manager, view
system, package manager etc., which are helpful for the development of our application
according to the prerequisite.

The Application Framework layer provides many higher-level services to applications in the form
of Java classes. Application developers are allowed to make use of these services in their
applications. The Android framework includes the following key services:

o Activity Manager: Controls all aspects of the application lifecycle and activity stack.
o Content Providers: Allows applications to publish and share data with other
applications.
o Resource Manager: Provides access to non-code embedded resources such as strings,
colour settings and user interface layouts.
o Notifications Manager: Allows applications to display alerts and notifications to the
user.
o View System: An extensible set of views used to create application user interfaces.

3. Application runtime

Android Runtime environment contains components like core libraries and the Dalvik virtual
machine (DVM). It provides the base for the application framework and powers our application
with the help of the core libraries.

Like Java Virtual Machine (JVM), Dalvik Virtual Machine (DVM) is a register-based virtual


machine designed and optimized for Android to ensure that a device can run multiple instances
efficiently.

It depends on the layer Linux kernel for threading and low-level memory management. The core
libraries enable us to implement android applications using the
standard JAVA or Kotlin programming languages.

4. Platform libraries

The Platform Libraries include various C/C++ core libraries and Java-based libraries such as
Media, Graphics, Surface Manager, OpenGL, etc., to support Android development.

o app: Provides access to the application model and is the cornerstone of all Android
applications.
o content: Facilitates content access, publishing and messaging between applications and
application components.
o database: Used to access data published by content providers and includes SQLite
database, management classes.
o OpenGL: A Java interface to the OpenGL ES 3D graphics rendering API.
o os: Provides applications with access to standard operating system services, including
messages, system services and inter-process communication.
o text: Used to render and manipulate text on a device display.
o view: The fundamental building blocks of application user interfaces.
o widget: A rich collection of pre-built user interface components such as buttons, labels,
list views, layout managers, radio buttons etc.
o WebKit: A set of classes intended to allow web-browsing capabilities to be built into
applications.
o media: Media library provides support to play and record an audio and video format.
o surface manager: It is responsible for managing access to the display subsystem.
o SQLite: It provides database support, and FreeType provides font support.
o SSL: Secure Sockets Layer is a security technology to establish an encrypted link between
a web server and a web browser.

5. Linux Kernel

Linux Kernel is the heart of the android architecture. It manages all the available drivers such as
display, camera, Bluetooth, audio, memory, etc., required during the runtime.

The Linux Kernel will provide an abstraction layer between the device hardware and the other
android architecture components. It is responsible for the management of memory, power,
devices etc. The features of the Linux kernel are:

o Security: The Linux kernel handles the security between the application and the system.
o Memory Management: It efficiently handles memory management, thereby providing
the freedom to develop our apps.
o Process Management: It manages the process well, allocates resources to processes
whenever they need them.
o Network Stack: It effectively handles network communication.
o Driver Model: It ensures that the application works properly on the device and hardware
manufacturers responsible for building their drivers into the Linux build.

Android Applications
Android applications are usually developed in the Java language using the Android Software
Development Kit. Once developed, Android applications can be packaged easily and sold out
either through a store such as Google Play, SlideME, Opera Mobile Store, Mobango, F-
droid or the Amazon Appstore.

Android powers hundreds of millions of mobile devices in more than 190 countries around the
world. It's the largest installed base of any mobile platform and growing fast. Every day more
than 1 million new Android devices are activated worldwide.

Android Emulator
The Emulator is a new application in the Android operating system. The Emulator is a new
prototype used to develop and test android applications without using any physical device.

The android emulator has all of the hardware and software features like mobile devices except
phone calls. It provides a variety of navigation and control keys. It also provides a screen to
display your application. The emulators utilize the android virtual device configurations. Once
your application is running on it, it can use services of the android platform to help other
applications, access the network, play audio, video, store, and retrieve the data.

Advantages of Android Operating System


We considered every one of the elements on which Android is better as thought about than
different platforms. Below are some important advantages of Android OS, such as:

o Android Google Developer: The greatest favourable position of Android is Google.


Google claims an android operating system. Google is a standout amongst the most
trusted and rumoured item on the web. The name Google gives trust to the clients to
purchase Android gadgets.
o Android Users: Android is the most utilized versatile operating system. More than a
billion individuals clients utilize it. Android is likewise the quickest developing operating
system in the world. Various clients increment the number of applications and
programming under the name of Android.
o Android Multitasking: The vast majority of us admire this component of Android.
Clients can do heaps of undertakings on the double. Clients can open a few applications
on the double and oversee them very. Android has incredible UI, which makes it simple
for clients to do multitasking.
o Google Play Store App: The best part of Android is the accessibility of many
applications. Google Play store is accounted for as the world's largest mobile store. It has
practically everything from motion pictures to amusements and significantly more. These
things can be effortlessly downloaded and gotten to through an Android phone.
o Android Notification and Easy Access: Without much of a stretch, one can access their
notice of any SMS, messages, or approaches their home screen or the notice board of
the android phone. The client can view all the notifications on the top bar. Its UI makes it
simple for the client to view more than 5 Android notices immediately.
o Android Widget: Android operating system has a lot of widgets. This gadget improves
the client encounter much and helps in doing multitasking. You can include any gadget
relying on the component you need on your home screen. You can see warnings,
messages, and a great deal more use without opening applications.

Disadvantages of Android Operating System


We know that the Android operating system has a considerable measure of interest for users
nowadays. But at the same time, it most likely has a few weaknesses. Below are the following
disadvantages of the android operating system, such as:

o Android Advertisement pop-ups: Applications are openly accessible in the Google play


store. Yet, these applications begin demonstrating tons of advertisements on the
notification bar and over the application. This promotion is extremely difficult and makes
a massive issue in dealing with your Android phone.
o Android require Gmail ID: You can't get to an Android gadget without your email ID or
password. Google ID is exceptionally valuable in opening Android phone bolts as well.
o Android Battery Drain: Android handset is considered a standout amongst the most
battery devouring operating systems. In the android operating system, many processes
are running out of sight, which brings about the draining of the battery. It is difficult to
stop these applications as the lion's share of them is system applications.
o Android Malware/Virus/Security: Android gadget is not viewed as protected when
contrasted with different applications. Hackers continue attempting to take your data. It
is anything but difficult to target any Android phone, and each day millions of attempts
are done on Android phones.

3.5.4 Applications of Mobile OS (Assignment)

3.6 Distributed Operating Systems


3.6.1 Concept Need and Features
3.6.2 Examples of Distributed OS with brief introduction
3.6.3 Applications of Distributed OS

A distributed operating system is system software over a collection of independent,


networked, communicating, and physically separate computational nodes. They handle
jobs which are serviced by multiple CPUs. Each individual node holds a specific software subset
of the global aggregate operating system.

A distributed operating system (DOS) is an essential type of operating system. Distributed


systems use many central processors to serve multiple real-time applications and users. As a
result, data processing jobs are distributed between the processors.

It connects multiple computers via a single communication channel. Furthermore, each of these
systems has its own processor and memory. Additionally, these CPUs communicate via high-
speed buses or telephone lines. Individual systems that communicate via a single channel are
regarded as a single entity. They're also known as loosely coupled systems.
This operating system consists of numerous computers, nodes, and sites joined together
via LAN/WAN lines. It enables the distribution of full systems on a couple of center processors,
and it supports many real-time products and different users. Distributed operating systems can
share their computing resources and I/O files while providing users with virtual machine
abstraction.

Types of Distributed Operating System


There are various types of Distributed Operating systems. Some of them are as follows:

1. Client-Server Systems
2. Peer-to-Peer Systems
3. Middleware
4. Three-tier
5. N-tier

Client-Server System
This type of system requires the client to request a resource, after which the server gives the
requested resource. When a client connects to a server, the server may serve multiple clients at
the same time.
Client-Server Systems are also referred to as "Tightly Coupled Operating Systems". This system
is primarily intended for multiprocessors and homogenous multicomputer. Client-Server
Systems function as a centralized server since they approve all requests issued by client systems.

Server systems can be divided into two parts:

1. Computer Server System

This system allows the interface, and the client then sends its own requests to be executed as an
action. After completing the activity, it sends a back response and transfers the result to the
client.

2. File Server System

It provides a file system interface for clients, allowing them to execute actions like file creation,
updating, deletion, and more.

Peer-to-Peer System
The nodes play an important role in this system. The task is evenly distributed among the nodes.
Additionally, these nodes can share data and resources as needed. Once again, they require a
network to connect.

The Peer-to-Peer System is known as a "Loosely Couple System". This concept is used in
computer network applications since they contain a large number of processors that do not
share memory or clocks. Each processor has its own local memory, and they interact with one
another via a variety of communication methods like telephone lines or high-speed buses.

Middleware
Middleware enables the interoperability of all applications running on different operating
systems. Those programs are capable of transferring all data to one other by using these
services.

Three-tier
The information about the client is saved in the intermediate tier rather than in the client, which
simplifies development. This type of architecture is most commonly used in online applications.

N-tier
When a server or application has to transmit requests to other enterprise services on the
network, n-tier systems are used.
Features of Distributed Operating System
There are various features of the distributed operating system. Some of them are as follows:

Openness

It means that the system's services are freely displayed through interfaces. Furthermore, these
interfaces only give the service syntax. For example, the type of function, its return type,
parameters, and so on. Interface Definition Languages are used to create these interfaces (IDL).

Scalability

It refers to the fact that the system's efficiency should not vary as new nodes are added to the
system. Furthermore, the performance of a system with 100 nodes should be the same as that of
a system with 1000 nodes.

Resource Sharing

Its most essential feature is that it allows users to share resources. They can also share resources
in a secure and controlled manner. Printers, files, data, storage, web pages, etc., are examples of
shared resources.

Flexibility

A DOS's flexibility is enhanced by modular qualities and delivers a more advanced range of
high-level services. The kernel/ microkernel's quality and completeness simplify the
implementation of such services.

Transparency

It is the most important feature of the distributed operating system. The primary purpose of a
distributed operating system is to hide the fact that resources are shared. Transparency also
implies that the user should be unaware that the resources he is accessing are shared.
Furthermore, the system should be a separate independent unit for the user.

Heterogeneity

The components of distributed systems may differ and vary in operating systems, networks,
programming languages, computer hardware, and implementations by different developers.

Fault Tolerance

Fault tolerance is that process in which user may continue their work if the software or hardware
fails.
Examples of Distributed Operating System
There are various examples of the distributed operating system. Some of them are as follows:

Solaris

It is designed for the SUN multiprocessor workstations

OSF/1

It's compatible with Unix and was designed by the Open Foundation Software Company.

Micros

The MICROS operating system ensures a balanced data load while allocating jobs to all nodes in
the system.

DYNIX

It is developed for the Symmetry multiprocessor computers.

Locus

It may be accessed local and remote files at the same time without any location hindrance.

Mach

It allows the multithreading and multitasking features.

Applications of Distributed Operating System


There are various applications of the distributed operating system. Some of them are as follows:

Network Applications

DOS is used by many network applications, including the Web, peer-to-peer networks,
multiplayer web-based games, and virtual communities.

Telecommunication Networks

DOS is useful in phones and cellular networks. A DOS can be found in networks like the Internet,
wireless sensor networks, and routing algorithms.

Parallel Computation
DOS is the basis of systematic computing, which includes cluster computing and grid
computing, and a variety of volunteer computing projects.

Real-Time Process Control

The real-time process control system operates with a deadline, and such examples include
aircraft control systems.

Advantages and Disadvantages of Distributed Operating


System
There are various advantages and disadvantages of the distributed operating system. Some of
them are as follows:

Advantages
There are various advantages of the distributed operating system. Some of them are as follow:

1. It may share all resources (CPU, disk, network interface, nodes, computers, and so on)
from one site to another, increasing data availability across the entire system.
2. It reduces the probability of data corruption because all data is replicated across all sites;
if one site fails, the user can access data from another operational site.
3. The entire system operates independently of one another, and as a result, if one site
crashes, the entire system does not halt.
4. It increases the speed of data exchange from one site to another site.
5. It is an open system since it may be accessed from both local and remote locations.
6. It helps in the reduction of data processing time.
7. Most distributed systems are made up of several nodes that interact to make them fault-
tolerant. If a single machine fails, the system remains operational.

Disadvantages
There are various disadvantages of the distributed operating system. Some of them are as
follows:

1. The system must decide which jobs must be executed when they must be executed, and
where they must be executed. A scheduler has limitations, which can lead to
underutilized hardware and unpredictable runtimes.
2. It is hard to implement adequate security in DOS since the nodes and connections must
be secured.
3. The database connected to a DOS is relatively complicated and hard to manage in
contrast to a single-user system.
4. The underlying software is extremely complex and is not understood very well compared
to other systems.
5. The more widely distributed a system is, the more communication latency can be
expected. As a result, teams and developers must choose between availability,
consistency, and latency.
6. These systems aren't widely available because they're thought to be too expensive.
7. Gathering, processing, presenting, and monitoring hardware use metrics for big clusters
can be a real issue.

You might also like