Embedded Systems
Embedded Systems
Embedded Systems
FACULTY OF ENGINEERING
GROUP NO: GROUP 5
PRESENTED BY:
171203029, NABAI CLEVER IGE-EDABA
171203033, MUBARAK MOHAMMED USMAN
171203045, NIMAT OGBOLE HASSAN
LEVEL: 400
SESSION: 2020/2021 1ST SEMESTER
COURSES CODE/COURSE TITLE: CPE409/ OPERATION SYSTEM
CONCEPTS
PROJECT TITLE: EMBEDDED SYSTEMS & REAL TIME SYSTEMS
DATE (DD/MM/YYYY): 7/12/2021
Embedded Systems
INTRODUCTION:
Electronic digital computers are very powerful tools. The so-called digital revolution has
been fuelled mostly by chips for which the number of transistors per unit area on integrated
circuits kept doubling approximately every 18 months. The resulting exponential growth is so
remarkable that it fundamentally changed the way we perceive and interact with our
surrounding world. Embedded systems are the most recent results of this growth and could be
found is every digital device in existence.
In this project the concept of embedded systems will be further inspected. We seek to
expatiate on the architecture and constructively criticize how existing embedded systems
function by discussing existing problems and solutions to a highlighted problem with these
systems.
The first modern, real-time embedded computing system was the Apollo Guidance
Computer, developed in the 1960s by Dr. Charles Stark Draper at the Massachusetts Institute
of Technology for the Apollo Program. The Apollo Guidance Computer was designed to
collect data automatically and provide mission-critical calculations for the Apollo Command
Module and Lunar Module.
In 1971, Intel released the first commercially available microprocessor unit -- the Intel 4004
-- an early microprocessor that still required support chips and external memory; in 1978 the
National Engineering Manufacturers Association released a standard for programmable
microcontrollers, improving the embedded system design; and by the early 1980s, memory,
input and output system components had been integrated into the same chip as the processor,
forming a microcontroller.
The microcontroller-based embedded system would go on to be incorporated into every
aspect of consumers’ daily lives, from credit card readers and cell phones, to traffic lights and
thermostats.
WHAT IS AN EMBEDDED SYSTEM?
To simply say that an Embedded System is an integrated system including both hardware and
software is not enough. An embedded system is a dedicated computer system, designed to
work for single or few specific functions normally within a larger system.
General-purpose computers (desktops and laptops) are dissimilar from embedded systems,
the general-purpose computer can handle a wide range of processing tasks unlike embedded
systems. Most of our gadgets like washing machines, microwave ovens, ATMs and mobile
phones have embedded-system in them. Any device, including toys, using electric power has
a computing system embedded in it. As much as 98 percent of all microprocessors
manufactured are used in embedded systems.
DISCUSSION:
ARCHITECTURE OF EMBEDDED SYSTEMS
Typical Hardware Architecture
The basic computer system components—microprocessor, memory, and input and output
modules—are interconnected by a system bus in order for all the parts to communicate and
execute a program (see Figure 1-3).
Figure 1-1
In embedded systems, the microprocessor's role and function are usually the same as those of
the CPU in a general-purpose computer: control computer operation, execute instructions,
and process data. In many cases, the microprocessor in an embedded system is also called the
CPU. Memory is used to store instructions and data. I/O modules are responsible for the data
exchange between the processor, memory, and external devices. External devices include
secondary storage devices (such as flash and hard disk), communications equipment, and
terminal equipment. The system bus provides data and controls signal communication and
transmission for the processor, memory, and I/O modules.
TYPES OF EMBEDDED SYSTEMS
FIG 1-2
CONCLUSION:
We have discussed the most important issues concerning security in embedded systems. We
have shown that addressing these issues proves to be a challenging task, wherein embedded
devices need to be secure to the extent required by the application and the environment
without compromising performance, energy consumption, cost and usability.
Through the survey of existing security solutions, we noticed that securing embedded
systems opens a large number of contribution areas and research fields.
Many embedded systems have requirements that differ significantly both in details and in
scope from desktop computers. In particular, the demands of the specific application and the
interface with external equipment may dominate the system design. Also, long life-cycles and
in some cases extreme cost require more attention to optimization.
REFERENCE
[1] On Security Issues in Embedded Systems: Challenges and Solutions Lyes Khelladi,
Yacine Challal, Abdelmadjid Bouabdallah, Nadjib Badache. (2008) [Textbook]
[2] Rugged Embedded Systems Computing in Harsh Environments Augusto Vega Pradip
Bose Alper Buyuktosunoglu(2017) [ Textbook ]
[4] Edward Ashford Lee and Sanjit Arunkumar Seshia INTRODUCTION TO EMBEDDED
SYSTEMS A CYBER-PHYSICAL SYSTEMS APPROACH [Online]. Available:
https://ptolemy.berkeley.edu/books/leeseshia/releases/LeeSeshia_DigitalV2_2.pdf
REAL-TIME SYSTEMS
INTRODUCTION:
A real time system is any information processing system which has to respond to externally
generated input stimuli within a finite and specified period. A system is said to be real time if
it is required to complete its work and deliver its services on time. It is designed specifically
to run applications with very precise timing and high degree of reliability. It means a real
system is basically based on the concept that data must be processed within a deadline. It is
basically used in various fields’ line in the flight control system, satellite launching stations,
and airbags which is commonly used in cars. Real time system processes the data on
deadline.
DISCUSSION:
Hard Real Time System: It is purely deterministic and 100% time constraint
System( it means that say for example a user wants an output in 10 seconds the input
he has given, with the help of hard real time system the result will exactly be declared
in 10 seconds not before or after 10 seconds). It is used in Life safety systems, where
a task needs to be performed within a particular time frame otherwise a catastrophic
event will occur. Examples are missile launching system, Satellite System, Air bag
Control in cars.
Soft Real Time System: In soft real time system, the meeting of deadline is not
compulsory for every time for every task but process should get processed and give
the result. It means that it can miss the deadline but missing the deadline for a long
duration may collapse the system examples are Personal Computer, audio and Videos
systems etc.
Hard real-time
The Scheduler: This component of RTOS tells that in which order, the tasks can be
executed which is generally based on the priority.
Symmetric Multiprocessing (SMP): It is a number of multiple different tasks that can
be handled by the RTOS so that parallel processing can be done.
Function Library: It is an important element of RTOS that acts as an interface that
helps you to connect kernel and application code. This application allows you to send
the requests to the Kernel using a function library so that the application can give the
desired results.
Memory Management: this element is needed in the system to allocate memory to
every program, which is the most important element of the RTOS.
Fast dispatch latency: It is an interval between the termination of the task that can be
identified by the OS and the actual time taken by the thread, which is in the ready
queue that has started processing.
User-defined data objects and classes: RTOS system makes use of programming
languages like C or C++, which should be organized according to their operation.
A real time system is made up of both periodic and aperiodic tasks. Periodic tasks have
regular arrival times and hard deadlines while aperiodic tasks have irregular deadlines and
either hard or soft deadlines [1]. A time constraint (or deadline) can be referred to as “hard” if
missing said deadline is costly and could lead to a catastrophe (an example is process control)
whereas a deadline could be referred to as “soft” if missing that deadline is not catastrophic
but could lead to a lower quality of service [2].
There are various issues that arise with the use of real-time systems but the topic of this
particular paper is “Aperiodic Task Handling”. This is done in reference with Giorgio
Buttazzo’s paper titled: “Real-Time Operating Systems: Problems and Novel Solutions”.
In real time systems, computational activities that must be executed only at the occurrence of
external events which may arrive at irregular times do exist. When the system must tackle
aperiodic tasks, improving system responsiveness by serving events as soon as possible and
not threatening the schedulability of periodic tasks must be balanced [3]. This gives rise to
some conditions:
If the aperiodic activities are less important than periodic tasks, then the objective of a
scheduling algorithm should be to minimize their response time while guaranteeing their
executions within their deadlines.
If some aperiodic task has a hard deadline, we should try to guarantee it’s timely completion
off-line. Such a guarantee can only be done by assuming that aperiodic requests, although
arriving at irregular intervals do not exceed a maximum given frequency, that is, they are
separated by a minimum inter arrival time [3].
So the problem becomes trying to resolve the scheduling of aperiodic tasks while preserving
the guarantee for periodic tasks. When this occurs, the simplest solution according to Giorgio
Buttazzo is to schedule aperiodic tasks in the background. This means that an aperiodic task
executes only when the processor is busy with periodic tasks. This solution however comes
with the disadvantage of the residual time left for aperiodic execution being insufficient for
satisfying their deadlines if the computational load due to their periodic tasks is high.
However, the response time of periodic tasks can be improved (relative to scheduling
aperiodic tasks in the background) by handling them through a periodic server dedicated to
their execution [3]. As any other periodic task, a server is characterized by a period Ts and an
execution time Cs.
Although the response time achieved by a server is less than that achieved through the
background, it is still not the minimum possible. The minimum response time is achieved
when an optimal server which assigns each aperiodic request the earliest possible deadline
which still produces a feasible Earliest Deadline First (EDF) algorithm [4].
Several aperiodic algorithms have been proposed, differing in performance and complexity.
Algorithms based on fixed priority include the Polling Server, the Deferable Server, the
Sporadic Server and the Slack Stealer. Among servers based on dynamic priorities, we have
the Dynamic Sporadic Server and the Constant Bandwidth Server [3].
As for all the efficient solutions, the better performance is achieved at the cost of a larger
runtime overhead [5] (due to the complexity of computing the minimum deadline). However,
adopting the the Tunable Bandwidth server helps balance the overhead cost and performance
in order to select the best service method for a given real-time system.
REFERENCES
[4] S. Kumar. (2020). Earliest Deadline First (EDF) CPU scheduling algorithm [Online].
Available:
https://www.geeksforgeeks.org/earliest-deadline-first-edf-cpu-scheduling-algorithm/