Skip to document

Process pipeline

Process pipeline
Course

Software Engineering (CSPC 111)

140 Documents
Students shared 140 documents in this course
Academic year: 2022/2023
Uploaded by:
Anonymous Student
This document has been uploaded by a student, just like you, who decided to remain anonymous.
Don Mariano Marcos Memorial State University

Comments

Please sign in or register to post comments.

Preview text

Process pipeline

Many real-time systems are concerned with collecting analog data from the system’s environment. They then digitize that data for analysis and processing by the system. The system may also convert digital data to analog data, which it then sends to its environment. For example, a software radio accepts incoming packets of digital data representing the radio transmission and transforms the data into a sound signal that people can listen to.

The data processing involved in many of these systems has to be carried out very quickly. Otherwise, incoming data may be lost and outgoing signals may be broken up because essential information is missing. The Process Pipeline pattern makes this rapid processing possible by breaking down the required data processing into a sequence of separate transformations. Each of these transformations is implemented by an independent process. This architecture is efficient for systems that use multiple processors or multicore processors. Each process in the pipeline can be associated with a separate processor or core, so that the processing steps can be carried out in parallel.

Figure 21 is a brief description of the data pipeline pattern, and Figure 21 shows the process architecture for this pattern. Notice that the processes involved produce and consume information. The processes exchange information using synchronized buffers, as I explained in Section 21. Producer and consumer processes can thereby operate at different speeds without data losses.

An example of a system that may use a process pipeline is a high-speed data acquisition system. Data acquisition systems collect data from sensors for subsequent processing and analysis. These systems are used in situations where the sensors are collecting large volumes of data from the system’s environment and it isn’t possible or necessary to process that data in real time. Rather, it is collected and stored for later analysis. Data acquisition systems are often used in scientific experiments and process control systems where physical processes, such as chemical reactions, are very rapid.

In these systems, the sensors may be generating data very quickly, and the data acquisition system has to ensure that a sensor reading is collected before the sensor value changes.

Figure 21 is a simplified model of a data acquisition system that might be part of the control software in a nuclear reactor. This system collects data from sensors monitoring the neutron flux (the density of neutrons) in the reactor. The sensor data is placed in a buffer from which it is extracted and processed. The average flux level is displayed on an operator’s display and stored for future processing.

Environmental Control

The most widespread use of real-time embedded software is in control systems. In these systems, the software controls the operation of equipment, based on stimuli from the equipment’s environment. For example, an anti-skid braking system in a car monitors the car’s wheels and brake system (the system’s environment). It looks for signs that the wheels are skidding when brake pressure is applied. If this is the case, the system adjusts the brake pressure to stop the wheels locking and reduce the likelihood of a skid.

Control systems may make use of the Environmental Control pattern, which is a general control pattern that includes sensor and actuator processes. This pattern is described in Figure 21, with the process architecture shown in Figure 21. A variant of this pattern leaves out the display process. This variant is used in situations where user intervention is not required or where the rate of control is so high that a display would not be meaningful.

This pattern can be the basis for a control system design with an instantiation of the Environmental Control pattern for each actuator (or actuator type) being controlled. You then optimize the design to reduce the number of processes. For example, you may combine actuator monitoring and actuator control processes, or you may have a single

culmination of a pipeline may be display or data storage, or the pipeline may terminate in an actuator.

Stimuli

 Input values from the environment or some other process

Responses

 Output values to the environment or a shared buffer

Processes

 Producer, Buffer, Consumer

Used in

 Data acquisition systems, multi-media systems

Was this document helpful?

Process pipeline

Course: Software Engineering (CSPC 111)

140 Documents
Students shared 140 documents in this course
Was this document helpful?
Process pipeline
Many real-time systems are concerned with collecting analog data from the system’s
environment. They then digitize that data for analysis and processing by the system.
The system may also convert digital data to analog data, which it then sends to its
environment. For example, a software radio accepts incoming packets of digital data
representing the radio transmission and transforms the data into a sound signal that
people can listen to.
The data processing involved in many of these systems has to be carried out very
quickly. Otherwise, incoming data may be lost and outgoing signals may be broken up
because essential information is missing. The Process Pipeline pattern makes this rapid
processing possible by breaking down the required data processing into a sequence of
separate transformations. Each of these transformations is implemented by an
independent process. This architecture is efficient for systems that use multiple
processors or multicore processors. Each process in the pipeline can be associated
with a separate processor or core, so that the processing steps can be carried out in
parallel.
Figure 21.12 is a brief description of the data pipeline pattern, and Figure 21.13 shows
the process architecture for this pattern. Notice that the processes involved produce and
consume information. The processes exchange information using synchronized buffers,
as I explained in Section 21.1. Producer and consumer processes can thereby operate
at different speeds without data losses.
An example of a system that may use a process pipeline is a high-speed data
acquisition system. Data acquisition systems collect data from sensors for subsequent
processing and analysis. These systems are used in situations where the sensors are
collecting large volumes of data from the system’s environment and it isn’t possible or
necessary to process that data in real time. Rather, it is collected and stored for later
analysis. Data acquisition systems are often used in scientific experiments and process
control systems where physical processes, such as chemical reactions, are very rapid.