SlideShare a Scribd company logo
1 of 51
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 1
Chapter 13
Real-time Software Design
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 2
Real-time Software Design
 Designing embedded software
systems whose behaviour is
subject to timing constraints
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 3
Objectives
 To explain the concept of a real-time system and
why these systems are usually implemented as
concurrent processes
 To describe a design process for real-time
systems
 To explain the role of a real-time executive
 To introduce generic architectures for monitoring
and control and data acquisition systems
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 4
Topics covered
 Systems design
 Real-time executives
 Monitoring and control systems
 Data acquisition systems
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 5
Real-time systems
 Systems which monitor and control their
environment
 Inevitably associated with hardware devices
• Sensors: Collect data from the system environment
• Actuators: Change (in some way) the system's
environment
 Time is critical. Real-time systems MUST
respond within specified times
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 6
Definition
 A real-time system is a software system where
the correct functioning of the system depends on
the results produced by the system and the time
at which these results are produced
 A ‘soft’ real-time system is a system whose
operation is degraded if results are not produced
according to the specified timing requirements
 A ‘hard’ real-time system is a system whose
operation is incorrect if results are not produced
according to the timing specification
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 7
Stimulus/Response Systems
 Given a stimulus, the system must produce a
response within a specified time
 Periodic stimuli. Stimuli which occur at
predictable time intervals
• For example, a temperature sensor may be polled 10 times
per second
 Aperiodic stimuli. Stimuli which occur at
unpredictable times
• For example, a system power failure may trigger an
interrupt which must be processed by the system
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 8
Architectural considerations
 Because of the need to respond to timing
demands made by different stimuli/responses,
the system architecture must allow for fast
switching between stimulus handlers
 Timing demands of different stimuli are different
so a simple sequential loop is not usually
adequate
 Real-time systems are usually designed as
cooperating processes with a real-time executive
controlling these processes
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 9
A real-time system model
Real-time
control system
Actuator
Actuator Actuator
Actuator
Sensor
Sensor
Sensor Sensor
Sensor
Sensor
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 10
System elements
 Sensors control processes
• Collect information from sensors. May buffer information
collected in response to a sensor stimulus
 Data processor
• Carries out processing of collected information and computes
the system response
 Actuator control
• Generates control signals for the actuator
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 11
Sensor/actuator processes
Data
processor
Actuator
control
Actuator
Sensor
control
Sensor
Stimulus Response
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 12
System design
 Design both the hardware and the software
associated with system. Partition functions to
either hardware or software
 Design decisions should be made on the basis
on non-functional system requirements
 Hardware delivers better performance but
potentially longer development and less scope
for change
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 13
Hardware and software design
Establishsystem
requirements
Partition
requirements
Hardware
requirements
Hardware
design
Software
requirements
Software
design
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 14
R-T systems design process
 Identify the stimuli to be processed and the
required responses to these stimuli
 For each stimulus and response, identify the
timing constraints
 Aggregate the stimulus and response processing
into concurrent processes. A process may be
associated with each class of stimulus and
response
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 15
R-T systems design process
 Design algorithms to process each class of
stimulus and response. These must meet the
given timing requirements
 Design a scheduling system which will ensure
that processes are started in time to meet their
deadlines
 Integrate using a real-time executive or operating
system
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 16
Timing constraints
 May require extensive simulation and experiment
to ensure that these are met by the system
 May mean that certain design strategies such as
object-oriented design cannot be used because
of the additional overhead involved
 May mean that low-level programming language
features have to be used for performance
reasons
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 17
State machine modelling
 The effect of a stimulus in a real-time system
may trigger a transition from one state to
another.
 Finite state machines can be used for
modelling real-time systems.
 However, FSM models lack structure. Even
simple systems can have a complex model.
 The UML includes notations for defining state
machine models
 See also Chapter 7.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 18
Microwave oven state machine
Full power
Enabled
do: operate
oven
Full
power
Half
power
Half
power
Full
power
Number
Timer
Door
open
Door
closed
Door
closed
System
fault
Start
do: set power
= 600
Half power
do: set power
= 300
Set time
do: get number
exit: set time
Disabled
Operation
Timer
Cancel
Waiting
do: display
time
Waiting
do: display
time
do: display
'Ready'
do: display
'Waiting'
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 19
Real-time programming
 Hard-real time systems may have to
programmed in assembly language to ensure
that deadlines are met
 Languages such as C allow efficient programs to
be written but do not have constructs to support
concurrency or shared resource management
 Ada as a language designed to support real-time
systems design so includes a general purpose
concurrency mechanism
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 20
Java as a real-time language
 Java supports lightweight concurrency (threads
and synchonized methods) and can be used for
some soft real-time systems
 Java 2.0 is not suitable for hard RT programming
or programming where precise control of timing
is required
• Not possible to specify thread execution time
• Uncontrollable garbage collection
• Not possible to discover queue sizes for shared resources
• Variable virtual machine implementation
• Not possible to do space or timing analysis
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 21
Real-time executives
 Real-time executives are specialised operating
systems which manage the processes in the
RTS
 Responsible for process management and
resource (processor and memory) allocation
 May be based on a standard RTE kernel which
is used unchanged or modified for a particular
application
 Does not include facilities such as file
management
14
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 22
Executive components
 Real-time clock
• Provides information for process scheduling.
 Interrupt handler
• Manages aperiodic requests for service.
 Scheduler
• Chooses the next process to be run.
 Resource manager
• Allocates memory and processor resources.
 Despatcher
• Starts process execution.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 23
Non-stop system components
 Configuration manager
• Responsible for the dynamic reconfiguration of the system
software and hardware. Hardware modules may be replaced
and software upgraded without stopping the systems
 Fault manager
• Responsible for detecting software and hardware faults and
taking appropriate actions (e.g. switching to backup disks) to
ensure that the system continues in operation
Real-time executive
components
Process resource
requirements
Scheduler
Scheduling
information
Resource
manager
Despatcher
Real-time
clock
Processes
awaiting
resources
Ready
list
Interrupt
handler
Available
resource
list
Processor
list
Executing
process
Ready
processes
Released
resources
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 25
Process priority
 The processing of some types of stimuli must
sometimes take priority
 Interrupt level priority. Highest priority which is
allocated to processes requiring a very fast
response
 Clock level priority. Allocated to periodic
processes
 Within these, further levels of priority may be
assigned
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 26
Interrupt servicing
 Control is transferred automatically to a
pre-determined memory location
 This location contains an instruction to jump to
an interrupt service routine
 Further interrupts are disabled, the interrupt
serviced and control returned to the interrupted
process
 Interrupt service routines MUST be short,
simple and fast
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 27
Periodic process servicing
 In most real-time systems, there will be several
classes of periodic process, each with different
periods (the time between executions),
execution times and deadlines (the time by
which processing must be completed)
 The real-time clock ticks periodically and each
tick causes an interrupt which schedules the
process manager for periodic processes
 The process manager selects a process which
is ready for execution
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 28
Process management
 Concerned with managing the set of concurrent
processes
 Periodic processes are executed at pre-specified
time intervals
 The executive uses the real-time clock to
determine when to execute a process
 Process period - time between executions
 Process deadline - the time by which processing
must be complete
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 29
RTE process management
Resource manager
Allocate memory
and processor
Scheduler
Choose process
for execution
Despatcher
Start execution on an
available processor
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 30
Process switching
 The scheduler chooses the next process to be
executed by the processor. This depends on a
scheduling strategy which may take the process
priority into account
 The resource manager allocates memory and a
processor for the process to be executed
 The despatcher takes the process from ready
list, loads it onto a processor and starts
execution
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 31
Scheduling strategies
 Non pre-emptive scheduling
• Once a process has been scheduled for execution, it runs to
completion or until it is blocked for some reason (e.g. waiting for
I/O)
 Pre-emptive scheduling
• The execution of an executing processes may be stopped if a
higher priority process requires service
 Scheduling algorithms
• Round-robin
• Rate monotonic
• Shortest deadline first
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 32
Monitoring and control systems
 Important class of real-time systems
 Continuously check sensors and take actions
depending on sensor values
 Monitoring systems examine sensors and
report their results
 Control systems take sensor values and control
hardware actuators
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 33
Burglar alarm system
 A system is required to monitor sensors on doors
and windows to detect the presence of intruders
in a building
 When a sensor indicates a break-in, the system
switches on lights around the area and calls
police automatically
 The system should include provision for
operation without a mains power supply
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 34
Burglar alarm system
 Sensors
• Movement detectors, window sensors, door sensors.
• 50 window sensors, 30 door sensors and 200 movement
detectors
• Voltage drop sensor
 Actions
• When an intruder is detected, police are called
automatically.
• Lights are switched on in rooms with active sensors.
• An audible alarm is switched on.
• The system switches automatically to backup power when a
voltage drop is detected.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 35
The R-T system design process
 Identify stimuli and associated responses
 Define the timing constraints associated with
each stimulus and response
 Allocate system functions to concurrent
processes
 Design algorithms for stimulus processing and
response generation
 Design a scheduling system which ensures that
processes will always be scheduled to meet
their deadlines
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 36
Stimuli to be processed
 Power failure
• Generated aperiodically by a circuit monitor. When
received, the system must switch to backup power within 50
ms
 Intruder alarm
• Stimulus generated by system sensors. Response is to call
the police, switch on building lights and the audible alarm
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 37
Timing requirements
Stimulus/Response Timing requirements
Power fail interrupt The switch to backup power must be completed
within a deadline of 50 ms.
Door alarm Each door alarm should be polled twice per
second.
Window alarm Each window alarm should be polled twice per
second.
Movement detector Each movement detector should be polled twice
per second.
Audible alarm The audible alarm should be switched on within
1/2 second of an alarm being raised by a sensor.
Lights switch The lights should be switched on within 1/2
second of an alarm being raised by a sensor.
Communications The call to the police should be started within 2
seconds of an alarm being raised by a sensor.
Voice synthesiser A synthesised message should be available
within 4 seconds of an alarm being raised by a
sensor.
Process architecture
Lighting control
process
Audible alarm
process
Voice synthesizer
process
Alarm system
process
Power switch
process
Building monitor
process
Communication
process
Door sensor
process
Movement
detector process
Window sensor
process
560Hz
60Hz
400Hz 100Hz
Power failure
interrupt
Alarm
system
Building monitor
Alarm
system
Alarm system
Alarm system
Detector status Sensor status Sensor status
Room number
Alert message
Room number
Room number
Building_monitor process 1
}
// See http://www.software-engin.com/ for links to the complete
// Java code for this example
class BuildingMonitor extends Thread {
BuildingSensor win, door, move ;
Siren siren = new Siren () ;
Lights lights = new Lights () ;
Synthesizer synthesizer = new Synthesizer () ;
DoorSensors doors = new DoorSensors (30) ;
WindowSensors windows = new WindowSensors (50) ;
MovementSensors movements = new MovementSensors (200) ;
PowerMonitor pm = new PowerMonitor () ;
BuildingMonitor()
{
// initialise all the sensors and start the processes
siren.start () ; lights.start () ;
synthesizer.start () ; windows.start () ;
doors.start () ; movements.start () ; pm.start () ;
Building_monitor process 2
public void run () {
int room = 0 ;
while (true) {
// poll the movement sensors at least twice per second (400 Hz)
move = movements.getVal () ;
// poll the window sensors at least twice/second (100 Hz)
win = windows.getVal () ;
// poll the door sensors at least twice per second (60 Hz)
door = doors.getVal () ;
if (move.sensorVal == 1 | door.sensorVal == 1 | win.sensorVal == 1)
{
// a sensor has indicated an intruder
if (move.sensorVal == 1) room = move.room ;
if (door.sensorVal == 1) room = door.room ;
if (win.sensorVal == 1 ) room = win.room ;
lights.on (room) ; siren.on () ; synthesizer.on (room) ;
break ;
}
}
lights.shutdown () ; siren.shutdown () ; synthesizer.shutdown () ;
windows.shutdown () ; doors.shutdown () ; movements.shutdown () ;
} // run
} //BuildingMonitor
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 41
Control systems
 A burglar alarm system is primarily a monitoring
system. It collects data from sensors but no real-
time actuator control
 Control systems are similar but, in response to
sensor values, the system sends control signals
to actuators
 An example of a monitoring and control system
is a system which monitors temperature and
switches heaters on and off
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 42
A temperature control system
Thermostat
process
Sensor
process
Furnace
control process
Heater control
process
500Hz
500Hz
Thermostat process
500Hz
Sensor
values
Switch command
Room number
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 43
Data acquisition systems
 Collect data from sensors for subsequent
processing and analysis.
 Data collection processes and processing
processes may have different periods and
deadlines.
 Data collection may be faster than processing
e.g. collecting information about an explosion.
 Circular or ring buffers are a mechanism for
smoothing speed differences.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 44
Reactor data collection
 A system collects data from a set of sensors
monitoring the neutron flux from a nuclear
reactor.
 Flux data is placed in a ring buffer for later
processing.
 The ring buffer is itself implemented as a
concurrent process so that the collection and
processing processes may be synchronized.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 45
Reactor flux monitoring
Display
Process
data
Sensor data
buffer
Sensor
process
Sensor
identifier and
value
Processed
flux level
Sensors (each data flow is a sensor value)
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 46
A ring buffer
Consumer
process
Producer
process
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 47
Mutual exclusion
 Producer processes collect data and add it to
the buffer. Consumer processes take data
from the buffer and make elements available
 Producer and consumer processes must be
mutually excluded from accessing the same
element.
 The buffer must stop producer processes
adding information to a full buffer and
consumer processes trying to take
information from an empty buffer.
Java implementation of a ring buffer 1
class CircularBuffer {
int bufsize ;
SensorRecord [] store ;
int numberOfEntries = 0 ;
int front = 0, back = 0 ;
CircularBuffer (int n) {
bufsize = n ;
store = new SensorRecord [bufsize] ;
} // CircularBuffer
synchronized void put (SensorRecord rec ) throws InterruptedException {
if ( numberOfEntries == bufsize)
wait () ;
store [back] = new SensorRecord (rec.sensorId, rec.sensorVal) ;
back = back + 1 ;
if (back == bufsize)
back = 0 ;
numberOfEntries = numberOfEntries + 1 ;
notify () ;
} // put
Java implementation of a ring buffer 2
synchronized SensorRecord get () throws InterruptedException {
SensorRecord result = new SensorRecord (-1, -1) ;
if (numberOfEntries == 0)
wait () ;
result = store [front] ;
front = front + 1 ;
if (front == bufsize)
front = 0 ;
numberOfEntries = numberOfEntries - 1 ;
notify () ;
return result ;
} // get
} // CircularBuffer
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 50
Key points
 Real-time system correctness depends not just
on what the system does but also on how fast it
reacts
 A general RT system model involves associating
processes with sensors and actuators
 Real-time systems architectures are usually
designed as a number of concurrent processes
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 51
Key points
 Real-time executives are responsible for
process and resource management.
 Monitoring and control systems poll sensors and
send control signal to actuators
 Data acquisition systems are usually organised
according to a producer consumer model
 Java has facilities for supporting concurrency but
is not suitable for the development of time-critical
systems

More Related Content

Similar to Rekayasa-Perangkat-Lunak-Pertemuan-13.ppt

Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13koolkampus
 
EMBEDDED SYSTEMS 1
EMBEDDED SYSTEMS 1EMBEDDED SYSTEMS 1
EMBEDDED SYSTEMS 1PRADEEP
 
about how software prototyping helps in SDLC
about how software prototyping helps in SDLCabout how software prototyping helps in SDLC
about how software prototyping helps in SDLCshettyplacement08
 
Real-Time Systems Intro.pptx
Real-Time Systems Intro.pptxReal-Time Systems Intro.pptx
Real-Time Systems Intro.pptx20EUEE018DEEPAKM
 
Ppt on embedded system
Ppt on embedded systemPpt on embedded system
Ppt on embedded systemPankaj joshi
 
Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.Ankita Tiwari
 
Resource Management in (Embedded) Real-Time Systems
Resource Management in (Embedded) Real-Time SystemsResource Management in (Embedded) Real-Time Systems
Resource Management in (Embedded) Real-Time Systemsjeronimored
 
Runtimeperformanceevaluationofembeddedsoftware 100825224539-phpapp02
Runtimeperformanceevaluationofembeddedsoftware 100825224539-phpapp02Runtimeperformanceevaluationofembeddedsoftware 100825224539-phpapp02
Runtimeperformanceevaluationofembeddedsoftware 100825224539-phpapp02NNfamily
 
Runtime performance evaluation of embedded software
Runtime performance evaluation of embedded softwareRuntime performance evaluation of embedded software
Runtime performance evaluation of embedded softwareMr. Chanuwan
 
ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...
ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...
ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...Istanbul Tech Talks
 
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERSVTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERSvtunotesbysree
 
Basics of Automation, PLC and SCADA
Basics of Automation, PLC and SCADABasics of Automation, PLC and SCADA
Basics of Automation, PLC and SCADAIndira Kundu
 
chapter 1 of Operating system by gagne.ppt
chapter 1 of Operating system by gagne.pptchapter 1 of Operating system by gagne.ppt
chapter 1 of Operating system by gagne.ppt51b48265a74f87
 

Similar to Rekayasa-Perangkat-Lunak-Pertemuan-13.ppt (20)

ch28-software-reengineering.ppt
ch28-software-reengineering.pptch28-software-reengineering.ppt
ch28-software-reengineering.ppt
 
Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13
 
System Design
System DesignSystem Design
System Design
 
EMBEDDED SYSTEMS 1
EMBEDDED SYSTEMS 1EMBEDDED SYSTEMS 1
EMBEDDED SYSTEMS 1
 
about how software prototyping helps in SDLC
about how software prototyping helps in SDLCabout how software prototyping helps in SDLC
about how software prototyping helps in SDLC
 
Ch20
Ch20Ch20
Ch20
 
Real-Time Systems Intro.pptx
Real-Time Systems Intro.pptxReal-Time Systems Intro.pptx
Real-Time Systems Intro.pptx
 
Ppt on embedded system
Ppt on embedded systemPpt on embedded system
Ppt on embedded system
 
Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.
 
Resource Management in (Embedded) Real-Time Systems
Resource Management in (Embedded) Real-Time SystemsResource Management in (Embedded) Real-Time Systems
Resource Management in (Embedded) Real-Time Systems
 
Runtimeperformanceevaluationofembeddedsoftware 100825224539-phpapp02
Runtimeperformanceevaluationofembeddedsoftware 100825224539-phpapp02Runtimeperformanceevaluationofembeddedsoftware 100825224539-phpapp02
Runtimeperformanceevaluationofembeddedsoftware 100825224539-phpapp02
 
Runtime performance evaluation of embedded software
Runtime performance evaluation of embedded softwareRuntime performance evaluation of embedded software
Runtime performance evaluation of embedded software
 
ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...
ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...
ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...
 
Legacy system.
Legacy system.Legacy system.
Legacy system.
 
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERSVTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
 
Ch6
Ch6Ch6
Ch6
 
Ch15
Ch15Ch15
Ch15
 
Basics of Automation, PLC and SCADA
Basics of Automation, PLC and SCADABasics of Automation, PLC and SCADA
Basics of Automation, PLC and SCADA
 
ERTS_IV_ECE.pptx
ERTS_IV_ECE.pptxERTS_IV_ECE.pptx
ERTS_IV_ECE.pptx
 
chapter 1 of Operating system by gagne.ppt
chapter 1 of Operating system by gagne.pptchapter 1 of Operating system by gagne.ppt
chapter 1 of Operating system by gagne.ppt
 

Recently uploaded

Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdfKamal Acharya
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityMorshed Ahmed Rahath
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...drmkjayanthikannan
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfJiananWang21
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.Kamal Acharya
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxSCMS School of Architecture
 
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...jabtakhaidam7
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Arindam Chakraborty, Ph.D., P.E. (CA, TX)
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network DevicesChandrakantDivate1
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueBhangaleSonal
 
Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)Ramkumar k
 
Digital Communication Essentials: DPCM, DM, and ADM .pptx
Digital Communication Essentials: DPCM, DM, and ADM .pptxDigital Communication Essentials: DPCM, DM, and ADM .pptx
Digital Communication Essentials: DPCM, DM, and ADM .pptxpritamlangde
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilVinayVitekari
 
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptxrouholahahmadi9876
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARKOUSTAV SARKAR
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VDineshKumar4165
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTbhaskargani46
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsvanyagupta248
 

Recently uploaded (20)

Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)
 
Digital Communication Essentials: DPCM, DM, and ADM .pptx
Digital Communication Essentials: DPCM, DM, and ADM .pptxDigital Communication Essentials: DPCM, DM, and ADM .pptx
Digital Communication Essentials: DPCM, DM, and ADM .pptx
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech Civil
 
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 

Rekayasa-Perangkat-Lunak-Pertemuan-13.ppt

  • 1. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 1 Chapter 13 Real-time Software Design
  • 2. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 2 Real-time Software Design  Designing embedded software systems whose behaviour is subject to timing constraints
  • 3. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 3 Objectives  To explain the concept of a real-time system and why these systems are usually implemented as concurrent processes  To describe a design process for real-time systems  To explain the role of a real-time executive  To introduce generic architectures for monitoring and control and data acquisition systems
  • 4. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 4 Topics covered  Systems design  Real-time executives  Monitoring and control systems  Data acquisition systems
  • 5. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 5 Real-time systems  Systems which monitor and control their environment  Inevitably associated with hardware devices • Sensors: Collect data from the system environment • Actuators: Change (in some way) the system's environment  Time is critical. Real-time systems MUST respond within specified times
  • 6. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 6 Definition  A real-time system is a software system where the correct functioning of the system depends on the results produced by the system and the time at which these results are produced  A ‘soft’ real-time system is a system whose operation is degraded if results are not produced according to the specified timing requirements  A ‘hard’ real-time system is a system whose operation is incorrect if results are not produced according to the timing specification
  • 7. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 7 Stimulus/Response Systems  Given a stimulus, the system must produce a response within a specified time  Periodic stimuli. Stimuli which occur at predictable time intervals • For example, a temperature sensor may be polled 10 times per second  Aperiodic stimuli. Stimuli which occur at unpredictable times • For example, a system power failure may trigger an interrupt which must be processed by the system
  • 8. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 8 Architectural considerations  Because of the need to respond to timing demands made by different stimuli/responses, the system architecture must allow for fast switching between stimulus handlers  Timing demands of different stimuli are different so a simple sequential loop is not usually adequate  Real-time systems are usually designed as cooperating processes with a real-time executive controlling these processes
  • 9. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 9 A real-time system model Real-time control system Actuator Actuator Actuator Actuator Sensor Sensor Sensor Sensor Sensor Sensor
  • 10. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 10 System elements  Sensors control processes • Collect information from sensors. May buffer information collected in response to a sensor stimulus  Data processor • Carries out processing of collected information and computes the system response  Actuator control • Generates control signals for the actuator
  • 11. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 11 Sensor/actuator processes Data processor Actuator control Actuator Sensor control Sensor Stimulus Response
  • 12. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 12 System design  Design both the hardware and the software associated with system. Partition functions to either hardware or software  Design decisions should be made on the basis on non-functional system requirements  Hardware delivers better performance but potentially longer development and less scope for change
  • 13. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 13 Hardware and software design Establishsystem requirements Partition requirements Hardware requirements Hardware design Software requirements Software design
  • 14. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 14 R-T systems design process  Identify the stimuli to be processed and the required responses to these stimuli  For each stimulus and response, identify the timing constraints  Aggregate the stimulus and response processing into concurrent processes. A process may be associated with each class of stimulus and response
  • 15. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 15 R-T systems design process  Design algorithms to process each class of stimulus and response. These must meet the given timing requirements  Design a scheduling system which will ensure that processes are started in time to meet their deadlines  Integrate using a real-time executive or operating system
  • 16. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 16 Timing constraints  May require extensive simulation and experiment to ensure that these are met by the system  May mean that certain design strategies such as object-oriented design cannot be used because of the additional overhead involved  May mean that low-level programming language features have to be used for performance reasons
  • 17. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 17 State machine modelling  The effect of a stimulus in a real-time system may trigger a transition from one state to another.  Finite state machines can be used for modelling real-time systems.  However, FSM models lack structure. Even simple systems can have a complex model.  The UML includes notations for defining state machine models  See also Chapter 7.
  • 18. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 18 Microwave oven state machine Full power Enabled do: operate oven Full power Half power Half power Full power Number Timer Door open Door closed Door closed System fault Start do: set power = 600 Half power do: set power = 300 Set time do: get number exit: set time Disabled Operation Timer Cancel Waiting do: display time Waiting do: display time do: display 'Ready' do: display 'Waiting'
  • 19. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 19 Real-time programming  Hard-real time systems may have to programmed in assembly language to ensure that deadlines are met  Languages such as C allow efficient programs to be written but do not have constructs to support concurrency or shared resource management  Ada as a language designed to support real-time systems design so includes a general purpose concurrency mechanism
  • 20. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 20 Java as a real-time language  Java supports lightweight concurrency (threads and synchonized methods) and can be used for some soft real-time systems  Java 2.0 is not suitable for hard RT programming or programming where precise control of timing is required • Not possible to specify thread execution time • Uncontrollable garbage collection • Not possible to discover queue sizes for shared resources • Variable virtual machine implementation • Not possible to do space or timing analysis
  • 21. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 21 Real-time executives  Real-time executives are specialised operating systems which manage the processes in the RTS  Responsible for process management and resource (processor and memory) allocation  May be based on a standard RTE kernel which is used unchanged or modified for a particular application  Does not include facilities such as file management 14
  • 22. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 22 Executive components  Real-time clock • Provides information for process scheduling.  Interrupt handler • Manages aperiodic requests for service.  Scheduler • Chooses the next process to be run.  Resource manager • Allocates memory and processor resources.  Despatcher • Starts process execution.
  • 23. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 23 Non-stop system components  Configuration manager • Responsible for the dynamic reconfiguration of the system software and hardware. Hardware modules may be replaced and software upgraded without stopping the systems  Fault manager • Responsible for detecting software and hardware faults and taking appropriate actions (e.g. switching to backup disks) to ensure that the system continues in operation
  • 25. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 25 Process priority  The processing of some types of stimuli must sometimes take priority  Interrupt level priority. Highest priority which is allocated to processes requiring a very fast response  Clock level priority. Allocated to periodic processes  Within these, further levels of priority may be assigned
  • 26. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 26 Interrupt servicing  Control is transferred automatically to a pre-determined memory location  This location contains an instruction to jump to an interrupt service routine  Further interrupts are disabled, the interrupt serviced and control returned to the interrupted process  Interrupt service routines MUST be short, simple and fast
  • 27. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 27 Periodic process servicing  In most real-time systems, there will be several classes of periodic process, each with different periods (the time between executions), execution times and deadlines (the time by which processing must be completed)  The real-time clock ticks periodically and each tick causes an interrupt which schedules the process manager for periodic processes  The process manager selects a process which is ready for execution
  • 28. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 28 Process management  Concerned with managing the set of concurrent processes  Periodic processes are executed at pre-specified time intervals  The executive uses the real-time clock to determine when to execute a process  Process period - time between executions  Process deadline - the time by which processing must be complete
  • 29. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 29 RTE process management Resource manager Allocate memory and processor Scheduler Choose process for execution Despatcher Start execution on an available processor
  • 30. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 30 Process switching  The scheduler chooses the next process to be executed by the processor. This depends on a scheduling strategy which may take the process priority into account  The resource manager allocates memory and a processor for the process to be executed  The despatcher takes the process from ready list, loads it onto a processor and starts execution
  • 31. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 31 Scheduling strategies  Non pre-emptive scheduling • Once a process has been scheduled for execution, it runs to completion or until it is blocked for some reason (e.g. waiting for I/O)  Pre-emptive scheduling • The execution of an executing processes may be stopped if a higher priority process requires service  Scheduling algorithms • Round-robin • Rate monotonic • Shortest deadline first
  • 32. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 32 Monitoring and control systems  Important class of real-time systems  Continuously check sensors and take actions depending on sensor values  Monitoring systems examine sensors and report their results  Control systems take sensor values and control hardware actuators
  • 33. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 33 Burglar alarm system  A system is required to monitor sensors on doors and windows to detect the presence of intruders in a building  When a sensor indicates a break-in, the system switches on lights around the area and calls police automatically  The system should include provision for operation without a mains power supply
  • 34. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 34 Burglar alarm system  Sensors • Movement detectors, window sensors, door sensors. • 50 window sensors, 30 door sensors and 200 movement detectors • Voltage drop sensor  Actions • When an intruder is detected, police are called automatically. • Lights are switched on in rooms with active sensors. • An audible alarm is switched on. • The system switches automatically to backup power when a voltage drop is detected.
  • 35. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 35 The R-T system design process  Identify stimuli and associated responses  Define the timing constraints associated with each stimulus and response  Allocate system functions to concurrent processes  Design algorithms for stimulus processing and response generation  Design a scheduling system which ensures that processes will always be scheduled to meet their deadlines
  • 36. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 36 Stimuli to be processed  Power failure • Generated aperiodically by a circuit monitor. When received, the system must switch to backup power within 50 ms  Intruder alarm • Stimulus generated by system sensors. Response is to call the police, switch on building lights and the audible alarm
  • 37. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 37 Timing requirements Stimulus/Response Timing requirements Power fail interrupt The switch to backup power must be completed within a deadline of 50 ms. Door alarm Each door alarm should be polled twice per second. Window alarm Each window alarm should be polled twice per second. Movement detector Each movement detector should be polled twice per second. Audible alarm The audible alarm should be switched on within 1/2 second of an alarm being raised by a sensor. Lights switch The lights should be switched on within 1/2 second of an alarm being raised by a sensor. Communications The call to the police should be started within 2 seconds of an alarm being raised by a sensor. Voice synthesiser A synthesised message should be available within 4 seconds of an alarm being raised by a sensor.
  • 38. Process architecture Lighting control process Audible alarm process Voice synthesizer process Alarm system process Power switch process Building monitor process Communication process Door sensor process Movement detector process Window sensor process 560Hz 60Hz 400Hz 100Hz Power failure interrupt Alarm system Building monitor Alarm system Alarm system Alarm system Detector status Sensor status Sensor status Room number Alert message Room number Room number
  • 39. Building_monitor process 1 } // See http://www.software-engin.com/ for links to the complete // Java code for this example class BuildingMonitor extends Thread { BuildingSensor win, door, move ; Siren siren = new Siren () ; Lights lights = new Lights () ; Synthesizer synthesizer = new Synthesizer () ; DoorSensors doors = new DoorSensors (30) ; WindowSensors windows = new WindowSensors (50) ; MovementSensors movements = new MovementSensors (200) ; PowerMonitor pm = new PowerMonitor () ; BuildingMonitor() { // initialise all the sensors and start the processes siren.start () ; lights.start () ; synthesizer.start () ; windows.start () ; doors.start () ; movements.start () ; pm.start () ;
  • 40. Building_monitor process 2 public void run () { int room = 0 ; while (true) { // poll the movement sensors at least twice per second (400 Hz) move = movements.getVal () ; // poll the window sensors at least twice/second (100 Hz) win = windows.getVal () ; // poll the door sensors at least twice per second (60 Hz) door = doors.getVal () ; if (move.sensorVal == 1 | door.sensorVal == 1 | win.sensorVal == 1) { // a sensor has indicated an intruder if (move.sensorVal == 1) room = move.room ; if (door.sensorVal == 1) room = door.room ; if (win.sensorVal == 1 ) room = win.room ; lights.on (room) ; siren.on () ; synthesizer.on (room) ; break ; } } lights.shutdown () ; siren.shutdown () ; synthesizer.shutdown () ; windows.shutdown () ; doors.shutdown () ; movements.shutdown () ; } // run } //BuildingMonitor
  • 41. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 41 Control systems  A burglar alarm system is primarily a monitoring system. It collects data from sensors but no real- time actuator control  Control systems are similar but, in response to sensor values, the system sends control signals to actuators  An example of a monitoring and control system is a system which monitors temperature and switches heaters on and off
  • 42. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 42 A temperature control system Thermostat process Sensor process Furnace control process Heater control process 500Hz 500Hz Thermostat process 500Hz Sensor values Switch command Room number
  • 43. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 43 Data acquisition systems  Collect data from sensors for subsequent processing and analysis.  Data collection processes and processing processes may have different periods and deadlines.  Data collection may be faster than processing e.g. collecting information about an explosion.  Circular or ring buffers are a mechanism for smoothing speed differences.
  • 44. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 44 Reactor data collection  A system collects data from a set of sensors monitoring the neutron flux from a nuclear reactor.  Flux data is placed in a ring buffer for later processing.  The ring buffer is itself implemented as a concurrent process so that the collection and processing processes may be synchronized.
  • 45. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 45 Reactor flux monitoring Display Process data Sensor data buffer Sensor process Sensor identifier and value Processed flux level Sensors (each data flow is a sensor value)
  • 46. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 46 A ring buffer Consumer process Producer process
  • 47. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 47 Mutual exclusion  Producer processes collect data and add it to the buffer. Consumer processes take data from the buffer and make elements available  Producer and consumer processes must be mutually excluded from accessing the same element.  The buffer must stop producer processes adding information to a full buffer and consumer processes trying to take information from an empty buffer.
  • 48. Java implementation of a ring buffer 1 class CircularBuffer { int bufsize ; SensorRecord [] store ; int numberOfEntries = 0 ; int front = 0, back = 0 ; CircularBuffer (int n) { bufsize = n ; store = new SensorRecord [bufsize] ; } // CircularBuffer synchronized void put (SensorRecord rec ) throws InterruptedException { if ( numberOfEntries == bufsize) wait () ; store [back] = new SensorRecord (rec.sensorId, rec.sensorVal) ; back = back + 1 ; if (back == bufsize) back = 0 ; numberOfEntries = numberOfEntries + 1 ; notify () ; } // put
  • 49. Java implementation of a ring buffer 2 synchronized SensorRecord get () throws InterruptedException { SensorRecord result = new SensorRecord (-1, -1) ; if (numberOfEntries == 0) wait () ; result = store [front] ; front = front + 1 ; if (front == bufsize) front = 0 ; numberOfEntries = numberOfEntries - 1 ; notify () ; return result ; } // get } // CircularBuffer
  • 50. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 50 Key points  Real-time system correctness depends not just on what the system does but also on how fast it reacts  A general RT system model involves associating processes with sensors and actuators  Real-time systems architectures are usually designed as a number of concurrent processes
  • 51. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 13 Slide 51 Key points  Real-time executives are responsible for process and resource management.  Monitoring and control systems poll sensors and send control signal to actuators  Data acquisition systems are usually organised according to a producer consumer model  Java has facilities for supporting concurrency but is not suitable for the development of time-critical systems