Operating System - Report
Operating System - Report
Faculty of Science
Computer Science Dept.-4th Stage
Academic Year 2021-2022
Evolution
of
Operating System
2
Abstract
We looked back on the first half century of operating systems and selected our favorite papers on
classic operating systems. These papers span the entire history of the field from the batch
processing systems of the 1950s to the distributed systems of the 1990s. Each section describes an
operating system that combines significant ideas in an elegant way. Most of these topics were
written by the pioneers who had the visions and the drive to make them work. We summarized
each paper and concluded that operating systems are based on a surprisingly small number of ideas
of permanent interest.
3
Introduction
Operating systems have evolved from slow and expensive systems to present-day technology
where computing power has reached exponential speeds and relatively inexpensive costs. In the
beginning, computers were manually loaded with program code to control computer functions and
process code related to business logic. This type of computing introduced problems with program
scheduling and setup time. As more users demanded increased computer time and resources,
computer scientists determined they needed a system to improve convenience, efficiency, and
growth (Stallings, 2009, p. 51). As a result, they created an operating system (OS) to process jobs
in batches. Later they created Multitasking and Time-Sharing to run multiple jobs and allow user
interaction to improve efficiency. Multitasking brought challenges to manage I/O operations
required by multiple jobs in which computer vendors resolved with interrupts [1].
Early evolution
1. 1945: ENIAC, Moore School of Engineering, University of Pennsylvania.
The ENIAC (Electronic Numerical Integrator and Computer) is arguably the first general-
purpose electronic computer (the first was really the Colossus, but its very existence was
shrouded in secrecy for decades). It was created for a very specific purpose: to compute
firing tables for the military. These firing tables were used in combat to find the proper
angle of elevation for a gun, taking into account the temperature, wind direction, and type
of ammunition. As gun production rolled into high gear during World War II and an ever-
larger array of guns were manufactured, the army was facing a tremendous backlog of
calculations. This led to funding the ENIAC project as an attempt to solve these problems.
The machine contained:
✓ an internal memory of 200 decimal digits
✓ I/O speed of 8,000 decimal digits per minute
✓ computation speed of 5,000 operations per second
✓ built with 18,000 vacuum tubes and consumed 100,000 watts (40,000 watts went
to the tube filaments and were converted to heat)
✓ programmed through patch panels and switches
✓ data read from punched cards
2. 1949: EDSAC and EDVAC
Computers get memory
The EDVAC (Electronic Discrete Variable Automatic Computer) and EDSAC (Electronic
Delay Storage Automatic Calculator) were both completed in 1949. The EDVAC was the
successor to the ENIAC. The EDSAC was a project headed by Maurice Wilkes at the
computing laboratory at Cambridge University and built based on the EDVAC proposal.
Both were stored program computers: instructions could be run from the computer’s
memory rather than be hard-wired. They used John von Neumann’s architecture where the
computer’s program code resides in the same storage as the data. Mercury delay lines were
used for the system’s memory. These were long sealed tubes containing mercury. Data was
represented as waves in the fluid. It entered via a transducer, propagated through the fluid,
and was extracted via a transducer at the far end. At that point the computer could read the
data (into vacuum tubes) or cycle it back for recirculation through the mercury tube. The
EDSAC had a whopping 512 35-bit words of memory.
4
3. 1949 BINAC – a successor to the ENIAC
Programming languages
The first precursor to a programming language appeared: John Mauchly’s Short Order
Code. It featured a simple algebraic interpreter. A programmer could write in pseudocode
rather than in the code of the actual machine. This pseudocode could include a set of
“subroutines”. These weren’t subroutines in the sense that we know them. The program
looked at each statement, jumped to the required subroutine, executed it, and looped back.
The concept of a stack and the return instruction came later.
4. 1951: UNIVAC by Remington
Reusable code
The concepts of code sharing emerge. A standard set of mathematical subroutines was
created. These were written on paper and copied (onto the card punch) as needed.
Unfortunately, programmers don’t always copy very accurately, so debugging was often
needed. John Mauchly estimated that there were perhaps twelve organizations in the world
that needed and could afford a UNIVAC. Over 45 were sold
5. 1952: IBM 701
True reusable code and a real assembler
The 701 was IBM’s first commercial scientific computer. It contained 1,024 words of
random-access memory and used plastic magnetic tape as a storage medium. The computer
featured a modular construction; it was built in several units that would be shipped to the
customer where it would undergo final connections. This contrasts with earlier machines
like the UNIVAC that had to be fully assembled at the customer site.
The 701 brought about:
✓ The emergence of an assembler-style language: IBM Speed Coding
✓ SHARE (Society to Help Alleviate Redundant Effort), an IBM user organization,
was created. It maintained a repository of common routines. For example, if you
needed code for advancing the tape to a certain position and writing a block of data,
you could get it from SHARE. These shared I/O routines were the precursor
to device drivers found in today’s operating systems.
6. 1956: The interrupt
The UNIVAC 1103A introduced the interrupt. Upon receiving an interrupt, the processor
would store the value of its program counter in a fixed memory location and the program
counter would be replaced with a preset address, forcing execution to switch to an interrupt
service routine. To return, the interrupt service routine would branch to the value that was
stored in the special memory location. One way in which the interrupt was used was to
allow lower-priority batch processes to run in between war game simulation programs at
the Army’s Operations Research Office. This was the precursor to time-sharing, which
would dominate operating system design for decades to come.
7. 1954–1957: FORTRAN was developed
A high-level language
With high-level languages, programmers no longer had to understand the architecture of a
computer. Early compilers, including early FORTRAN (Formula Translator) had to fit in
1,024 12-character words and still leave enough room for data. It often took two hours to
compile a program because the tape units were kept busy prefetching data [2].
5
Operating Systems - Late 1950s
By the late 1950s Operating systems were well improved and started supporting following usages:
1. It was able to perform Single stream batch processing.
2. It could use Common, standardized, input/output routines for device access.
3. Program transition capabilities to reduce the overhead of starting a new job was added.
4. Error recovery to clean up after a job terminated abnormally was added.
5. Job control languages that allowed users to specify the job definition and resource
requirements were made possible [3].
6
4. Modular Architecture:
Refers to the design of any system composed of separate components that can be connected
together. The beauty of modular architecture is that you can replace or add any one
component (module) without affecting the rest of the system. The opposite of a modular
architecture is an integrated architecture, in which no clear divisions exist between
components. The term modular can apply to both hardware and software. Modular software
design, for example, refers to a design strategy in which a system is composed of relatively
small and autonomous routines that fit together [7].
5. Personal, interactive systems came into existence.
This module is about the design and evaluation of a class of systems that were not even
envisaged until relatively recently. Until the 1980s almost all commercial computer
systems were non-interactive. Computer operators would set-up the machines to read in
large volumes of data – say customers bank details and transactions – and the computer
would then process each input and generate appropriate output [8].
7
systems. The work done by batch systems are in parts i.e., one job is processed then
another job in the queue is processed and so on.
Advantages
✓ Repeated jobs are done fast in batch systems without user interaction.
✓ You don’t need special hardware and system support to input data in batch systems.
✓ Best for large organizations but small organizations can also benefit from it.
✓ Batch systems can work offline so it makes less stress on processor.
✓ Processor consumes good time while processing that mean it knows which job to
process next. In real time systems we don’t have expectation time of how long the
job is and what is estimated time to complete it. But in batch systems the processor
knows how long the job is as it is queued.
✓ Sharing of batch system for multiple users.
✓ The idle time batch system is very less.
✓ You can assign specific time for the batch jobs so when the computer is idle it starts
processing the batch jobs i.e., at night or any free time.
✓ The batch systems can manage large repeated work easily.[9]
Disadvantages
8
Example of Simple Batch System
✓ Payroll system:
Batch systems are ideal for making payrolls. The salaries of employees can be
printed at the end of month by the batch systems. So, the statements can be made
easy by using batch systems.
✓ Bank statements:
At the end of month, the bank makes statements for each account holder. So, these
bank statements can be made easily by batch systems at the end of month.[9]
2. Multiprogramming Batch System:
Multiprogramming or multitasking operating systems are those which consumes CPU
or ram efficiently. That mean the CPU keep all times busy and all tasks are given time.
In these systems users get quick response time. But if there are many tasks running on
the RAM then it stops loading more tasks and, in that case, hard drive will be used for
storing some processes [10].
Advantages
✓ CPU is used most of time and never become idle
✓ The system looks fast as all the tasks runs in parallel
✓ Short time jobs are completed faster than long time jobs
✓ Multiprogramming systems support multiply users
✓ Resources are used nicely
✓ Total read time taken to execute program/job decreases
✓ Response time is shorter
✓ In some applications multiple tasks are running and multiprogramming systems
better handle these type of applications [10].
Disadvantages
✓ It is difficult to program a system because of complicated schedule handling
✓ Tracking all tasks/processes is sometimes difficult to handle
✓ Due to high load of tasks, long time jobs have to wait long [10].
9
Example of Multiprogramming Batch System
✓ Microcomputers like as MP/M, XENIX, and ESQview.
✓ Windows O/S
✓ UNIX O/S [11].
3. Multiprocessor System:
A multiprocessor system is a system in which two or more CPU (Central processing
systems) are used. In this type of system two or more processes can be processed in
parallel i.e., at the same time interval.
Advantages
✓ High Throughput:
Throughput is the number of processes executed by the CPU at a given time so
this type of system has higher throughput.
10
✓ Type of parallel processing:
Parallel processing means the execution of multiple processes (also known as
threads) at the same time.
11
4. Desktop System:
A desktop computer is a type of computer that stays in a single location. It is placed on the
desk or table. It is not portable. A desktop computer is usually placed in-home or office. A
desktop computer has a mouse, keyboard and monitors attached to it. You can attach other
hardware components to the desktop computer as well like printer, scanner, projector, TV
cable etc. CPU is a central processing unit. CPU consists of a processor. An example of a
processor is the intel i7 processor. The CPU is placed in the CPU box. The CPU box comes
in a tower shape so this computer is also known as a tower computer or tower PC. The
tower is either in a horizontal shape or in a vertical shape [13].
Advantages:
✓ Typing is done easily on a desktop computer because of the large keyboard.
✓ The computer has high disk space so a lot of information can be stored on the
PC.
✓ Desktop computers are reliable. You can build an online business and rely on
computers easily.
✓ Presentations can be made easily on a desktop PC. You can make presentations
with different software like MS PowerPoint.
✓ Desktop computers need extra care like you have to clean them daily because
they can catch dust easily.
✓ These computers have a low maintenance cost. You can repair any part of a
computer easily by going to the nearest computer shop.
✓ Data is stored on online desktop computers that are also known as cloud storage.
They can store websites/apps data and they provide data availability 24 hours.
✓ You can attach a large monitor screen to a desktop computer also.
✓ You can attach a gaming keyboard and mouse to the desktop PC and play games
with hard hands also [13].
Disadvantage
✓ It is expensive to buy a desktop computer.
✓ Desktop computer user usually wastes their time by watching movies.
✓ There are addictive games on the computer that can take a lot of time for
computer users.
✓ Extra noise of desktop PC listens when it operates.
✓ A desktop computer requires extra space to place and also you will need a
dedicated room to place a desktop computer.
✓ By default, desktop computers do not come with built-in Bluetooth and
infrared.
✓ Your computer has to always plugin to power to use the computer.
✓ After the invention of the computer, most jobs are shifted to the computer and
people also lost their jobs because they are not computer literate.
12
✓ The computer is an electronic device that can consume a lot of electricity. If
you use the computer for a longer time then your electricity bill increases.
✓ As desktop computers don’t have battery backup so you have to arrange a UPS
system in your home for electricity backup [13].
Examples of desktop computer
✓ M1 Mac mini
✓ Dell XPS Desktop
✓ HP Envy 32 All-In-One PC
✓ Acer Aspire C 27 All-In-One
✓ Asus Chromebox 3
✓ Dell Inspiron 27 7000 All-In-One
✓ Microsoft Surface Studio 2
✓ Apple iMac with M1[13].
13
Advantages
✓ Cost Effective:
Although distributed systems consist of high implementation costs, they are cost
effective in the long run. Compared to a mainframe computer, where a single
system is composed of several processors, the distributed system is made up of
several computers together. This type of infrastructure is far more cost effective
than a mainframe system.
✓ Efficiency:
Distributed systems are made to be efficient in every aspect since they possess
multiple computers. Each of these computers could work independently to solve
problems. This not only considered to be efficient, it significantly saves time of the
user.
✓ Scalability:
Distributed systems are made on default to be scalable. Whenever there is an
increase in workload, users can add more workstations. There is no need to upgrade
a single system. Moreover, no any restrictions are placed on the number of
machines. Which means that, these machines will be able to handle high demand
workload easily.
✓ Reliability:
The distributed systems are far more reliable than single systems in terms of
failures. Even in the case of a single node malfunctioning, it does not pose problems
to the remaining servers. Other nodes can continue to function fine.
✓ Latency:
Distributed systems result on low latency. If a particular node is located closer to
the user, the distributed system makes sure that the system receives traffic from that
node. Thus, the user could notice much less time it takes to serve them [14].
Disadvantages
✓ Startup Cost:
Compared to a single system, the implementation cost of a distributed system is
significantly higher. The infrastructure used in a distributed system makes it
expensive. In addition to that, constant transmission of information and processing
overhead further increases the cost.
✓ Security:
Distributed systems always come with security risks since it contains open system
characteristics. The data of the user is stored in different workstations. Thus, the
user needs to make sure that their data is secured in each of these computers.
Moreover, unlike in a centralized computing system, it is not an easy task to manage
data access in a distributed system.
✓ Complexity:
The difficulty involved in implementation, maintenance and troubleshooting makes
distributed system a complex strategy. Besides hardware complexity, distributed
system possess difficulty in software too. The software used in distributed system
needs to be well attentive when handling communication and security.
14
✓ Overheads:
Over heading is a common problem faced by a distributed system. This happens
when all the workstations try to operate at once. Even though this essentially brings
desired results, eventually there will be an increase in computing time. This
ultimately impacts the system's response time.
✓ Network Errors:
Distributed systems are prone to network errors which results in communication
breakdown. The information may fail to be delivered or not in the correct sequence.
And also, troubleshooting errors is a difficult task since the data is distributed across
various nodes [14].
Advantages
✓ High Availability:
Although every node in a cluster is a standalone computer, the failure of a single
node doesn't mean a loss of service. A single node could be pulled down for
maintenance while the remaining clusters take on a load of that single node.
✓ Cost Efficiency:
When compared to highly reliable and larger storage mainframe computers, these
types of cluster computing systems are thought to be more cost-effective and
cheaper. Furthermore, most of these systems outperform mainframe computer
systems in terms of performance.
15
✓ Additional Scalability:
A cluster is set up in such a way that more systems could be added to it in minor
increments. Clusters may add systems in a horizontal fashion. It means that
additional systems could be added to clusters to improve their performance, fault
tolerance, and redundancy.
✓ Fault Tolerance:
Clustered systems are quite fault-tolerance, and the loss of a single node does not
result in the system's failure. They might also have one or more nodes in hot standby
mode, which allows them to replace failed nodes.
✓ Performance:
The clusters are commonly used to improve the availability and performance over
the single computer systems, whereas usually being much more cost-effective than
the single computer system of comparable speed or availability.
✓ Processing Speed:
The processing speed is also similar to mainframe systems and other types of
supercomputers on the market [15].
Disadvantages
✓ Cost-Effective:
One major disadvantage of this design is that it is not cost-effective. The cost is
high, and the cluster will be more expensive than a non-clustered server
management design since it requires good hardware and a design.
✓ Required Resources:
Clustering necessitates the use of additional servers and hardware, making
monitoring and maintenance difficult. As a result, infrastructure must be improved.
✓ Maintenance:
It isn't easy to system establishment, monitor, and maintenance this system [15].
Example
✓ Cluster operating systems are a combination of software and hardware clusters.
Hardware clusters aid in the sharing of high-performance disks among all computer
systems, while software clusters give a better environment for all systems to
operate. A cluster system consists of various nodes, each of which contains its
cluster software. The cluster software is installed on each node in the clustered
system, and it monitors the cluster system and ensures that it is operating properly.
If one of the clustered system's nodes fails, the other nodes take over its storage and
resources and try to restart [15].
16
7. Realtime Operating System a Real Time Operating System
commonly known as an RTOS, is a software component that rapidly switches between
tasks, giving the impression that multiple programs are being executed at the same time on
a single processing core [16].
Advantage
✓ Less Downtime:
Al while keeping all devices in active state, a RTOS makes sure that the system
consumes more resources. As a result, a system using RTOS experiences very
less downtime. And also, hosting companies too exhibit maximum results while
using RTOS.
✓ Task Management:
A real time operating system typically takes less amount of time to shift from
one task to another. Usually, it takes 3 microseconds or less to shift tasks. This
type of faster task management ensures critical processes can be achieved on
time.
✓ Efficiency:
A real time operating system focusses on one application at a given time. Most
often this application will be the one which is already running. All others on
queue will be kept in waiting stage. Thus, the critical tasks can be processed on
time within the given deadline for achieving the exact results needed.
✓ Availability:
Due to the fact that a RTOS exhibits maximum results, it is a system which is
available 24/7. Hence, it is best suited for applications that needs to perform
always. Besides that, a RTOS system is capable of supporting different MCU
platforms.
17
✓ Reliability:
Real time operating systems, especially those which are of hard RTOS are
completely free of errors. It ensures a better way of handling errors. Moreover,
operating systems experience an issue known as jitter in which the number of
errors between subsequent loop is measured. If programmed correctly, a RTOS
can be optimized in a way that it undergoes a smaller number of jitters [17].
Disadvantages
✓ Multitasking:
Although a RTOS is capable of concentrating on targeted applications, that is
not the same with multitasking. They are designed to run only few of the tasks.
Therefore, it is not recommended for systems that require multitasking.
✓ Complexity:
Complex algorithms are behind a RTOS interface. It will be difficult for a
normal user to write these algorithms. Only an expert developer will be able to
write and understand them.
✓ Task Focus:
As mentioned earlier, a RTOS focusses on one application at a given time. This
is mainly done to maintain accuracy and reduce errors. All other applications
those are of low priority needs to be on waiting. There is no time limit in how
much time they will be on standby.
✓ Program Crashes:
Program crashes can be frequently experienced while using a real time
operating system. Unlike a regular O/S, a RTOS cannot efficiently separate
memory domains. As a result, processes will have a problem addressing them.
✓ Driver Requirement:
A real time operating system constantly experiences signal interruptions.
Therefore, for achieving steady speed, the required drivers must be installed on
the computer. Whenever an interruption occurs, a RTOS will be able to respond
quickly with the help of drivers [17].
Example
✓ A real-time operating system (RTOS) is an operating system that guarantees a
certain capability within a specified time constraint. For example, an operating
system might be designed to ensure that a certain object was available for a
robot on an assembly line [16].
18
8. Handheld system
Handheld computers, or PDAs (personal digital assistants), are becoming more popular as
the world transitions into a place where people receive their news as it happens, rather than
the day after it happens. Handheld computers allow the owner to take their work with them
wherever they go while staying connected to the Internet. While there are several benefits
to these computers, there are also some drawbacks to handhelds [19].
Advantage
✓ Portability:
One advantage of handheld computers is their portability. They are smaller
than the typical laptop, allowing them to easily be tucked away into a
backpack, briefcase or even one's pocket. Within the classroom, they can
replace notebooks and allow students to access course material faster. They
also provide a new and innovative way to educate. For businesspeople, they
can be easily brought onto airplanes and into meetings.
✓ Price:
Typical desktop and laptop computers can run more than $1,000. The
handheld computer is significantly cheaper. According to Consumer
Search, the Palm TX PDA costs about $260. The Palm Tungsten E2 costs
about $190. So, while these are miniaturized computers, they are hundreds
of dollars cheaper than the larger versions. Handheld computers can be a
cost-effective computing solution for a cash-strapped company, household
or school district [19].
19
Disadvantage
✓ Smaller Keyboards
In the case of handheld computers, the keyboards are smaller than those of
laptop or desktop computers. This can limit use to actions that require
minimal typing, because the small keyboard isn't conducive to productive
word processing. For instance, instead of typing full documents, as one
would on a desktop or laptop computer, the user might only be able to
productively check email and surf the Internet on a handheld device.
✓ Size
While the size of handheld computers is an advantage in portability, it can
be a disadvantage, too. For instance, the smaller in size something is, the
more likely it is to forgotten or stolen. Typically, burglars are looking for
the most valuable thing they can find as quickly as they can get it. Since
handheld computers can be stowed in bags, purses and backpacks, the
probability of them being stolen increases. Furthermore, the smaller
something is, the more likely it is to be lost or misplaced by the owner [18].
Example
✓ Windows CE
✓ EPOC, and
✓ PalmOS [19].
20
Conclusion
Operating systems are an evolving work in progress. Developers learn lessons from previous
concepts to improve the next. Batch Process overcame the problem of scheduling and job setup
posed by Serial Processing. However, it was still an inefficient system causing long delays between
jobs. Both Multitasking and Time-Sharing resolved the issues of processor idle time allowing
multiple jobs and users to interact simultaneously. Hardware vendors have an important role with
improving performance by creating better processors and I/O controls. Current technology
continues using Multitasking and Time-Sharing concepts. However, today graphical user
interfaces incorporate them within desktop environments.
21
References
[1]"The Evolution of Operating Systems", Ukessays.com, 2021. [Online]. Available:
https://www.ukessays.com/essays/information-technology/evolution-of-operating-systems-
information-technology-essay.php. [Accessed: 11- Nov- 2021].
[2]"Operating Systems", People.cs.rutgers.edu, 2021. [Online]. Available:
https://people.cs.rutgers.edu/~pxk/416/notes/01-intro.html. [Accessed: 11- Nov- 2021].
[3]"Operating Systems by the late 1950s", Helpiks.org, 2021. [Online]. Available: https://helpiks.org/9-
53256.html. [Accessed: 11- Nov- 2021].
[4]"Evolution of Operating Systems | Studytonight", Studytonight.com, 2021. [Online]. Available:
https://www.studytonight.com/operating-system/evolution-of-os. [Accessed: 11- Nov- 2021].
[5]"Operating System Concepts ( Multi tasking, multi programming, multi-user, Multi-threading ) |
PadaKuu.com", www.padakuu.com, 2021. [Online]. Available: https://padakuu.com/article/25-
operating-system-concepts-multi-tasking-multi-programming-multi-user-multi-threading. [Accessed:
11- Nov- 2021].
[6]c. program et al., "US10387325B2 - Dynamic address translation for a virtual machine - Google
Patents", Patents.google.com, 2021. [Online]. Available:
https://patents.google.com/patent/US10387325B2/en. [Accessed: 16- Nov- 2021].
[7]"What is Modular Architecture? | Webopedia", Webopedia, 2021. [Online]. Available:
https://www.webopedia.com/definitions/modular-architecture/. [Accessed: 11- Nov- 2021].
[8]"Interactive Systems", Cs.uct.ac.za, 2021. [Online]. Available:
https://www.cs.uct.ac.za/mit_notes/human_computer_interaction/htmls/ch01s03.html. [Accessed:
11- Nov- 2021].
[9]C. beginners, W. systems, J. Rehman and J. Rehman, "What are advantages and disadvantages of batch
processing systems", IT Release, 2021. [Online]. Available: https://www.itrelease.com/2012/12/what-
are-advantages-and-disadvantages-of-batch-processing-systems/. [Accessed: 12- Nov- 2021].
[10]A. systems, J. Rehman and J. Rehman, "Advantages and disadvantages of multiprogramming
systems", IT Release, 2021. [Online]. Available: https://www.itrelease.com/2017/09/advantages-
disadvantages-multiprogramming-systems/. [Accessed: 12- Nov- 2021].
[11]"Multiprogramming Operating System: Examples, Advantage, Disadvantage", DigitalThinkerHelp,
2021. [Online]. Available: https://digitalthinkerhelp.com/what-is-multiprogramming-operating-system-
examples-advantages-disadvantages/. [Accessed: 12- Nov- 2021].
[12]A. systems, J. Rehman and J. Rehman, "Advantages and disadvantages of multiprocessor systems", IT
Release, 2021. [Online]. Available: https://www.itrelease.com/2020/06/advantages-and-
disadvantages-of-multiprocessor-systems/. [Accessed: 12- Nov- 2021].
[13]W. computer, J. Rehman and J. Rehman, "What are advantages and disadvantages of desktop
computer", IT Release, 2021. [Online]. Available: https://www.itrelease.com/2021/10/what-are-
advantages-and-disadvantages-of-desktop-computer/. [Accessed: 12- Nov- 2021].
[14]"5 Advantages and Disadvantages of Distributed System | Limitations & Benefits of Distributed
System", HitechWhizz - The Ultimate Tech Experience, 2021. [Online]. Available:
https://www.hitechwhizz.com/2021/03/5-advantages-and-disadvantages-limitations-benefits-of-
distributed-system.html. [Accessed: 12- Nov- 2021].
22
https://www.hitechwhizz.com/2021/02/5-advantages-and-disadvantages-drawbacks-benefits-of-real-
time-operating-system.html. [Accessed: 16- Nov- 2021].
[18]2021. [Online]. Available: https://www.techwalla.com/articles/how-does-a-docking-station-work.
[Accessed: 16- Nov- 2021].
[19Handheld Operating Systems", pctechguide.com, 2021. [Online]. Available:
https://www.pctechguide.com/pdas-and-other-handhelds/handheld-operating-systems. [Accessed:
17- Nov- 2021].
23