Presentation3 1
Presentation3 1
OSCAR ERASMUS
ISAKA KONDO
The most common set of requirements defined by any operating system or software application is the
physical computer resources, also known as hardware, A hardware requirements list is often
accompanied by a hardware compatibility list (HCL), especially in case of operating systems. An
HCL lists tested, compatible, and sometimes incompatible hardware devices for a particular
operating system or application. The following sub-sections discuss the various aspects of hardware
requirements.
Architecture
All computer operating systems are designed for a particular computer architecture. Most software
applications are limited to particular operating systems running on particular architectures. Although
architecture-independent operating systems and applications exist, most need to be recompiled to run
on a new architecture.
Processing power
The power of the central processing unit (CPU) is a fundamental system requirement
for any software. Most software running on x86 architecture define processing power
as the model and the clock speed of the CPU. Many other features of a CPU that
influence its speed and power, like bus speed, cache, and MIPS are often ignored. This
definition of power is often erroneous, as different makes and models of CPUs at
similar clock speed often have different throughput speeds.
Memory
All software, when run, resides in the random-access memory (RAM) of a computer.
Memory requirements are defined after considering demands of the application,
operating system, supporting software and files, and other running processes. Optimal
performance of other unrelated software running on a multi-tasking computer system is
also considered when defining this requirement.
Secondary storage
Data storage device requirements vary, depending on the size of software installation,
temporary files created and maintained while installing or running the software, and
possible use of swap space (if RAM is insufficient).
Display adapter
Software requiring a better than average computer graphics display, like graphics
editors and high-end games, often define high-end display adapters in the system
requirements.
Peripherals
Some software applications need to make extensive and/or special use of some
peripherals, demanding the higher performance or functionality of such peripherals.
Such peripherals include CD-ROM drives, keyboards, pointing devices, network
devices, etc.
2: ANALOG I/O INTERFACING IN REAL TIME SYSTEMS
1. Digital Input Lines: These receive digital signals from external devices, like
switches, buttons, or digital sensors. The system reads these signals to monitor the status of
external processes (e.g., whether a switch is pressed or a limit has been reached).
2. Digital Output Lines: These send digital signals from the real-time system to
control external devices, such as LEDs, buzzers, relays, or other actuators. The system can
set these lines high or low to control actions in the external environment.
3. Logic Levels: Digital I/O lines operate within specific voltage ranges, commonly
0V for a low state (0) and 3.3V or 5V for a high state (1), though this can vary based on the
system.
4. Isolation and Protection: Real-time systems often include isolation (e.g.,
optocouplers) and protection (e.g., resistors, diodes) in digital I/O interfacing to prevent
voltage spikes or noise from affecting the processor.
5. Timing and Synchronization: In real-time systems, digital I/O operations must be
precisely timed and synchronized with the system’s clock to ensure that inputs are read and
outputs are set exactly when needed.
How Digital I/O Interfacing Works in Real-Time Systems
1. Monitor: The system can read digital inputs to check the state of
an external device. For example, it could read from a digital sensor that
sends a “1” if an object is detected.
2. Control: The system can send signals via digital outputs to turn
devices on or off, such as activating an alarm when certain conditions are
met.
3. Execute Time-Critical Tasks: With real-time systems, digital
inputs and outputs must be handled within strict time constraints to
ensure that actions are performed predictably and without delay.
Applications and Examples of Digital I/O Interfacing in Real-Time Systems
1. Industrial Automation: Many factories use centralized control systems where a central
programmable logic controller (PLC) manages the operations of multiple machines and sensors,
ensuring they work together efficiently and respond to changes in real time.
2. Building Management Systems: In building automation, a central controller might
monitor and control HVAC, lighting, security, and other systems to maintain energy efficiency and
safety.
3. Automotive Control Systems: Centralized Engine Control Units (ECUs) in vehicles
collect data from multiple sensors and make real-time adjustments to optimize engine performance,
fuel efficiency, and emissions.
4. Medical Devices: In life-support systems or patient monitoring, a central controller
processes data from multiple sensors (e.g., heart rate, oxygen levels) to make real-time adjustments
or trigger alarms when needed.
5. Traffic Control Systems: In centralized traffic management, a central system collects real-
time data from cameras and sensors across a city, optimizing traffic light patterns, managing
congestion, and improving emergency response.
HIERARCHICAL SYSTEMS IN REAL TIME SYSTEMS
1. Scalability: The modular structure makes it easier to add or modify components at any
level. This flexibility is particularly useful in complex systems, such as large-scale industrial
automation or smart cities, where the system can grow in size and functionality over time.
2. Improved Responsiveness and Efficiency: Lower-level controllers handle real-time,
localized tasks quickly, while higher levels focus on coordination and planning. This reduces the
load on the central controller and enables faster response times for critical actions.
3. Efficient Resource Management: Hierarchical systems allow higher levels to manage
resources across the system, assigning priorities, balancing loads, and avoiding bottlenecks. Mid-
level controllers ensure that resources are allocated to meet system-wide objectives while respecting
real-time constraints.
4. Simplified System Complexity: By dividing tasks across layers, the system can manage
complex operations more effectively. Each level is only responsible for a subset of tasks,
simplifying the design, maintenance, and troubleshooting processes.
5. Fault Tolerance and Redundancy: If a low-level controller fails, mid-level or high-level
controllers can often reassign tasks to other controllers, enhancing system resilience. This improves
fault tolerance, especially in safety-critical applications.
Applications of Hierarchical Systems in Real-Time Systems
1. Multiple Independent Nodes: Each node operates independently and may include its
own processor, memory, and I/O capabilities. Nodes are usually specialized to handle specific
tasks or subsets of tasks within the overall system.
2. Networked Communication: Nodes communicate over a network, which may be wired
or wireless. Communication protocols are often optimized for low latency and real-time
reliability, ensuring that data and commands are delivered promptly and predictably.
3. Decentralized Control: Instead of a single centralized controller, control is
decentralized across nodes, with each node handling its own local tasks. In some cases, there may
still be a coordinating node, but it’s not a single point of failure.
4. Parallel Processing: Distributed systems enable parallel processing by dividing tasks
among multiple nodes. Each node processes its tasks concurrently, which can improve response
times and overall efficiency, especially for complex applications with many inputs and outputs.
5. Real-Time Constraints: Each node in a distributed real-time system must meet strict
timing constraints. The system is designed to ensure that all nodes respond within their deadlines,
with the network providing the necessary bandwidth and low-latency communication.
Advantages of Distributed Real-Time Systems
1. Scalability: Distributed systems can be scaled by adding more nodes, making it easier to
expand or modify the system without major redesigns. This scalability is beneficial for
applications that may grow over time, like industrial automation or smart cities.
2. Fault Tolerance and Reliability: If one node fails, other nodes can continue operating,
minimizing the impact on the overall system. In some systems, tasks can even be reassigned to
other nodes, increasing resilience and fault tolerance.
3. Efficient Use of Resources: With decentralized control, each node manages only its
specific resources, allowing the system to make more efficient use of processing power, memory,
and energy. This is particularly valuable in applications with high computational or power
demands.
4. Parallel Execution and Speed: By allowing nodes to execute tasks in parallel,
distributed systems can achieve faster processing for complex applications. For example, a
distributed system can simultaneously monitor multiple sensors or process multiple data streams.
5. Geographical Flexibility: Distributed systems can be spread across large areas, with
nodes positioned close to the sources of data or control points. This reduces the need for long
Challenges in Distributed Real-Time Systems
1. Sensors: These devices measure physical quantities (like temperature, pressure, speed, or humidity) and
convert them into electrical signals, which can be either analog or digital.
2. Signal Conditioning: The electrical signals from sensors often need to be prepared before they can be
accurately interpreted by the DAQ system. Signal conditioning may include:
• Amplification: Increasing the signal strength for better resolution.
• Filtering: Removing noise to isolate the desired signal.
• Isolation: Protecting the DAQ system from high voltages or other external interference.
3. Analog-to-Digital Converters (ADC): When data is in analog form, an ADC is used to convert the
continuous signal into a digital format that the real-time system can interpret.
4. Digital-to-Analog Converters (DAC): If the real-time system needs to output data to control analog
devices (such as motors or heaters), a DAC converts the digital output signals into analog form.
5. DAQ Hardware Interface: A DAQ board or module connects sensors, ADCs, DACs, and signal
conditioning circuits with the central processing unit of the real-time system. It acts as an intermediary, ensuring
efficient data transfer.
6. Real-Time Software and Data Processing: The software in a real-time system coordinates the
acquisition, processing, and storage of data.
The Data Acquisition Process in Real-Time Systems
1. Data Collection: The system collects data from various sensors, with each
sensor generating a stream of measurements. For example, a temperature sensor might
output a signal that changes as the temperature fluctuates.
2. Signal Conditioning and Conversion: If the sensor outputs analog data, it is
conditioned and converted to digital form using an ADC. Digital data can then be
processed by the real-time system.
3. Data Processing: The system processes the incoming data to analyze current
conditions, compare it to thresholds, or detect patterns. This processing might involve
filtering noise, calculating averages, or identifying anomalies.
4. Storage and Logging: In some real-time systems, data is logged for later
analysis or audit purposes, although the main focus remains on real-time processing
rather than long-term storage.
5. Response and Control: Based on the processed data, the system makes
decisions in real time. For example, if a temperature sensor detects that the temperature
has reached a dangerous level, the system might trigger an alarm or activate cooling
mechanisms.
Applications of Data Acquisition in Real-Time Systems