Title: Task Structuring [2a parte]
1Task Structuring 2a parte
- Maurizio Mazza
- Corso di Ingegneria del Software II
2Sommario
- ? I/O task structuring criteria
- ? Internal task structuring criteria
- ? Task priority criteria
- ? Task clustering criteria
- ? Temporal clustering
- ? Sequential clustering
- ? Control clustering
- Mutually exclusive clustering
3Sommario
- Design Restructuring
- Sviluppo dellarchitettura dei task
- Sincronizzazione e comunicazione tra task
- Task Behavior Specification (TBS)
4Introduzione
- Task Structuring strutturazione di un
(sotto)sistema in task concorrenti. - Creazione di una task architecture
- Determinazione dei task concorrenti
- Definizione delle interfacce di comunicazione
5Introduzione
- 2 Fasi
- Criteri di I/O structuring, internal task
structuring e task priority (gia visti) - Il risultato è un mapping uno a uno da oggetti
dellanalysis modeling a task concorrenti. - Criteri di task clustering e task inversion
- Usati per ridurre il numero di task fisici del
sistema.
6Task Clustering CriteriaControl Clustering
- Un control object viene mappato in un task
separato (control task). - In certi casi un control task può essere
combinato con altri oggetti. - Azioni avviate dal control object a causa di una
transizione di stato che iniziano e completano
lesecuzione durante la transizione.
7Task Clustering CriteriaControl Clustering -
Esempio
input device interface Receipit PrintInterface
5 Print Receipt
6Printer Output
1 Withdrawal OK
state dependent control ATMControl
7 Receipt Printed
2 Dispense Cash
8 Eject
3 Dispenser Output
4 Cash Dispensed
input device interface CashDispenser Interface
Collaboration diagram iniziale (analysis model)
8Task Clustering CriteriaControl Clustering -
Esempio
7 Receipt Printed / 8 Eject
Ejecting
Printing
4 Cash Dispensed / 5 Print Receipt
Dispensing
Processing Withdrawal
1 Withdrawal OK / 2 Dispense Cash
Satechart associato alloggetto state-dependent
ATM Control
9Task Clustering CriteriaControl Clustering -
Esempio
1 ATMControl Request
6 printerOutput
control clustering ATM Controller
3 dispenserOutput
8 eject
Collaboration diagram finale (design model) i
tre oggetti precedenti sono stati raggruppati in
un unico task con stereotopo control clustering
10Task Clustering CriteriaMutually Exclusive
Clustering
- Si usa se esiste un gruppo di task in cui, per i
constraint imposti dallapplicazione, uno solo di
loro è in esecuzione in ogni momento. - Questi task possono essere raggruppati dentro ad
un unico task.
11state dependent contol CruiseControl
Enable Resume Cruising Disable Resume Cruising
Enable Increase Speed Disable Increase Speed
Enable Maintain Speed Disable Maintain Speed
Reached Cruising
algorithm Acceleration
algorithm Cruiser
algorithm Resumption
Desired Speed value
Desired Speed value
Read
Read
Throttle Value
Throttle Value
output device interface ThrottleInterface
entity DesiredSpeed
Current Speed Value
Throttle Value
Current Speed Value
Read
entity CurrentSpeed
Read
Current Speed value
12control CruiseControl
select() clear()
cruiseControl Command
reached Cruising
mutually exclusive clustering SpeedAdjustment
entity DesiredSpeed
read(out currentSpeed Value)
throttle Value
periodic output device interface
ThrottleInterface
read(out currentSpeed Value)
entity CurrentSpeed
Collaboration diagram finale (design model) i
tre oggetti precedenti con con stereotopo
algorithm sono stati rggruppati in un unico
task.
13Design Restructuring
- Scopo ridurre in modo sistematico il numero
- di task che costituiscono un sistema.
- Utilizzo dei criteri di task inversion per
raggruppare insieme diversi task e diminuire
loverhead dovuto alla comunicazione. - Multiple instance task inversion
- Sequential task inversion
- Temporal task inversion
14Design RestructuringMultiple Instance Task
Inversion
- Sostituzione di tutti i task dello stesso tipo
con un solo task che svolge lo stesso servizio. - Caso tipico sistema con tante istanze di control
object dello stesso tipo.
15Design RestructuringMultiple Instance Task
Inversion
multiple instance inversion
Elevator Controller
control Elevator Control
entity Elevator StateInformation
Invece di avere tante istanze di oggetti attivi
(come a sinistra) si tiene un unico oggetto
attivo a cui si associano tante istanze di
oggetti passivi per mantenere le informazioni
relative allo stato (figura a destra)
16Design RestructuringSequential Task Inversion
- Si usa quando vi è una comunicazione tightly
coupled (sincrona) tra due o più task. - Il task che genera il messaggio (produttore)
viene combinato in un unico task con il
destinatario (consumatore). - Invece di mandare un messaggio, il produttore
chiama unoperazione fornita dal consumatore.
17cruiseControl Request
control CruiseControl
select() clear()
cruiseControl Command
reached Cruising
mutually exclusive clustering SpeedAdjustment
entity DesiredSpeed
read(out currentSpeed Value)
throttle Value
read(out currentSpeed Value)
periodic output device interface
ThrottleInterface
entity CurrentSpeed
throttlePosition
external output device Thtottle
18Design RestructuringSequential Task Inversion
cruiseControl Request
sequential inversion InvertedCruise Control
read(out currentSpeed Value)
throttlePosition
external output device Thtottle
entity CurrentSpeed
Collaboration diagram ristrutturato i tre
oggetti precedenti sono stati raggruppati in un
unico task con stereotopo sequential inversion
19Design RestructuringTemporal Task Inversion
- Con questa tecnica, due o più periodic task
(periodic internal, periodic I/O, temporally
clustered) vengono combinati in un solo task. - Il task globale ha una procedura di schedulazione
che determina quando è il momento giusto di
eseguire una particolare operazione.
20Design RestructuringTemporal Task Inversion
timer Event
timer Event
temporal clustering AutoSensor
temporal clustering Calibration
cruiseControl Request
start(), stop()
control CruiseControl
entity CalibrationConstant
Collaboration diagram iniziale (analysis model)
i due oggetti temporal clustering possono
essere raggruppati
21Design RestructuringTemporal Task Inversion
external timer DigitalClock
timer Event
temporal inversion Periodic
start(), stop()
cruiseControl Request
control CruiseControl
entity CalibrationConstant
Collaboration diagram finale (design model) i
due oggetti precedenti sono stati raggruppati in
un unico task con stereotopo temporal inversion
22Sviluppo dellarchitetturadei task
- I criteri di task structuring si applicano ìn
- questo ordine
- Device interface task si inizia con i device
interface object che interagiscono con il mondo
esterno. - Control task analizzare tutti gli
state-dependent control object e strutturarli
come dei control task.
23Sviluppo dellarchitetturadei task (continua)
- Periodic task analizzare tutte le attivitÃ
interne periodiche, che vanno strutturate come
periodic task. - Altri task interni.
- Il risultato di questa fase è un collaboration
- diagram concorrente che mostra tutti i task del
- sistema.
- Quello che manca è stabilire il tipo di
- comunicazione tra i vari task.
24Dagli Analysis Model Objectai Design Model Task
Analysis Model (object)
Design Model (task)
- User interface
- Device interface
- Sistem Interface
- User Interface
- Sequential clustering
- Control clustering
- Asynchronous device interface
- Periodic device interface
- Passive device interface
- Resource monitor
- Temporal clustering
- Sequential clustering
- Asynchronous system interface
- Qualunque criterio di clustering
25Dagli Analysis Model Objectai Design Model Task
Analysis Model (object)
Design Model (task)
- Entity
- Timer
- State-dependent control
- Coordinator
- Buisness logic
- Algorithm
- Sequential server
- Concurrent server
- Periodic, Temporal clustering
- Sequential clustering
- Control, Control clustering
- Coordinator
- Sequential clustering
- Asynchronous buisness logic
- Periodic buisness logic
- Asynchronous/Periodic algorithm
- Non-time-critical
26subsystem BankServer
Collaboration diagram iniziale (design model)le
interfacce non sono specificate
ATM Transaction
Bank Responses
Dispenser Output
client subsystem ATMClient
passive output device Cash Dispenser
Card Reader Input
Card Inserted, Card Ejected, Card Confiscated
Cash Withdrawal Amount
asynchronous I/O device CardReader
asynchronous I/O device interface
CardReader Interface
data abstraction ATMCash
Card Reader Output
Cash Response
Eject, Confiscate
Cash Added
Card Input Data
control clustering ATMControl
Start Up, Closedown
Operator Input
data abstraction ATMCard
user interface Operator Interface
Transaction Data
Operator Info
Update Transaction Status(Cash Details), Update
PIN Status, Transaction Request
Card Data
Card Request
Operator
Customer Input
user interface CustomerInterface
data abstraction ATM Transaction
Customer Info
ATM Customer
Display Information
Transaction Details
27Sincronizzazione e Comunicazione tra task
- Definizione delle interfacce di comunicazione
- dei task.
- Fino ad ora le interfacce tra i task sono
semplici messaggi, come descritto nellanalysis
model. - Necessità di mappare queste interfacce nella
forma di messaggi più specifici.
28Loosely Coupled (Asynchronous) Message
Communication
- Il task sorgente manda un messaggio al
destinatario e continua la sua esecuzione senza
aspettare una risposta. - Visto che i due task possono evolvere a velocitÃ
diverse, è consigliabile lintroduzione di una
coda di messaggi tra i due. - Se non ci sono messaggi disponibili quando il
destinatario ne richede uno, la sua esecuzione
viene sospesa.
29Loosely Coupled (Asynchronous) Message
Communication
Cruise Control Request
asynchronous input device interface
CruiseControl LeverInterface
control CruiseControl
Cruise Control Request
asynchronous input device interface
CruiseControl LeverInterface
control CruiseControl
30Tightly Coupled (Synchronous) Message Comm. con
risposta
- Il task sorgente, dopo aver mandato il messaggio
al destinatario, viene sospeso in attesa di una
risposta. - Quando il destinatario riceve il messaggio, lo
processa, genera una risposta e la manda al task
sorgete. - In questo modo entrambi possono continuare.
- Se non ci sono messaggi, il destinatario del
messaggio viene sospeso.
31Tightly Coupled (Synchronous) Message Comm. con
risposta
server subsystem BankServer
ATM Transaction
client subsystem ATMClient
Bank Response
server subsystem BankServer
ATM Transaction
client subsystem ATMClient
Bank Response
32Tightly Coupled (Synchronous) Message Comm. senza
risposta
- Dopo aver mandato il messaggio al task
destinatario, il task sorgente si blocca in
attesa che questi lo riceva. - Quando il messaggio arriva, il destinatario lo
accetta, sbloccando così il sorgrnte. - A questo punto entrambi posssono continare.
- Anche in questo caso il destinatario viene
sospeso se non ci sono messaggi.
33Tightly Coupled (Synchronous) Message Comm. senza
risposta
Temperature and Pressure Statistics
passive output device interface
SensorStatistics DisplayInterface
non-time-crirical SensorStatistics Algorithm
Temperature and Pressure Statistics
passive output device interface
SensorStatistics DisplayInterface
non-time-crirical SensorStatistics Algorithm
34Event Synchronization
- Esistono tre tipi diversi di eventi per la
- sincronizzazione
- Eventi esterni
- Tipicamente un interrupt da un dispositivo di I/O
- Eventi timer
- Rappresentano lattivazione periodica di un task
- Eventi interni
- Rappresentano la sincronizzazione tra un task
sorgente ed uno destinazione
35Event SynchronizationEventi Esterni
Cruise Control Input
asynchronous input device interface
CruiseControl LeverInterface
asynchronous input device CruiseControlLever
cruiseControlInterrupt (cruiseControlInput)
asynchronous input device interface
CruiseControl LeverInterface
asynchronous input device CruiseControlLever
36Event SynchronizationEventi Timer
Distance Timer Event
external timer DigitalClock
periodic Distance Timer
distance TimerEvent
external timer DigitalClock
periodic Distance Timer
37Event SynchronizationEventi Interni
- Si usa quando due task devono sincronizzare le
- loro operazioni senza bisogno di scambiarsi
- dei dati.
- Il task sorgente segnala levento.
- Il task di destinazione che aspetta levento
viene sospeso finchè levento non viene
segnalato. - Se levento era già stato segnalato, il
destinatario non viene sospeso.
38Event SynchronizationEventi Interni
control pickPlaceRobot
control drillingRobot
Part Ready
Part Completed
control pickPlaceRobot
control drillingRobot
Part Ready
Part Completed
39subsystem BankServer
Collaboration diagram finale (design model)tutte
le interfacce sono specificate
ATM Transaction
Bank Responses
Dispenser Output
client subsystem ATMClient
passive output device Cash Dispenser
Card Reader Input
Card Inserted, Card Ejected, Card Confiscated
withdrawCash
asynchronous I/O device CardReader
asynchronous I/O device interface
CardReader Interface
data abstraction ATMCash
Card Reader Output
Eject, Confiscate
addCash
write (card Data)
control clustering ATMControl
Start Up, Closedown
Operator Input
data abstraction ATMCard
Update Transaction Status(Cash Details), Update
PIN Status( Status), read(out Transaction Data)
user interface Operator Interface
Read( Out card Data)
Operator Info
Operator
Customer Input
user interface CustomerInterface
data abstraction ATM Transaction
updateCustomer Info (cardData,PIN), updateCustomer
Select (in slection out details)
ATM Customer
Display Information
40Task Behavior Specification
- Descrive il comportamento di un task
- concorrente. In particolare
- Interfaccia
- Struttura
- Caratteristiche temporali
- PrioritÃ
- Errori
41Task Behavior Specification
- Interfaccia del task
- Messaggi input e output
- Tipo di interfaccia
- Eventi segnalati (input e output)
- Input o output esterni
- Oggetti passivi riferiti
42Task Behavior Specification
- 1. Interfaccia del task ESEMPIO
- Input
- Eventi Card reader external interrupt to
indicate that a card has been input. - Input esterni cardReaderInput
- Loosely coopled message communication
- Eject,confiscate
- Output
- Output esterni cardReaderInput
- Loosely coopled message communication
- cardInserted, cardEjected, cardConfiscated
- Passive object acceduti ATMCard
43Task Behavior Specification
- Informazioni sulla struttura dei Task
- Criteri di task structuring usati
- Oggetti dellanalysis model mappati nel task
- Caratteristiche temporali
- Frequenza di attivazione
- Tempo di esecuzione stimato (Ci )
44Task Behavior Specification
- 2. Struttura del task ESEMPIO
- Criterio Asynchronous Input Device Interface
- Oggetti mappati nel task
- cardReaderInterface
- Caratteristiche temporali ESEMPIO
- Attivazione Asynchronous-from external card
reader. - Worst case inter-arrival time 500 msec.
- Average inter-arrival time gt 5 minutes.
- Tempo di esecuzione Ci 5ms per message
45Task Behavior Specification
- Priorità relativa del task
- Errori riscontrati nel task
- Event sequence logic
- Non ancora visto
46Task Behavior Specification
- Priorità del task ESEMPIO
- High-Needs to be responsive to incoming cards.
- Errori riscontrati ESEMPIO
- Unrecognized card. Card reader malfunction
- Event sequence logic
- Ancora da vedere