Task Structuring [2a parte] - PowerPoint PPT Presentation

About This Presentation
Title:

Task Structuring [2a parte]

Description:

Task Structuring [2a parte] Maurizio Mazza Corso di Ingegneria del Software II Sommario I/O task structuring criteria Internal task structuring criteria Task ... – PowerPoint PPT presentation

Number of Views:66
Avg rating:3.0/5.0
Slides: 39
Provided by: Mauri77
Category:

less

Transcript and Presenter's Notes

Title: Task Structuring [2a parte]


1
Task Structuring 2a parte
  • Maurizio Mazza
  • Corso di Ingegneria del Software II

2
Sommario
  • ? I/O task structuring criteria
  • ? Internal task structuring criteria
  • ? Task priority criteria
  • ? Task clustering criteria
  • ? Temporal clustering
  • ? Sequential clustering
  • ? Control clustering
  • Mutually exclusive clustering

3
Sommario
  • Design Restructuring
  • Sviluppo dellarchitettura dei task
  • Sincronizzazione e comunicazione tra task
  • Task Behavior Specification (TBS)

4
Introduzione
  • Task Structuring strutturazione di un
    (sotto)sistema in task concorrenti.
  • Creazione di una task architecture
  • Determinazione dei task concorrenti
  • Definizione delle interfacce di comunicazione

5
Introduzione
  • 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.

6
Task 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.

7
Task 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)
8
Task 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
9
Task 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
10
Task 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.

11
state 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
12
control 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.
13
Design 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

14
Design 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.

15
Design 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)
16
Design 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.

17
cruiseControl 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
18
Design 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
19
Design 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.

20
Design 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
21
Design 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
22
Sviluppo 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.

23
Sviluppo 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.

24
Dagli 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

25
Dagli 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

26
subsystem 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
27
Sincronizzazione 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.

28
Loosely 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.

29
Loosely 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
30
Tightly 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.

31
Tightly 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
32
Tightly 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.

33
Tightly 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
34
Event 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

35
Event 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
36
Event SynchronizationEventi Timer
Distance Timer Event
external timer DigitalClock
periodic Distance Timer
distance TimerEvent
external timer DigitalClock
periodic Distance Timer
37
Event 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.

38
Event SynchronizationEventi Interni
control pickPlaceRobot
control drillingRobot
Part Ready
Part Completed
control pickPlaceRobot
control drillingRobot
Part Ready
Part Completed
39
subsystem 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
40
Task Behavior Specification
  • Descrive il comportamento di un task
  • concorrente. In particolare
  • Interfaccia
  • Struttura
  • Caratteristiche temporali
  • Priorità
  • Errori

41
Task Behavior Specification
  • Interfaccia del task
  • Messaggi input e output
  • Tipo di interfaccia
  • Eventi segnalati (input e output)
  • Input o output esterni
  • Oggetti passivi riferiti

42
Task 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

43
Task 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 )

44
Task 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

45
Task Behavior Specification
  • Priorità relativa del task
  • Errori riscontrati nel task
  • Event sequence logic
  • Non ancora visto

46
Task 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
Write a Comment
User Comments (0)
About PowerShow.com