An embedded system is a dedicated system designed for a specific purpose, where hardware and software work closely together. Efficiency and compact size are often critical, as well as real-time operation. The unit controlling the airbags in cars has a single task, which it must perform without any problems. An embedded systems developer must have a deep understanding of both electronics, PCB design and the constraints of embedded software development.
# Designed by macrovector - https://www.freepik.com/author/macrovector
It is a system that works not only if it has done its job correctly, but also if it can deliver the results within the deadlines. There are three categories of real-time systems based on how they handle missed deadlines.
A missed deadline constitutes a systemic failure, as failure to comply with time restrictions could endanger life and cause significant environmental or material damage. A simple example is controlling the amount of ink in the head of a home printer. If the job is delayed, the current print job has been ruined. This does not pose a danger to life or the environment, but from a developer's perspective, exceeding the deadline is unacceptable.
The system can tolerate task failures as long as they occur infrequently. However, if a task is not completed on time, its value may be reduced to zero or become impossible to recover. In an automated factory, missing a deadline can result in incorrect assembly or defective products. If quality control detects these defects and they are rare and not too costly, production can continue.
It allows for regularly missed deadlines, and as long as tasks are completed within a reasonable timeframe, their results remain valuable. The value of a completed task may increase as the deadline approaches and decrease after it passes. For example, if a weather station's sensors are scheduled to send data at specific intervals, data that arrives slightly early or late may still be relevant. Another example is latency in streaming services, where delays are not ideal, but the delayed data is still useful and not a critical error.
If a failure of a system could cause danger to life, environmental or material damage, then that system is safety critical. Real-time behaviour is often important, but not always a requirement. Reliability can be enhanced by redundancy, which is the use of multiple components or resources. For example, SWIFT's international transaction network, the NASDAQ stock exchange system, air traffic control (ATC) systems, ticket machines in a railway station are all safety-critical systems.
Cloud service providers offer rental hosting and resources, typically billing on a pay-per-use basis. The data is processed in an unknown location, within a remote data center. Cloud computing refers to data processing on remote servers. These services are available in several models, including software as a service, platform as a service, and infrastructure as a service.
SaaS (Office 365, Google Drive ...)
PaaS (Heroku, Google App Engine ...)
IaaS (Microsoft Azure, AWS ...)
Because cloud computing is so mainstream today, it has been given a special name when processing is done close to the data source, at the edge of the network, to reduce latency and network load. Facial recognition security cameras, autonomous vehicles or production line machines all require instant processing.
Sensors and other smart devices can form a network with each other. The network can collect and analyse data and act on it. In modern networks, not all devices need to be connected to a single hub, but in a smart home network, for example, data from one sensor might be sent to the hub through other sensors. These networks of smart devices are called the Internet of Things.