0% found this document useful (0 votes)
45 views

Real-Time Software Design

This document discusses real-time software design patterns for distributed and real-time systems. It describes the Active Object pattern, which decouples method execution from invocation to enhance concurrency. A restaurant example is provided. The Monitor Object pattern synchronizes method execution to ensure only one runs at a time. Both patterns aim to meet timing requirements in real-time systems through concurrent processing and synchronization.

Uploaded by

ANKIT AGG
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views

Real-Time Software Design

This document discusses real-time software design patterns for distributed and real-time systems. It describes the Active Object pattern, which decouples method execution from invocation to enhance concurrency. A restaurant example is provided. The Monitor Object pattern synchronizes method execution to ensure only one runs at a time. Both patterns aim to meet timing requirements in real-time systems through concurrent processing and synchronization.

Uploaded by

ANKIT AGG
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 19

Real-time Software Design

Design Patterns for


Real-Time
Systems

Guide Faculty
Mrs. Barkha Vijh

Presented By;
Mayank
kaushik
Introduction
 A Design Pattern is a general reusable
solution to a commonly occurring problem in
software design.[1]
 A Distributed Computing System is a method
of computer processing in which different
parts of a program run simultaneously on two
or more computers that are communicating
with each other over a network. [2]
 A Real-Time Computing System is the study
of hardware and software systems which
are subject to a "real-time constraint“.[3]
Real-Time System
Design Pattern

It’s a reusable solution that can be


applied either
A Distributed System
or
A Real-Time System
Active Object
 Intent
“Decouples method execution from method
invocation to enhance concurrency and
simplify synchronized access to an object
that resides in its own thread of control. “ [4]

This design pattern may also be referred to


as Concurrent Object and Actor
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 therefore usually
designed as cooperating processes with a
real-time executive controlling these
processes.
Active Object Design Pattern
Example - Restaurant
 Customer -> Client

 Waiter -> Proxy


Active Object Design Pattern
Example - Restaurant
 Manager -> Scheduler

 Order Queue -> Activation Queue


Active Object Design Pattern
Example - Restaurant
 Order -> Method Request

 Servant -> Chef


Active Object Design Pattern
Consequences
 Pro’s
• Enhances concurrency
• Simplifies synchronization
• Method execution order can differ from
invocation order

 Con’s
• Performance overhead
• Hard to debug
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 arestarted
in time to meet their
deadlines.
Integrate using a real-time
operating system.
Active Object Design Pattern
Known Uses

 CORBA ORBs
 ACE Framework

 Siemens MedCom

 Siemens Call Center

management system
 Actors
Monitor Object
 Intent
“The Monitor Object pattern synchronizes
method execution to ensure only one method
runs within an object at a time. It also allows
an object’s methods to cooperatively schedule
their execution sequences. “ [5]

This design pattern may also be referred to


as Thread-safe Passive Object.
Monitor Object Design Pattern
Pitfalls
Calling wait() in unstable state
 Forget to release lock when an exception
occurs
 Not making the method synchronized when
needed
Monitor Object Design Pattern
Another Example
monitor account {
int balance := 0

function withdraw(int amount) {


if amount < 0 then error "Amount may not be negative"
else if balance < amount then error "Insufficient funds"
else balance := balance - amount
}

function deposit(int amount) {


if amount < 0 then error "Amount may not be negative"
else balance := balance + amount
}
}
Monitor Object Design Pattern
Consequences
 Pro’s
• Simplification of concurrency control implementation
• Simplify synchronization of methods invoked concurrently on
an object
• Synchronized methods can cooperatively schedule their
order of execution

 Con’s
• Concurrency remains complicated
• Tightly coupling between object functionality and
synchronization mechanisms
• Nested monitor lockout
• New problems, deadlocks and starvation
Monitor Object Design Pattern
Known Uses

 Java Objects
 ACE Gateway
Conclusion

Active Object:
 Separates method invocation from

method execution.

Monitor Object:
 Synchronizes method execution to

ensure only one method runs within an


object at a time.
Thank You

Questions?

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy