Task Structuring COMET TASK STRUCTURING - Prima parte -

Slides:



Advertisements
Presentazioni simili
Scheduling (Schedulazione) Susanna Pelagatti – Università di Pisa
Advertisements

Interazione Uomo - Macchina
Gestione Input Output A. Ferrari.
STRUTTURA DEL PERSONAL COMPUTER
Il Sistema Operativo.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Obiettivo della tesi Percorso
LInterfaccia Utente Ing. Marco Giannini Prof. Giuseppe Mastronardi Architettura e Programmazione dei Microelaboratori Anno accademico 2008/2009.
MODULO 1 Linguaggi di Programmazione (Complementi) 1 IMPLEMENTAZIONE DEL SISTEMA MULTI-AGENTE ABACO CON LA PIATTAFORMA RTP.
Tipologie di Controlli in Ambito Industriale
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Scheduling in Linux (Kernel 2.6)
Introduzione al calcolo parallelo SISTEMI INFORMATIVI AZIENDALI Pierpaolo Guerra Anno accademico 2009/2010.
1 9: Progettazione Architetturale Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
1 14. Verifica e Validazione Come assicurarsi che il software corrisponda alle necessità dellutente? Introdurremo i concetti di verifica e validazione.
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Le prestazioni (velocità) di un singolo disco sono limitate dalla tecnologia usata, -per aumentare le prestazioni si può pensare di far operare in parallelo.
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 6 1 Programmi concorrenti: quanto è lungo un millisecondo? In un normale personal computer.
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2 1 JAVA: obiettivi di progetto del linguaggio Nota storica: Il linguaggio JAVA (inizialmente.
Struttura dei sistemi operativi (panoramica)
La Riflessione computazione Elisa Ferrando. Cos è la Riflessione La Riflessione Sistema riflessivo Sistema computazionale.
Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità
FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Interazione utente-programma
Sistemi Operativi SCHEDULING DELLA CPU.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Introduzione alla modellazione di sistemi interattivi
INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
TECNICHE DI INPUT/OUTPUT
Modulo 1 - Hardware u.d. 3 (syllabus – 1.3.5)
STRUTTURA GENERALE DI UN ELABORATORE
L' ARCHITETTURA DI VON NEUMANN
L’ingegneria del software
La schedulazione dei processi
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
Commenti all’esempio del treno Nell’esempio del treno si è iniziato dalle attività generiche che tipicamente servono per portare a termine i compiti iniziali.
Commenti all’esempio del treno Nell’esempio del treno si è iniziato dalle attività generiche e/o attività operative che tipicamente costituiscono i passi.
Sistema Operativo (Software di base)
Task Structuring [2 a parte] Maurizio Mazza Corso di Ingegneria del Software II.
1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
I processi.
Il Sistema Operativo Il Sistema Operativo è costituito dall’insieme dei programmi necessari per far funzionare tutto l’hardware del calcolatore e per nascondere.
Dynamic Modeling in COMET Seconda parte Valentina Cordì.
CRUISE CONTROL AND MONITORING SYSTEM Case study Luigi Tosetto.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
SOFTWARE ARCHITECTURAL DESIGN NEL METODO COMET Corso di Ingegneria del Software 2 Anno Accademico Demergasso Daniela.
Gestione del processore (Scheduler)
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Processi e Thread Processi e thread in Windows 2000.
Progetto di un Gestore di Nomi Corso di Reti di Calcolatori L-S prof. Antonio Corradi A.A 2003/2004 Autore: Molesini Ambra.
1 Processi e Thread Scheduling (Schedulazione). 2 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
 Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo  Secondo livello:
1 SYNCHRONOUS/ REACTIVE PROGRAMMING In Sistemi Software Concorrenti.
1 Ethereal. 2 I protocolli di rete Per meglio comprendere i protocolli di rete, è molto utile vederli “in azione”, osservando la sequenza dei messaggi.
Informatica Generale Marzia Buscemi
GESTIONE RETI TCP/IP l troubleshooting è necessario per risolvere molti problemi che si possono verificare all'interno di una rete, una delle aspirazioni.
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
Implementazioni di un analizzatore di protocollo Esistono quattro fondamentali tradeoff per la realizzazione di un analizzatore di protocollo:  Analisi.
© 2016 Giorgio Porcu - Aggiornamennto 18/03/2016 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi.
HEC-FIA 2.2 ( flood impact analysis) Modello realizzato da: Programma scaricabile da: fia/downloads.aspx.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti Lezione n°9.
Transcript della presentazione:

Task Structuring COMET TASK STRUCTURING - Prima parte -

Indice Introduzione - Introduzione - Cosa si intende per taskCosa si intende per task - Task Stucturing: obiettiviTask Stucturing: obiettivi Task Stucturing Categories (first stage) - Task Stucturing Categories (first stage) - I/O Task Structuring criteriaI/O Task Structuring criteria - Task interfaccia per I/O device asincroni Task interfaccia per I/O device asincroni - Task interfaccia per I/O device periodici Task interfaccia per I/O device periodici - Task interfaccia per I/O device passivi Task interfaccia per I/O device passivi - Resource Monitor Task Resource Monitor Task - Internal Task Structuring criteriaInternal Task Structuring criteria - Tasks Periodici Tasks Periodici - Tasks Asincroni Tasks Asincroni - Control Tasks Control Tasks - User Interface Tasks User Interface Tasks

Indice - Task Priority criteriaTask Priority criteria - Time-Citical Tasks Time-Citical Tasks - Non-Time-Critical Tasks Non-Time-Critical Tasks -Task Stucturing Categories (second stage) - Task Clustering criteriaTask Clustering criteria - Temporal Clustering Temporal Clustering - Sequential Clustering Sequential Clustering - Control Clustering - Clustering mutuamente esclusivo - Task Inversion criteria

Cosa si intende per task - -Un oggetto attivo con un proprio thread di controllo. - -Dall’ Analysis Model object-oriented si sviluppa una task architecture : - tasks concorrenti - classi passive Cos’è un task

Task Structuring: obiettivi - -Semplificare e rendere più chiaro il design senza introdurre inutilmente troppi tasks Obiettivi Separation of concerns : Un task usa information hiding per aspetti riguardanti la concorrenza (timing, controllo, sequenzialitá, comunicazione). Una classe per aspetti strutturali.

Nel ciclo di vita del software COMET Analysis Modeling 2 Task Structuring: obbiettivi Design Modeling Incremental Software Construction

Task Structuring Categories - -Per aiutare il designer esistono delle linee guida ( criteria ), divise in categorie. - -Questa divisione si basa sull’ attività di Task Structuring a cui le categorie si riferiscono. Task Structuring Categories

I/O Task Structuring criteria - -Determinare gli I/O tasks come interfacce dei device esterni - -Quando si attiva un particolare I/O task I/O Task Structuring criteria

Attività iniziali: - -Analizzare le caratteristiche degli I/O devices - -Analizzare la natura dei dati

I/O Task Structuring criteria Caratteristiche degli I/O device - -Device asincrono : è interrupt - driven - -Device passivo : non genera interrupt al completamento delle operazioni di I/O - -Comunication link : alcuni device esterni al sistema comunicano con esso attraverso un collegamento, con scambio di messaggi

I/O Task Structuring criteria Natura dei dati - -Dato discreto : ha un numero finito di valori; viene campionato ad ogni cambiamento - -Dato analogico : può avere anche un numero infinito di valori; viene campionato su richiesta o periodicamente

I/O Task Structuring criteria - -Se esiste un device asincrono deve esistere anche un suo task di interfaccia verso il sistema, che si attiva tramite un interrupt generato dal device - -Se occorre un task di interfaccia può demandare la computazione ad altri task e rimettersi in attesa di un altro interrupt Task interfaccia per I/O device asincroni

I/O Task Structuring criteria Task interfaccia per I/O device asincroni: ESEMPIO > :CruiseControlLever 1: CruiseControl Input :CruiseControl > :CruiseControlLever Interface 2: CruiseControl Request ANALYSIS MODEL

I/O Task Structuring criteria Task interfaccia per I/O device asincroni: ESEMPIO > :CruiseControlLever 1: CruiseControl interrupt (CruiseControlInput) :CruiseControl > :CruiseControlLever Interface 2: CruiseControl Request

I/O Task Structuring criteria - -É un task di interfaccia per un device passivo ( es: sensore ), i cui dati devono essere campionati periodicamente. - -Si attiva con un timer event, porta a termine le operazioni di I/O e ritorna in attesa per il prossimo timer event. Task interfaccia per I/O device periodici

I/O Task Structuring criteria Task interfaccia per I/O device periodici: ESEMPIO > :Engine 1: EngineInput > :EngineInterface 2: engineOn 2A: engineOff ANALYSIS MODEL

I/O Task Structuring criteria Task interfaccia per I/O device periodici: ESEMPIO > :Engine 1: read (out EngineInput) > :DigitalClock > :EngineInterface 0: TimerEvent 2: engineOn 2A: engineOff

I/O Task Structuring criteria - -Simile al precedente, si usa però per ricevere o inviare dati a device passivi su richiesta, in genere tramite messaggio. - -Si utilizzano maggiormente con device di output. Task interfaccia per I/O device passivi

I/O Task Structuring criteria Task interfaccia per I/O device passivi: ESEMPIO > :Display 3: SensorStatistics > :SensorStatistics Algorithm > :SensorStatisticDisplay Interface 2: Temperature&Pressure Statistics > :SensorData Repository 1.1: Sensor Data 1: Sensor Request ANALYSIS MODEL

I/O Task Structuring criteria Task interfaccia per I/O device passivi: ESEMPIO > :Display 3: SensorStatistics > :SensorStatistics Algorithm > :SensorStatisticDisplay Interface 2: Temperature&Pressure Statistics > :SensorData Repository 1: read (out sensorData)

I/O Task Structuring criteria - -É un caso speciale di task per I/O device passivi. - -Richieste da sorgenti diverse: -coordinare tali richieste -evitare la perdita di dati -garantire che vengano soddisfatte sequenzialmente. Resource Monitor Task

I/O Task Structuring criteria Resource Monitor Task: ESEMPIO > :FloorLamp :anElevatorControl 3,4: FloorLamp Output > :FloorLamp Inteface 1: FloorLamp Command :another ElevatorControl 2: FloorLamp Command ANALYSIS MODEL

I/O Task Structuring criteria Resource Monitor Task: ESEMPIO > :FloorLamp :anElevatorControl 3,4: FloorLamp Output > :FloorLamp Inteface 1: FloorLamp Command :another ElevatorControl 2: FloorLamp Command

Internal Task Structuring criteria - -Determinare i tasks interni, non di I/O - -Quando si attiva un particolare task interno Internal Task Structuring criteria

- -Soprattutto in sistemi concorrenti o real-time. - -Si attiva con un timer event, porta a termine le operazioni di I/O e ritorna in attesa per il prossimo timer event. Tasks periodici - -Attività da eseguire periodicamente.

Internal Task Structuring criteria Tasks periodici: ESEMPIO > :Distance 3.1: ShaftRotation CountValue > :DigitalClock > :DistanceTimer 1: TimerEvent 2: Calculate > :ShaftRotation Count > :Calibartion Constant 4.1: Calibartion ConstantValue 3: Read 4: Read ANALYSIS MODEL

Internal Task Structuring criteria Tasks periodici: ESEMPIO > :Distance 3: read (out ShaftRotationCountValue) > :DigitalClock > :DistanceTimer 1: TimerEvent 2: Calculate > :ShaftRotation Count > :Calibartion Constant 4: read (out CalibartionConstantValue)

Internal Task Structuring criteria - -Attività su richiesta. - -Si attiva su richiesta tramite un messaggio interno od un evento, inviato ad es. da un’altro task, porta a termine le operazioni e ritorna in attesa per il prossimo messaggio od evento. Tasks asincroni

Internal Task Structuring criteria Tasks asincroni: ESEMPIO > :Cruiser 3.1: CurrentSpeedValue > :ThrottleInterface > :CruiseControl 4: Throttle Value 1: Cruise Control Command > :CurrentSpeed > :Desired Speed 2.1: DesideredSpeedValue 5: Throttle Position 3: Read 2: Read ANALYSIS MODEL

Internal Task Structuring criteria Tasks asincroni: ESEMPIO > :Cruiser 3: read (out CurrentSpeedValue) > :ThrottleInterface > :CruiseControl 4: Throttle Value 1: Cruise Control Command > :CurrentSpeed > :Desired Speed 2: read (out DesideredSpeedValue) 5: Throttle Position

Internal Task Structuring criteria - -Un task che esegue uno statechart sequenzial- mente. Control Tasks - -Negli statecharts non è permessa la concorrenza.

Internal Task Structuring criteria Control Tasks: ESEMPIO 1: CruiseControl Request > :CruiseControl 2: CruiseControl Command ANALYSIS MODEL

Internal Task Structuring criteria Control Tasks: ESEMPIO 1: CruiseControl Request > :CruiseControl 2: CruiseControl Command

Internal Task Structuring criteria - -Situazione : un utente porta a termine una serie di operazioni sequenzialmente. - -Tale task si interfaccia con I/O device ( tastiera, display, mouse...) in modo standard tramite il sistema operativo. User Interface Tasks

Internal Task Structuring criteria User Interface Tasks: ESEMPIO 1: OperatorCommand > :OperatorInterface 2.1: SensorData :Operator > : SensorData Repository 3: DisplayData 2: SensorRequest ANALYSIS MODEL

Internal Task Structuring criteria User Interface Tasks: ESEMPIO 1: OperatorCommand > :OperatorInterface 2: read (out SensorData) :Operator > : SensorData Repository 3: DisplayData

Internal Task Structuring criteria - -In UNIX un utente può comunque decidere di eseguire diverse attività concorrentemente, ser- vendosi dei processi in background. -In Windows otteniamo lo stesso risultato operando su più finestre. - -Più tasks di interfaccia utente. User Interface Tasks (multipli)

Internal Task Structuring criteria User Interface Tasks: ESEMPIO 2 1: Factory StatusQuery > :FactoryStatus Window 2: read (out FactoryStatus) :Operator > :FactoryStatus Repository 3: Status DisplayData > :FactoryAlarm Window 2A: read (out AllarmStatus) > :FactoryAllarm Repository 1A: Allarm Query 3A: Allarm DisplayData

Internal Task Structuring criteria - -É possibile che si debbano usare molti task che sono istanze di uno stesso tipo. - -Nel caso di oggetti di controllo state-dependent che eseguono uno stesso statechart, abbiamo un control task per ogni oggetto. Tasks multipli dello stesso tipo

Internal Task Structuring criteria Tasks multipli dello stesso tipo: ESEMPIO > :ElevatorControl ANALYSIS MODEL

Internal Task Structuring criteria Tasks multipli dello stesso tipo: ESEMPIO > :ElevatorControl

Task Priority criteria - -Considerano la priorità in fase di Task Structuring, distinguendo in high e low priority. - -Questo aspetto viene spesso affrontato più tardi nel ciclo di sviluppo. Task Priority criteria - -Qui : solo identificare i tasks time-critical e non-time-critical.

Task Priority criteria - -Servono in molti sistemi real-time. - -Caso tipico: I/O task asincrono interrupt-driven, dove c’è rischio di perdere un interrupt e questo non deve accadere. Time-Critical Tasks - -É necessario che girino ad un alto livello di priorità ( high priority ).

Task Priority criteria - -Un task non-time-critical può girare a priorità bassa ( low priority ) sfruttando i cicli di CPU liberi, eseguendo intense attività computazionali. - -Caso tipico: task che legge dei dati da un sensore, ne calcola il significato e li rende disponibili. Non-Time-Critical Tasks

Task Clustering criteria - -Capire se alcuni task della prima fase di Task Structuring possono essere raggruppati per diminuirne il numero e ridurre la complessità del design model. - -Individuare i task candidati e raggrupparli in phisical tasks. I task riuniti non possono più essere esuguiti concorrentemente. Task Clustering criteria

- -Alcuni tasks candidati possono essere attivati dallo stesso evento, ad es. un timer event. - -Caso tipico: tasks che vengono attivati periodicamente. Temporal Clustering - -Se i tasks sono indipendenti, possono essere raggruppati e deve essere specificato, dal designer, un ordine di esecuzione.

Temporal Clustering: ESEMPIO > :Engine 4: read (out BrakeInput) > :DigitalClock > :AutoSensors 1: TimerEvent Task Clustering criteria > :Brake 2: read (out EngineInput) 3: EngineOn 3A: EngineOff 5: BrakePressed 5A: BrakeReleased

Task Clustering criteria No: - -Se un task candidato è piú time-critical del secondo. - -Se i due task possono essere eseguiti su due processori diversi. Utilizzo di Temporal Clustering Si: - -Se i task hanno funzionalitá simili e uguale importanza a livello di scheduling. - -Se i due task hanno uguali periodi di attivazione o comunque multipli tra loro (es. 50/100 msec).

Task Clustering criteria - -Alcuni tasks candidati, per esigenze applicative, sono eseguiti in ordine sequenziale. - -Caso tipico: il primo task è triggerato da un evento asincrono o periodico, il secondo viene eseguito di seguito. Sequential Clustering

Sequential Clustering: ESEMPIO > :Display 3: ReportOutput > :ReportGenerator > :DisplayInterface 2: Report > :DigitalClock 1: TimerEvent Task Clustering criteria

Sequential Clustering: ESEMPIO > :Display 3: ReportOutput > :DigitalClock > :ReportGenerator&Display 1: TimerEvent Task Clustering criteria NB: 2  messaggio interno

Task Clustering criteria - -Se un task candidato manda messaggi ad un oggetto che non è un task allora deve essere l’ultimo della sequenza. Utilizzo di Sequential Clustering -Se un task con prioritá minore ne segue uno time-critilal la sequenza non deve continuare. -Se un task candidato riceve messaggi anche da altre fonti oltre ai tasks in sequenza deve essere mantenuto separato.