Operating System
Operating System
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.
Diagram:-
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.
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.
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.
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.
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
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.
7 The software The hardware consists of input devices, output devices, memory, etc.
is
categorized
as operating
system,
utilities,
language
processor,
application
software, etc.
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.
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.
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.
Ste Description
p
5 DMA controller transfers bytes to buffer, increases the memory address, decreases the counter C until C
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.
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.
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.
There are the following algorithms which can be used to schedule the jobs.
P0 0-0=0
P1 5-1=4
P2 8-2=6
P3 16 - 3 = 13
P0 0 5 0
P1 1 3 5
P2 2 8 14
P3 3 6 8
P0 0-0=0
P1 5-1=4
P2 14 - 2 = 12
P3 8-3=5
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 −
P1 11 - 1 = 10
P2 14 - 2 = 12
P3 5-3=2
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.
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.
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.
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.
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:-
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
It is a method of data collection that is used as a medium for giving input and
receiving output from that program.
Every File has a logical location where they are located for storage and retrieval.
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.
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.
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.
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.
Crossbar. hiearchical.
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.
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
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
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.
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.
Keeps a record of which part of primary memory is used by whom and how much.
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:
3. Device Management
The processes may require devices for their use. This management is done by the OS. The OS:
Decides which process can use which device for how much time.
4. File Management
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
Error detection.
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 −
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.
Below are the following unique features and characteristics of the android operating
system, such as:
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.
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.
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.
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
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.
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.
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.
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.
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.
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
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
Locus
It may be accessed local and remote files at the same time without any location hindrance.
Mach
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.
The real-time process control system operates with a deadline, and such examples include
aircraft control systems.
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.