ARCHITETTURE SOFTWARE



Documenti analoghi
INTRODUZIONE AI SISTEMI OPERATIVI EMBEDDED

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi.

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

Gestione del processore e dei processi

Calcolatori Elettronici A a.a. 2008/2009

Il tipo di dato astratto Pila

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Architettura di un calcolatore

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Sistemi di Controllo Real Time

Il Sistema Operativo (1)

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Algoritmi di scheduling

Sistemi Operativi SCHEDULING DELLA CPU

MODELLISTICA DI IMPIANTI E SISTEMI 2

La Gestione delle risorse Renato Agati

( x) ( x) 0. Equazioni irrazionali

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Gestione Risorse Umane Web

Approccio stratificato

FONDAMENTI di INFORMATICA L. Mezzalira

Gestione della memoria centrale

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Introduzione alla Virtualizzazione

Scheduling della CPU:

Sistema operativo: Gestione della memoria

Gestione Turni. Introduzione

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

GESTIONE DEI PROCESSI

J. Assfalg Appunti di Sistemi Operativi

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Sistemi Operativi Kernel

Il Sistema Operativo

Mac Application Manager 1.3 (SOLO PER TIGER)

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

Automazione Industriale (scheduling+mms) scheduling+mms.

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Monitor. Introduzione. Struttura di un TDA Monitor

Agenti Mobili Intelligenti e Sicurezza Informatica Utilizzare un nuovo paradigma applicativo per la realizzazione di sistemi informatici sicuri.

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

Scheduling. Lo scheduler è la parte del SO che si occupa di

Indaco. Industrial Data Collection

Corso di Informatica

Lezione 1. Introduzione e Modellazione Concettuale

Lo Scheduling Real Time in Linux. Universita degli studi di Roma La Sapienza Ivan Gualandri Matricola Relatore: Giorgio Richelli

Aris TimeSheet. che guardano oltre. enti e aziende. Soluzioni per

GESTIONE INFORMATICA DEI DATI AZIENDALI

Implementazione di sistemi real time

Scheduling della CPU Simulazione in linguaggio Java

INNOVAZIONE XNOTTA PER PORTALI TURISTICI

Lo scheduling. Tipici schedulatori

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

Introduzione alle architetture per il controllo dei manipolatori

Il costrutto monitor [Hoare 74]

Esempio: aggiungere j

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Introduzione ai Metodi Formali

La selezione binaria

DTI / ISIN / Titolo principale della presentazione. La cena dei filosofi. Amos Brocco, Ricercatore, DTI / ISIN. 14 maggio 2012

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Corso PLC - Manuale Pratico 1

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Dispensa di Informatica I.1

La norma ISO 9001:08 ha apportato modifiche alla normativa precedente in

Algoritmi di scheduling - Parte 2

Java Virtual Machine

SISTEMI DI NUMERAZIONE E CODICI

Ata_NiAg02. Modulo Gestione Agenti

Stampe in rete Implementazione corretta

10 - Programmare con gli Array

Le tecniche di ridondanza

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P P P P P P < P 1, >

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

Standard per Reti a Commutazione di Pacchetto Prof. Vincenzo Auletta Università degli studi di Salerno Laurea in Informatica

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

MService La soluzione per ottimizzare le prestazioni dell impianto

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

Analisi e diagramma di Pareto

DIMINUIRE I COSTI CON IL SISTEMA QUALITA

STRUTTURE DEI SISTEMI DI CALCOLO

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Introduzione ai tipi di dato astratti: applicazione alle liste

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Manuale Operativo Risk Manager

Allocazione dinamica della memoria - riepilogo

Scheduling Introduzione Tipi di scheduler Scheduler di lungo termine (SLT) Scheduler di medio termine (SMT) Scheduler di breve termine (SBT)

1. BASI DI DATI: GENERALITÀ

Transcript:

1 ESECUZIONE DI APPLICAZIONI SU SISTEMI EMBEDDED INTRODUZIONE AI SO EMBEDDED INTRODUZIONE AI SISTEMI OPERATIVI EMBEDDED: ARCHITETTURA SOFTWARE ROUND ROBIN INTRODUZIONE AI SISTEMI OPERATIVI EMBEDDED: ARCHITETTURA SOFTWARE ROUND ROBIN WITH INTERRUPTS INTRODUZIONE AI SISTEMI OPERATIVI EMBEDDED: ARCHITETTURA FUNCTION QUEUE SCHEDULING INTRODUZIONE AI SISTEMI OPERATIVI EMBEDDED: CENNI DI SISTEMI OPERATIVI REAL-TIME 2 INTRODUZIONE AI SISTEMI OPERATIVI EMBEDDED: ARCHITETTURA SOFTWARE ROUND ROBIN

ARCHITETTURE SOFTWARE 3 IN RELAZIONE AL FUNZIONAMENTO REALE DELLE APPLICAZIONI SU SISTEMI EMBEDDED IL COMPORTAMENTO DELLE APPLICAZIONI VISTE FINORA NON ERA REALISTICO L'ARCHITETTURA SOFTWARE PREVEDEVA INFATTI L'ESECUZIONE DI UN CERTO NUMERO DI TASK DOPODICHE' L'APPLICAZIONE SI CONSIDERAVA CONCLUSA. NELLE APPLICAZIONI REALI IL SISTEMA FUNZIONA A PARTIRE DALL'ACCENSIONE FINO AL VENIR MENO DELL'ALIMENTAZIONE O FINO AL RESET. VEDREMO LE ARCHITETTURE SOFTWARE DI BASE TRAMITE LE QUALI E' IMPLEMENTATO TALE FUNZIONAMENTO, A PARTIRE DALLE PIU' SEMPLICI IN ASSOLUTO, FINO AD ARRIVARE AI SISTEMI OPERATIVI REAL TIME (CENNI) VEDREMO NEL DETTAGLIO I 2 ESEMPI PIU' SEMPLICI DI ARCHITETTURA SOFTWARE PER SISTEMI EMBEDDED: ROUND ROBIN ROUND ROBIN CON INTERRUPTS ARCHITETTURA SOFTWARE ROUND ROBIN 4 LA PIU' SEMPLICE ARCHITETTURA SOFTWARE POSSIBILE E' DEFINITA ROUND ROBIN CONSISTE IN UN LOOP INFINITO CHE SI OCCUPA DI INTERROGARE A TURNO (POLLING) CIASCUNA DELLE PERIFERICHE DI I/O E DI ESEGUIRE LE ROUTINE ASSOCIATO OGNI QUALVOLTA SIA NECESSARIO void _main( void ) { while(1) { if (!! la periferica di I/O A deve essere servita ) {!! preleva/spedisci i dati della periferica di I/O A;!! processa i dati della periferica di I/O A;...... if (!! la periferica di I/O A deve essere servita ) {!! preleva/spedisci i dati della periferica di I/O Z;!! processa i dati della periferica di I/O Z;

5 APPLICAZIONE DI ESEMPIO (ES0_S3) APPLICAZIONE DI ESEMPIO 6 void _main( void ) { int CH0_IN_var, CH1_IN_var, CH0_OUT_var; int i, *p_reg_ch0_in, *p_reg_ch1_in, *p_reg_ch0_out; p_reg_ch0_in = (int*) 0x4000; p_reg_ch1_in = (int*)0x4004; p_reg_ch0_out = (int*)0x4008; while( 1) { CH0_IN_var = get_input(p_reg_ch0_in); // acquisisce la temperatura CH1_IN_var = get_input(p_reg_ch1_in); // acquisisce l'umidita if( CH0_IN_var > 42 ){ send2out( 0, p_reg_ch0_out) ; send2out(ch0_in_var, p_reg_ch0_out) ; if( CH1_IN_var > 900 ){ send2out(0, p_reg_ch0_out) ; send2out(ch1_in_var, p_reg_ch0_out) ;

ARCHITETTURA SOFTWARE ROUND ROBIN 7 L'ARCHITETTURA SW RR, RISPETTO ALLE ALTRE TIPOLOGIE DI ARCHITETTURA, HA IL VANTAGGIO DI ESSERE LA PIU' SEMPLICE, PRESENTA PERO' LIMITI NOTEVOLI. L'ARCHITETTURA SW RR FUNZIONA BENE NEI SISTEMI CHE VERIFICHINO CONTEMPORANEAMENTE LE SEGUENTI CONDIZIONI: POCHE PORTE DI I/O ELABORAZIONI NON PARTICOLARMENTE LUNGHE VINCOLI DI TEMPI DI RISPOSTA IN INPUT/OUTPUT NON STRINGENTI NEL CASO UNO DEGLI INGRESSI RICHIEDA DEI TEMPI DI RISPOSTA INFERIORI AL TEMPO DI RISPOSTA DEL SISTEMA NEL CASO PEGGIORE, IL SISTEMA NON FUNZIONA E' SUFFICIENTE CHE UNO SOLO DEI TASK ABBIA UNA DURATA ELEVATA, AFFINCHE' IL SISTEMA DIVENTI PRATICAMENTE INSERVIBILE, PUR CONTINUANDO A FUNZIONARE LA STRUTTURA DEL SW NON E' ROBUSTA: PUO' ESSERE SUFFICIENTE L'INSERIMENTO DI UNA NUOVA PERIFERICA DA GESTIRE PER MODIFICARE LA RISPOSTA TEMPORALE COMPLESSIVA IN MANIERA INACCETTABILE 8 INTRODUZIONE AI SISTEMI OPERATIVI EMBEDDED: ARCHITETTURA SOFTWARE ROUND ROBIN CON INTERRUPTS

ARCHITETTURA SOFTWARE ROUND ROBIN CON INTERRUPT 9 LA PRIMA ARCHITETTURA ALTERNATIVA CHE VEDIAMO E' LA RR + INT PRESENTA UN INCREMENTO DI COMPLESSITA' MA OFFRE VANTAGGI SOSTANZIALI LA STRUTTURA DELL'ARCHITETTURA PREVEDE CHE: LE ROUTINE DI INTERRUPT (INTERRUPT SERVICE ROUTIN - ISR)SI OCCUPINO DI SERVIRE LE INCOMBENZE URGENTI LEGATE ALLE PERIFERICHE DI I/O SETTANDO DEI FLAG OGNI QUALVOLTA VIENE ACQUISITO/SPEDITO UN DATO IL LOOP PRINCIPALE INTERROGA I FLAG ASSOCIATI ALLE ROUTINE DI INTERRUPT ED ESEGUE LE ELABORAZIONI ASSOCIATE SOLO QUANDO NECESSARIO VIENE INTRODOTTO UNA PRIORITA' NELLA GESTIONE DEI TASK LA GESTIONE DI DATI SOTTO INTERRUPT PONE IL PROBLEMA DELLA GESTIONE DI DATI CONDIVISI FRA ROUTINE DI INTERRUPT E APPLICAZIONE PRINCIPALE: SHARED DATA PROBLEM ARCHITETTURA SOFTWARE ROUND ROBIN CON INTERRUPT SCHEMA DELL'ARCHITETTURA SW BOOL FdeviceA = false;.. BOOL FdeviceZ = false; void interrupt HandleDeviceA {!! preleva/spedisci i dati della periferica di I/O A; FdeviceA = true;... void interrupt HandleDeviceZ {!! preleva/spedisci i dati della periferica di I/O A; FdeviceZ = true; void _main( void ) { while(1) { if ( FdeviceA) { FdeviceA = false;!! processa i dati della periferica di I/O A;... if ( FdeviceZ) { FdeviceZ = false;!! processa i dati della periferica di I/O Z; 10

ARCHITETTURE SOFTWARE 11 PRIORITA' RR + INT: SHARED-DATA PROBLEM 12 VIENE DEFINITA IN QUESTO MODO LA PROBLEMATICA LEGATA AI MALFUNZIONAMENTI CAUSATI DALL'ACCESSO ASINCRONO AI DATI DI PROGRAMMA PRINCIPALE E ROUTINE DI INTERRUPT PER MEGLIO CAPIRE IL PROBLEMA UTILIZZIAMO UN ESEMPIO SUPPONIAMO DI UTILIZZARE UN SISTEMA EMBEDDED PER ACQUISIRE DEI VALORI FISICI DI TEMPERATURA DA DEI SENSORI POSTI IN DIVERSI PUNTI DI UN REATTORE NUCLEARE SEGNALARE UN ALLARME SE LE TEMPERATURE ACQUISITE NON SONO UGUALI LA PRIMA ATTIVITA' VIENE ESEGUITA SOTTO INTERRUPT LA SECONDA NELLA ROUTINE PRINCIPALE SUPPONIAMO DI GESTIRE 2 SOLI SENSORI E OMETTIAMO PER SEMPLICITA' ANCHE LA GESTIONE DEI FLAG

RR + INT: SHARED-DATA PROBLEM 13 static int temperature[2] static int* preg0 Reg0Addr; static int* preg1 Reg1Addr; void interrupt LeggiTemperature { temperature[0] = *preg0; temperature[1] = *preg1; void _main( void ) { int temp1, temp2; while(1) { temp0 = temperature[0]; INTERRUPT temp1 = temperature[1]; if (temp0!= temp1)!! segnala condizione di allarme; RR + INT: SHARED-DATA PROBLEM 14 NEL CASO SI PRESENTINO ENTRAMBE LE SEGUENTI CONDIZIONI: SI VERIFICA UN INTERRUPT FRA L'ESECUZIONE DELLE 2 ISTRUZIONI CHE ASSEGNANO I VALORI DI TEMPERATURA ALLE 2 VARIABILI temp0 E temp1 LE TEMPERATURE RILEVATE DAI 2 SENSORI, PUR RIMANENDO UGUALI FRA LORO, SONO CAMBIATE RISPETTO ALLE ULTIME RILEVATE SI VERIFICA UNA CONDIZIONE DI ALLARME INGIUSTIFICATA!!!!!

RR + INT: SHARED-DATA PROBLEM 15 SI PUO' TENTARE DI ELIMINARE IL PROBLEMA OTTIMIZZANDO IL SOFTWARE NON SERVE PERCHE' LE ROUTINE DI INTERRUPT POSSONO INTERROMPERE IL PROGRAMMA FRA 2 DELLE ISTRUZIONI ASSEMBLY CHE IMPLEMENTANO IL TEST DI UGUAGLIANZA... void interrupt LeggiTemperature { temperature[0] = *preg0; temperature[1] = *preg1; void _main( void ) { INTERRUPT while(1) { if (temperature[0]!= temperature[1])!! segnala condizione di allarme; RR + INT: SHARED-DATA PROBLEM 16 IL PROBLEMA SI VERIFICA QUANDO L'INTERRUPT E IL PROGRAMMA PRINCIPALE CONDIVIDONO DEI DATI, E IL PROGRAMMA PRINCIPALE UTILIZZA QUESTI DATI IN MANIERA NON ATOMICA IL PEZZO DI CODICE LA CUI INTERRUZIONE PUO' GENERARE IL PROBLEMA VIENE DEFINITO CRITICAL SECTION. PER RISOLVERE IL PROBLEMA E' POSSIBILE SFRUTTARE LA POSSIBILITA' DI DISABILITARE GLI INTERRUPT void interrupt LeggiTemperature { temperature[0] = *preg0; temperature[1] = *preg1; void _main( void ) { int temp1, temp2; while(1) { disable_int(); temp0 = temperature[0]; temp1 = temperature[1]; enable_int(); if (temp0!= temp1)!! segnala condizione di allarme; CRITICAL SECTION

ARCHITETTURA SOFTWARE ROUND ROBIN CON INTERRUPT 17 LO SVANTAGGIO PRINCIPALE DELLA ARCHITETTURA RR+INT (OLTRE AL FATTO CHE RISULTA PIU' COMPLESSA DELLA RR SEMPLICE) E' CHE TUTTI I TASK DEL PROGRAMMA PRINCIPALE VENGONO GESTITI CON LA STESSA PRIORITA' SUPPONIAMO DI AVERE 3 TASK (A, B E C) GESTITI NEL PROGRAMMA PRINCIPALE ESEGUITI NELL'ORDINE A,B,C. NEL CASO SI VERIFICHINO TUTTI E 3 GLI INTERRUPT ALL'INIZIO DELL'ESECUZIONE DELLA ROUTINE PRINCIPALE PRIMA DI INIZIARE L'ESECUZIONE DI A, IL TEMPO DI ATTESA PRIMA DI POTER ESEGUIRE IL TASK C E' PARI ALLA SOMMA DEI TEMPI DI ESECUZIONE DEI TASK A E B, PIU' I TEMPI DI ESECUZIONE DELLE ROUTINE DI INTERRUPT. CIO' POTREBBE ESSERE NON ACCETTABILE PER LE SPECIFICHE DI TEMPORIZAZIONE DEL TASK C. IN QUESTO CASO SI POTREBBE SPOSTARE LA SEZIONE DI CODICE CHE DEFINISCE IL TASK C SOTTO INTERRUPT COME EFFETTO COLLATERALE OTTENGO PERO' CHE IL TEMPO DI RISPOSTA MASSIMO PER GLI ALTRI 2 TASK (A E B) SI INCREMENTA DI UNA QUANTITA' PARI AL TEMPO DI ESECUZIONE DEL TASK C, E CIO' POTREBBE ESSERE A SUA VOLTA NON ACCETTABILE UN ALTRO SVANTAGGIO FONDAMENTALE E' LA POCA STABILITA' DEL CODICE: MODIFICANDO IL CODICE DI UN TASK SI INFLUENZA IL TEMPO DI RISPOSTA DEGLI ALTRI ARCHITETTURA SOFTWARE ROUND ROBIN CON INTERRUPT 18 NEL CASO DI SEQUENZA DI ESECUZIONE DEI TASK NEL PROGRAMMA PRINCIPALE CHE ESEGUA IN SUCCESSIONE TUTTI I TASK, IL TEMPO DI RISPOSTA DNEL CASO PEGGIORE PER UN TASK E' PARI ALLA SOMMA DEI TEMPI DI ESECUZIONE DI CIASCUNO DEGLI ALTRI TASK PIU' LA SOMMA DEI TEMPI DI ESECUZIONE DI TUTTE LE ROUTINE DI INTERRUPT UN'ALTRA ALTERNATIVA POTREBBE ESSERE USARE UNA SEQUENZA DI ESECUZIONE DEI TASK NEL PROGRAMMA PRINCIPALE CHE PRIVILEGI IL TASK C: C,A,C,B, C,A,C,B, C,A,C,B, QUESTA SOLUZIONE RIDURREBBE IL TEMPO DI ATTESA MINIMO PER C AL MASSIMO FRA I TEMPO DI ESECUZIONE DEI TASK A E B, AL COSTO DI UN AUMENTO DEL TEMPO MASSIMO DI RISPOSTA PER A E B, CHE VERREBBE AUMENTATO DI UN TERMINE C. IN CONCLUSIONE UTILIZZANDO UNA ARCHITETTURE DI TIPO RR+INT SI PUO' TENTARE DI GESTIRE LE SPECIFICHE DI TEMPORIZZAZIONE SUI TASK TRAMITE OTTIMIZZAZIONI DEL CODICE O SPOSTAMENTI DI SEZIONI DI CODICE FRA ROUTINE INTERRUPT E PROGRAMMA PRINCIPALE, MA SI VA INCONTRO A PESANTI EFFETTI COLLATERALI E IL CODICE RISULTANTE RIMANO POCO STABILE RIDUCENDO IL TEMPO DI RISPOSTA DI CASO PEGGIORE PER UN TASK, SI INCREMENTA QUELLO PER TUTTI GLI ALTI TASK

19 INTRODUZIONE AI SISTEMI OPERATIVI EMBEDDED: ARCHITETTURA SOFTWARE FUNCTION QUEUE SCHEDULING ARCHITETTURA SOFTWARE FUNCTION QUEUE SCHEDULING QUESTA ARCHITETTURA PREVEDE CHE CIASCUNA ROUTINE DI INTERRUPT COMNICHI AL PROGRAMMA PRINCIPALE L'AVVENUTA ESIGENZA DI ESEGUIRE IL TASK DI ELABORAZIONE ASSOCIATO, NON SETTANDO UN FLAG, MA INSERENDO (PUSH) UN PUNTATORE AL TASK ASSOCIATO ALLA ROUTINE DI INTERRUPT IN UNA CODA DI PUNTATORI A FUNZIONI IL PROGRAMMA PRINCIPALE LEGGE DALLA CODA IL PUNTATORE AD UNA FUNZIONE ED ESEGUE IL TASK STESSO IL TRUCCO STA NEL FATTO CHE NESSUNA REGOLA MI DICE CHE DEVO PER FORZA LEGGERE DALLA CODA LE FUNZIONI NELL'ORDINE IN CUI VI SONO STATE INSERITE POSSO QUINDI PRIVILEGIARE (IN MANIERA ORDINATA E SISTEMATICA) I TASK CON UNA PRIORITA' MAGGIORE POSSO ADDIRITTURA MODIFICARE LA PRIORITA' A TEMPO DI ESECUZIONE ADATTANDOMI AD EVENTUALI MODIFICHE DELLE CONDIZIONI AL CONTORNO IN MANIERA DINAMICA IL TEMPO DI RISPOSTA DI CASO PEGGIORE PER IL TASK CON PRIORITA' PIU' ELEVATA E' PARI AL TEMPO DI ESECUZIONE DEL TASK PIU' LENTO PIU' LA SOMMA DEI TEMPI DI ESECUZIONE DELLE ROUTINE DI INTERRUPT (COME PER RR+INT) PERMANE, ANCHE SE RIDOTTO, IL PROBLEMA DELLA POCA STABILITA' DEL CODICE: MODIFICANDO IL CODICE DI UN TASK SI INFLUENZA IL TEMPO DI RISPOSTA DEGLI ALTRI 20

21 INTRODUZIONE AI SISTEMI OPERATIVI EMBEDDED: ARCHITETTURA SOFTWARE REAL TIME OPERATING SYSTEM ARCHITETTURA SOFTWARE RT OS 22 QUESTA ARCHITETTURA (COME LE ALTRE VISTE FINORA) PREVEDE CHE LE ROUTINE DI INTERRUPT SI OCCUPINO DEI DELLE OPERAZIONI PIU' URGENTI (QUELLE LEGATE ALL'I/O) LE ROUTINE DI INTERRUPT SEGNALINO L'AVVENUTA NECESSITA' DI ESEGUIRE IL TASK ASSOCIATO A QUELLA ROUTINE DI INT LA DIFFERENZE RISPETTO AI CASI PRECEDENTI SONO LE SEGUENTI: 1. LA COMUNICAZIONE FRA ROUTINE DI INTERRUPT E TASK DEL PROGRAMMA PRINCIPALE ASSOCIATO VIENE GESTITA DAL SISTEMA OPERATIVO 2. LA SEQUENZA DI ESECUZIONE DEI TASK E' GESTITA DAL SISTEMA OPERATIVO, NON CI SONO LOOP O CODE O ALTRO GESTITI IN MANIERA ESPLICITA DAL PROGRAMMATORE. IL CODICE DEL RT OS SI OCCUPA DELLO SCHEDULING DEI TASK, GESTENDO LE PRIORITA' DI ESECUZIONE NELLA MANIERA PIU' APPROPRIATA 3. IL RT OS PUO' SOSPENDERE L'ESECUZIONE DI UN TASK PER ESEGUIRNE UN ALTRO

ARCHITETTURA SOFTWARE RT OS 23 LE PRIME 2 DIFFERENZE FORNISCONO DEI VANTAGGI LEGATI SOPRATTUTTO ALLA MODALITA' DI PROGRAMMAZIONE LA TERZA DIFFERENZA (L'INTERROMPIBILITA' DEI TASK DA PARTE NON SOLO DELLE ROUTINE DI INTERRUPT, MA ANCHE DA PARTE DI ALTRI TASK), E' SOSTANZIALE: UN'ARCHITETTURA SOFTWARE BASATA SU RT OS DA LA POSSIBILITA DI GESTIRE UNA PRIORITA' DI ESCUZIONE SISTEMATICA NON SOLO DELLE ROUTINE DI INTERRUPT, MA ANCHE DEI TASK DEL PROGRAMMA PRINCIPALE IL TEMPO DI RISPOSTA DI CASO PEGGIORE PER IL TASK A PRIORITA' PIU' ELEVATA SI RIDUCE ALLA SOMMA DEI TEMPI DI ESECUZIONE DELLE ROUTINE DI INTERRUPT QUESTO RENDE FINALMENTE L'ARCHITETTURA SW ROBUSTA: MODIFICANDO IL CODICE DI UN TASK NON INFLUENZO IL TEMPO DI RISPOSTA DI QUELLI A PRIORITA' SUPERIORE UN'ALTRO VANTAGGIO CONSIDEREVO DEI RT OS E' CHE SONO REPERIBILI SUL MERCATO. IN QUESTO MODO E' POSSIBILE RIDURRE I TEMPI DI SVILUPPO A COSTI RAGIONEVOLI O ADDIRITTURA NULLI (CODICE FREEWARE), SOPRATTUTTO IN CASO DI UTILIZZO DELLO STESSO RT OS PER APPLICAZIONI DIVERSE LO SVANTAGGIO PRINCIPALE LEGATO ALL'UTILIZZO DI UN RT OS E' LEGATO AL FATTO CHE L'OS STESSO UTILIZZA UNA CERTA QUANTITA' DI TEMPO DI ELABORAZIONE ARCHITETTURE SOFTWARE 24 PRIORITA'

ARCHITETTURE SOFTWARE TABELLA RIASSUNTIVA 25