Professional Documents
Culture Documents
ES Subject Unit 1 To 5 Answers
ES Subject Unit 1 To 5 Answers
• Microwave ovens
• Washing machines
• Video game consoles
Networked
These systems are connected to a wired or wireless network to perform assigned tasks and provide output to the connected
devices. They are comprised of components like controllers and sensors. Here are some network embedded software
examples:
• ATMs
• Home security systems
• Card swipe machines
Mobile
These systems are smaller in size and easy to use. Though they come with limited memory, people still prefer them due to
their portability and handiness. Here are a few mobile embedded control systems examples:
• Digital cameras
• Mobile phones
• Smart watch
• Fitness tracker
Embedded Systems Application
Here are some of the real-life examples of embedded system applications.
1. Central Heating Systems
Central heating systems convert the chemical energy into thermal energy in a furnace room and transfer that energy into
heat, which is then delivered to numerous spaces within a building. It is important for these systems to have thermostat
controls to adjust the temperature, which is achieved by an embedded system.
If a central heating system isn’t provided with temperature controls, it can lead to overheating one room while leaving
another room cold. The right thermostat controls will allow you to adjust the temperature to a comfortable level and save
energy extensively.
Embedded system examples in central heating can be found in a range of structures that require temperature control, both
for comfort and for management of temperature-sensitive goods.
Examples include:
• Office buildings
• Factories
• Grocery stores
• Homes
• Schools
• Hospitals
2. GPS Systems
The GPS is a navigation system that uses satellites and receivers to synchronize data related to location, time, and velocity.
The receiver or device that receives the data has an integrated embedded system to facilitate the application of a global
positioning system. The embedded GPS devices allow people to find their current locations and destinations easily. Thus,
they are gaining rapid momentum and becoming the most widely used navigation tools for automobiles.
Nowadays, GPS systems are generally used in:
• Cars
• Mobile devices
• Palmtop
3. Fitness Trackers
Fitness trackers are wearable devices that can monitor your health and track activities like sleeping, running, and walking.
These devices use embedded systems to garner data related to your heart rate, body temperature, and the number of
footsteps, which is further sent to servers via WAN like LTE or GPRS.
Fitness trackers are generally used for:
• Monitoring personal activity
• Medical monitoring
• Sports training
4. Medical Devices
Medical devices in healthcare facilities have been incorporating embedded systems for quite some time. A new class of
medical devices use embedded systems to help treat patients who need frequent monitoring and constant attention at
home. These systems are embedded with sensors to gather data related to patients’ health like heart rate, pulse rate, or
readings from implants, which are sent to a cloud where a doctor can review patient data on their device wirelessly. Medical
devices have been widely used for diagnosing and treating patients efficiently, and some of their examples are:
• Pacemaker
• Defibrillator
• Ultrasound scanners
5. Automotive Systems
Automotive embedded systems are designed and installed to enhance the safety of automobiles. Thanks to the safety
systems in vehicles, the traffic fatality rate has plummeted in recent years. Automobile industries are going the extra mile to
reinforce automobiles with advanced technology systems and sensors, which is not possible without embedded systems.
Some key examples of an active safety system include adaptive speed control, car breakdown warning, pedestrian
recognition, merging assistance, airbags, and more. These are a few features anticipated to mitigate the risk of accidents and
foster the demand for embedded systems across the globe.
Some more examples of automotive embedded systems include:
• Car navigation system
• Anti-lock braking system
• Vehicle entertainment system
• Metro stations
• Bus stations
• Railway stations
If you are looking for embedded processor examples in the transportation sector, see some of our customer stories, sharing
how Digi embedded System-on-Modules are designed into transit and vehicle applications:
• EMtest
• TransData
7. ATMs
An automated teller machine (ATM) is a computerized machine used in banking that communicates with a host bank
computer over a network. The bank computer verifies all the data entered by the users and stores all transactions, while the
embedded system in the ATM displays the transaction data and processes inputs from the ATM keyboard.
An ATM is mostly used to:
• Withdraw cash
• Check account balance and transactions details
• Deposit money into another account
8. Factory Robots
Factory robots are designed to perform high-precision tasks under dangerous work conditions. They have an integrated
embedded system to connect different subsystems. In a typical mechanical job, robots employ actuators, sensors, and
software to perceive the environment and derive intended output safely.
Without an embedded system, robots would have to rely on external control or computing systems. This, in turn, can elevate
the safety risks due to delay or failure in the connection link between the factory robot and its external computing system.
Today, as Industry 4.0 comes to fruition, these systems are integrating artificial intelligence and machine learning to make
equipment smarter, safer and more effective — for example, enabling machines to identify defects that the human eye
wouldn't see, and remove these from production.
Factory robots have a range of applications:
• Assembly line
• Quality monitoring
• Welding
• Painting
• Palletizing
9. Electric Vehicle Charging Stations
Electric vehicle charging stations are equipped with charging points or units that supply electric power to charge connected
vehicles. An embedded system resides in the charging station to provide processing for graphics displays, report any issues
with the device and alert technicians when maintenance is required. This embedded solution provides an easy and cost-
effective approach to monitoring and maintaining the charging infrastructure. A number of Digi customers, such
as AddÉnergie, are developing solutions to serve this growing market.
Some of the common uses of electric vehicle charging stations include:
• Charging vehicles
• Swapping batteries
• Parking vehicles
10. Interactive Kiosks
Self-service kiosks are designed to offer services and information to end-users in environments where human employee
presence isn’t possible or cost-effective. For instance, these machines and terminals allow a passenger in an empty airport to
buy a meal at 4 am without interacting with human workers. Interactive kiosks come in all shapes and sizes, from simple
coffee dispensing systems to complex vending machines and fuel stations with high-definition graphics. For this reason, it is
important for embedded developers to work with a scalable product line like Digi ConnectCore® 8X/8M system-on-modules
(SOMs), which support development of product lines with scaling levels of functionality.
An embedded system provides the processing for connected, self-service kiosk machines, offering an interactive consumer
experience. These systems can be developed to function in remote and outdoor environments and deliver information and
services even in extreme weather conditions. They can also eliminate downtime for real-time applications and have
expandable I/O options designed for workload consolidation.
Apart from airports, interactive kiosk machines are mostly found in:
3 What are the different quality attributes to be considered in an embedded system design.
4 Discuss the operational quality attributes of an embedded system.
Same question in 3
9 Explain the different classifications of embedded system. Give an example for each.
10 Explain the quality attributes maintainability and portability in the embedded system design context.
Same question in 4 q
UNIT -2
What are the components used as the core of an embedded system. Explain the merits, drawbacks and the applications
1
where they are commonly used.
Embedded systems are specialized computing systems designed to perform dedicated functions or
tasks within larger systems. They are commonly found in various applications, ranging from consumer
electronics and automotive systems to industrial control and medical devices. The core components of
an embedded system include:
1. Microcontroller/Microprocessor:
• Merits:
• Cost-Effective: Microcontrollers are often more cost-effective than general-
purpose processors, making them suitable for mass-produced embedded
systems.
• Low Power Consumption: Many microcontrollers are designed for low power
consumption, making them suitable for battery-operated devices.
• Drawbacks:
• Limited Processing Power: Microcontrollers may have limited processing power
compared to more powerful processors, restricting the complexity of tasks they
can handle.
• Applications:
• Consumer electronics (e.g., washing machines, microwave ovens).
• Automotive systems (e.g., engine control units).
2. Memory:
• Merits:
• Fast Access: Memory is crucial for storing and retrieving data quickly.
• Non-Volatile Options: Some embedded systems use non-volatile memory for data
storage, ensuring data retention even when power is removed.
• Drawbacks:
• Limited Capacity: Embedded systems may have limited memory capacity
compared to general-purpose computers.
• Applications:
• Industrial control systems.
• Smartphones and other portable devices.
3. Input/Output (I/O) Interfaces:
• Merits:
• Connectivity: Facilitates communication with external devices and sensors.
• Versatility: Various I/O interfaces support diverse applications.
• Drawbacks:
• Limited Ports: Some embedded systems may have a limited number of I/O ports.
• Applications:
• Home automation systems.
• Industrial automation.
4. Real-Time Clock (RTC):
• Merits:
• Accurate Timekeeping: Important for applications requiring time-dependent
operations.
• Power Efficiency: Allows the system to enter low-power states and wake up at
specific times.
• Drawbacks:
• Cost: May add to the overall cost of the system.
• Applications:
• Smart energy meters.
• Medical devices.
5. Power Supply:
• Merits:
• Efficiency: Efficient power management is crucial for battery-operated devices.
• Voltage Regulation: Ensures stable and reliable operation.
• Drawbacks:
• Complexity: Designing efficient power supplies can be complex.
• Applications:
• Portable devices.
• Internet of Things (IoT) devices.
6. Communication Interfaces:
• Merits:
• Connectivity: Enables communication with other devices or networks.
• Scalability: Supports various communication protocols.
• Drawbacks:
• Complexity: Implementing multiple communication interfaces can add complexity
to the system.
• Applications:
• Networking equipment.
• Automotive communication systems.
7. Sensors and Actuators:
• Merits:
• Data Input: Sensors gather data for the system.
• Control: Actuators enable the system to interact with the physical world.
• Drawbacks:
• Cost: High-quality sensors and actuators can be expensive.
• Applications:
• Embedded systems in robotics.
• Environmental monitoring systems.
In summary, the components of an embedded system are chosen based on the specific requirements
of the application. While they offer advantages such as cost-effectiveness and power efficiency, they
may also have limitations, particularly in terms of processing power and memory capacity. The key is to
carefully match the components with the intended purpose of the embedded system.
2 Give the differences between microprocessor and microcontroller.
Unit – 3
3 Write a short notes on the embedded operating system based embedded firmware approach.
Hey U can find answer in 1st question
4 With a sample code explain the assembly language based embedded firmware development.
5 Elaborate on the advantages of assembly language based development.
Assembly language is a low-level programming language that is specific to a particular computer
architecture. It is a symbolic representation of machine code instructions, making it more human-
readable than raw machine code. While high-level programming languages are often preferred for
their abstraction and ease of use, there are several advantages to using assembly language for
development in certain scenarios:
Unit – 4
Operating System
An operating system or OS is system software that works as an interface between hardware
components and end-user. It enables other programs to run. Each computer system, whether it is
desktop, laptop, tablet, or smartphone, all must have an OS to provide basic functionalities for the
device. Some widely used operating systems are Windows, Linux, MacOS, Android, iOS, etc.
o As discussed above, Kernel is the core part of an OS(Operating system); hence it has full
control over everything in the system. Each operation of hardware and software is managed
and administrated by the kernel.
o It acts as a bridge between applications and data processing done at the hardware level. It is
the central component of an OS.
o It is the part of the OS that always resides in computer memory and enables the
communication between software and hardware components.
o It is the computer program that first loaded on start-up the system (After the bootloader).
Once it is loaded, it manages the remaining start-ups. It also manages memory, peripheral,
and I/O requests from software. Moreover, it translates all I/O requests into data processing
instructions for the CPU. It manages other tasks also such as memory management, task
management, and disk management.
o A kernel is kept and usually loaded into separate memory space, known as protected Kernel
space. It is protected from being accessed by application programs or less important parts
of OS.
o Other application programs such as browser, word processor, audio & video player use
separate memory space known as user-space.
Functions of a Kernel
A kernel of an OS is responsible for performing various functions and has control over the system.
Some main responsibilities of Kernel are given below:
o Device Management
To perform various actions, processes require access to peripheral devices such as a mouse,
keyboard, etc., that are connected to the computer. A kernel is responsible for controlling these
devices using device drivers. Here, a device driver is a computer program that helps or enables the
OS to communicate with any hardware device.
A kernel maintains a list of all the available devices, and this list may be already known, configured
by the user, or detected by OS at runtime.
o Memory Management
The kernel has full control for accessing the computer's memory. Each process requires some
memory to work, and the kernel enables the processes to safely access the memory. To allocate the
memory, the first step is known as virtual addressing, which is done by paging or
segmentation. Virtual addressing is a process of providing virtual address spaces to the processes.
This prevents the application from crashing into each other.
o Resource Management
One of the important functionalities of Kernel is to share the resources between various processes. It
must share the resources in a way that each process uniformly accesses the resource.
The kernel also provides a way for synchronization and inter-process communication (IPC). It is
responsible for context switching between processes.
o Accessing Computer Resources
A kernel is responsible for accessing computer resources such as RAM and I/O devices. RAM or
Random-Access Memory is used to contain both data and instructions. Each program needs to
access the memory to execute and mostly wants more memory than the available. For such a case,
Kernel plays its role and decides which memory each process will use and what to do if the required
memory is not available.
The kernel also allocates the request from applications to use I/O devices such as keyboards,
microphones, printers, etc.
Multi-Processing Operating System is a type of Operating System in which more than one CPU is used for the
execution of resources. It betters the throughput of the System.
Multitasking Operating System is simply a multiprogramming Operating System with having facility of a Round -
Robin Scheduling Algorithm. It can run multiple programs
simultaneously.
• Preemptive Multi-Tasking
• Cooperative Multi-Tasking
•
Advantages of Multi-Tasking Operating System
• Multiple Programs can be executed simultaneously in Multi-Tasking Operating System.
• It comes with proper memory management.
Disadvantages of Multi-Tasking Operating System
• The system gets heated in case of heavy programs multiple times.
5. Time-Sharing Operating Systems
Each task is given some time to execute so that all the tasks work smoothly. Each user gets the time of the CPU as
they use a single system. These systems are also known as Multitasking Systems. The task can be from a single
user or different users also. The time that each task gets to execute is called quantum. After this time interval is
over OS switches over to the next task.
Time-Sharing OS
Advantages of Time-Sharing OS
• Each task gets an equal opportunity.
• CPU idle time can be reduced.
• Time-sharing systems allow multiple users to share hardware resources such as the CPU, memory, and
peripherals, reducing the cost of hardware and increasing efficiency.
• Improved User Experience: Time-sharing provides an interactive environment that allows users to
communicate with the computer in real time, providing a better user experience than batch processing.
Disadvantages of Time-Sharing OS
• Reliability problem.
• Data communication problem.
• Complexity: Time-sharing systems are complex and require advanced software to manage multiple
users simultaneously. This complexity increases the chance of bugs and errors.
• Security Risks: With multiple users sharing resources, the risk of security breaches increases. Time -
sharing systems require careful management of user access, authentication, and authorization to ensure
the security of data and software.
Examples of Time-Sharing OS with explanation
• IBM VM/CMS:
• TSO (Time Sharing Option):
• Windows Terminal Services:
6. Distributed Operating System
These types of operating system is a recent advancement in the world of computer technology and are being widely
accepted all over the world and, that too, at a great pace. Various autonomous interconnected computers
communicate with each other using a shared communication network. Independent systems possess their own
memory unit and CPU. These are referred to
as loosely coupled systems or distributed
systems. These systems’ processors differ in
size and function. The major benefit of working
with these types of the operating system is that
it is always possible that one user can access
the files or software which are not actually
present on his system but some other system
connected within this network i.e., remote access is enabled within the devices connected in that network.
Advantages of RTOS
• Maximum Consumption:
• Task Shifting: The time assigned for shifting tasks in these systems is very less. For example, in older
systems, it takes about 10 microseconds in shifting from one task to another, and in the latest systems,
it takes 3 microseconds.
• Error Free: These types of systems are error-free.
• Memory Allocation: Memory allocation is best managed in these types of systems.
Disadvantages of RTOS
• Limited Tasks: Very few tasks run at the same time and their concentration is very less on a few
applications to avoid errors.
• Use heavy system resources: Sometimes the system resources are not so good and they are
expensive as well.
• Complex Algorithms: The algorithms are very complex and difficult for the designer to write on.
Examples of Real-Time Operating Systems are Scientific experiments, medical imaging systems, industrial control
systems, weapon systems, robots, air traffic control systems, etc.
3 What is a process. With a neat sketch explain the various states associated with a process.
A process has several stages that it passes through from beginning to end. There must be a minimum of five states.
Even though during execution, the process could be in one of these states, the names of the states are not
standardized. Each process goes through several stages throughout its life cycle.
2. User-level threads can be applied to such types of operating systems that do not support threads at the kernel-
level.
3. It is faster and efficient.
4. Context switch time is shorter than the kernel-level threads.
5. It does not require modifications of the operating system.
6. User-level threads representation is very simple. The register, PC, stack, and mini thread control blocks are stored
in the address space of the user-level process.
7. It is simple to create, switch, and synchronize threads without the intervention of the process.
Disadvantages of User-level threads
1. User-level threads lack coordination between the thread and the kernel.
2. If a thread causes a page fault, the entire process is blocked.
Kernel level thread
The kernel thread recognizes the operating system. There is a thread control block and process control block in the
system for each thread and process in the kernel-level thread. The kernel-level thread is implemented by the operating
system. The kernel knows about all the threads and manages them. The kernel-level thread offers a system call to create
and manage the threads from user-space. The implementation of kernel threads is more difficult than
the user thread. Context switch time is longer in the kernel thread. If a kernel thread
performs a blocking operation, the Banky thread execution can continue. Example: Window
Solaris.
3. It takes more time for creation. It takes less time for creation.
Multiprogramming holds the We don’t need multi programs in action for multiple threads
6. concepts of multi-process. because a single process consists of multiple threads.
The process is called the A Thread is lightweight as each thread in a process shares
8. heavyweight process. code, data, and resources.
Process switching uses an interface Thread switching does not require calling an operating system
9. in an operating system. and causes an interrupt to the kernel.
Since all threads of the same process share address space and
Changes to the parent process do
other resources so any changes to the main thread may affect
not affect child processes.
12. the behavior of the other threads of the process.
13. A system call is involved in it. No system call is involved, it is created using APIs.
Types of Sockets : There are two types of Sockets: the datagram socket and the stream socket.
1. Datagram Socket : This is a type of network which has connection less
point for sending and receiving packets. It is similar to mailbox. The letters
(data) posted into the box are collected and delivered (transmitted) to a
letterbox (receiving socket).
2. Stream Socket In Computer operating system, a stream socket is type
of interprocess communications socket or network socket which provides a
connection-oriented, sequenced, and unique flow of data without record
boundaries with well defined mechanisms for creating and destroying
connections and for detecting errors. It is similar to phone. A connection is
established between the phones (two ends) and a conversation (transfer
of data) takes place.
3 Explain a dead lock in task synchronization and different deadlock handling techniques.
Deadlock is a situation where a process or a set of processes is blocked, waiting for some other resource that is
held by some other waiting process. It is an undesirable state of the system. The following are the four conditions
that must hold simultaneously for a deadlock to occur.
1. Mutual Exclusion – A resource can be used by only one process at a time. If another process requests
for that resource then the requesting process must be delayed until the resource has been released.
2. Hold and wait – Some processes must be holding some resources in the non-shareable mode and at
the same time must be waiting to acquire some more resources, which are currently held by other
processes in the non-shareable mode.
3. No pre-emption – Resources granted to a process can be released back to the system only as a result
of voluntary action of that process after the process has completed its task.
4. Circular wait – Deadlocked processes are involved in a circular chain such that each process holds one
or more resources being requested by the next process in the chain.
Methods of handling deadlocks: There are four approaches to dealing with deadlocks.
1. Deadlock Prevention
2. Deadlock avoidance (Banker's Algorithm)
3. Deadlock detection & recovery
4. Deadlock Ignorance (Ostrich Method)
These are explained below.
1. Deadlock Prevention: The strategy of deadlock prevention is to design the system in such a way that the
possibility of deadlock is excluded. The indirect methods prevent the occurrence of one of three necessary
conditions of deadlock i.e., mutual exclusion, no pre-emption, and hold and wait. The direct method prevents
the occurrence of circular wait. Prevention techniques – Mutual exclusion – are supported by the OS. Hold
and Wait – the condition can be prevented by requiring that a process requests all its required resources at
one time and blocking the process until all of its requests can be granted at the same time simultaneously. But
this prevention does not yield good results because:
• long waiting time required
• inefficient use of allocated resource
• A process may not know all the required resources in advance
No pre-emption – techniques for ‘no pre-emption are’
• If a process that is holding some resource, requests another resource that can not be immediately
allocated to it, all resources currently being held are released and if necessary, request again together
with the additional resource.
• If a process requests a resource that is currently held by another process, the OS may pre -empt the
second process and require it to release its resources. This works only if both processes do not have
the same priority.
Circular wait One way to ensure that this condition never holds is to impose a total ordering of all resource types
and to require that each process requests resources in increasing order of enumeration, i.e., if a process has been
allocated resources of type R, then it may subsequently request only those resources of types following R in
ordering.
2. Deadlock Avoidance: The deadlock avoidance Algorithm works by proactively looking for potential deadlock
situations before they occur. It does this by tracking the resource usage of each process and identifying conflicts
that could potentially lead to a deadlock. If a potential deadlock is identified, the algorithm will take steps to
resolve the conflict, such as rolling back one of the processes or pre-emptively allocating resources to other
processes. The Deadlock Avoidance Algorithm is designed to minimize the chances of a deadlock occurring,
although it cannot guarantee that a deadlock will never occur. This approach allows the three necessary
conditions of deadlock but makes judicious choices to assure that the deadlock point is never reached. It allows
more concurrency than avoidance detection A decision is made dynamically whether the current resource
allocation request will, if granted, potentially lead to deadlock. It requires knowledge of future process requests.
Two techniques to avoid deadlock :
1. Process initiation denial
2. Resource allocation denial
Advantages of deadlock avoidance techniques:
• Not necessary to pre-empt and rollback processes
• Less restrictive than deadlock prevention
Disadvantages :
• Future resource requirements must be known in advance
• Processes can be blocked for long periods
• Exists a fixed number of resources for allocation
3. Deadlock Detection: Deadlock detection is used by employing an algorithm that tracks the circular waiting and
kills one or more processes so that the deadlock is removed. The system state is examined periodically to
determine if a set of processes is deadlocked. A deadlock is resolved by aborting and restarting a process,
relinquishing all the resources that the process held.
• This technique does not limit resource access or restrict process action.
• Requested resources are granted to processes whenever possible.
• It never delays the process initiation and facilitates online handling.
• The disadvantage is the inherent pre-emption losses.
4. Deadlock Ignorance: In the Deadlock ignorance method the OS acts like the deadlock never occurs and
completely ignores it even if the deadlock occurs. This method only applies if the deadlock occurs very rarely. The
algorithm is very simple. It says ” if the deadlock occurs, simply reboot the system and act like the deadlock never
occurred.” That’s why the algorithm is called the Ostrich Algorithm.
Advantages:
• Ostrich Algorithm is relatively easy to implement and is effective in most cases.
• It helps in avoiding the deadlock situation by ignoring the presence of deadlocks.
Disadvantages:
• Ostrich Algorithm does not provide any information about the deadlock situation.
• It can lead to reduced performance of the system as the system may be blocked for a long time.
• It can lead to a resource leak, as resources are not released when the system is blocked due to
deadlock.
4 What is Dining Philosopher's problem. Explain the various scenarios that may occur in this problem.
You can watch this on Utube
5 Explain in detail priority inversion and its various solutions.
Priority inversion is a operating system scenario in which a higher priority process is
preempted by a lower priority process. This implies the inversion of the priorities of the two
processes.
Semaphores are integer variables that are used to solve the critical section problem by using two atomic
operations, wait and signal that are used for process synchronization.
The definitions of wait and signal are as follows −
• Wait
The wait operation decrements the value of its argument S, if it is positive. If S is negative or zero, then no operation
is performed.
wait(S)
{
while (S<=0);
S--;
}
• Signal
The signal operation increments the value of its argument S.
signal(S)
{
S++;
}
Types of Semaphores
There are two main types of semaphores i.e. counting semaphores and binary semaphores. Details about
these are given as follows −
• Counting Semaphores
These are integer value semaphores and have an unrestricted value domain. These semaphores are used to
coordinate the resource access, where the semaphore count is the number of available resources. If the resources
are added, semaphore count automatically incremented and if the resources are removed, the count is decremented.
• Binary Semaphores
The binary semaphores are like counting semaphores but their value is restricted to 0 and 1. The wait operation
only works when the semaphore is 1 and the signal operation succeeds when semaphore is 0. It is sometimes easier
to implement binary semaphores than counting semaphores.
Advantages of Semaphores
Some of the advantages of semaphores are as follows −
• Semaphores allow only one process into the critical section. They follow the mutual exclusion principle strictly
and are much more efficient than some other methods of synchronization.
• There is no resource wastage because of busy waiting in semaphores as processor time is not wasted
unnecessarily to check if a condition is fulfilled to allow a process to access the critical section.
• Semaphores are implemented in the machine independent code of the microkernel. So they are machine
independent.
Disadvantages of Semaphores
Some of the disadvantages of semaphores are as follows −
• Semaphores are complicated so the wait and signal operations must be implemented in the correct order to
prevent deadlocks.
• Semaphores are impractical for last scale use as their use leads to loss of modularity. This happens because the
wait and signal operations prevent the creation of a structured layout for the system.
• Semaphores may lead to a priority inversion where low priority processes may access the critical section first and
high priority processes later.
9 Explain device drivers from operating system context.
10 Explain the different functional and non-functional requirements that needs to be evaluated in the
selection of an RTOS.