Risorse condivise e sovraccarichi nei sistemi in tempo reale E.Mumolo

Slides:



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

Meccanismi di IPC Problemi classici di IPC
Capitolo 3 Risorse e Stallo 3.1. Risorse 3.2. Introduzione
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Gestione dei processi A. Ferrari.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Il problema dello stallo
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
Obiettivo della tesi Percorso
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)
Programmazione Concorrente
I processi Concetto di processo Scheduling dei processi
Sincronizzazione fra processi
Sincronizzazione di processi
Deadlock Modello del sistema Caratterizzazione dei deadlock
Processi Concetto di processo Scheduling dei processi
Dipartimento di Ingegneria dell’informazione Università di Siena
INTRODUZIONE AI SISTEMI OPERATIVI
1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
2 luglio 2006URM2 – ING- OOP0304 OL G. Cantone e A. Lomartire 1 Programmazione Orientata agli Oggetti Processi, task e thread Java (ed esempi) Università
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Processi Aleatori : Introduzione – Parte I
Sistemi Operativi in Tempo Reale: incidenti famosi E.Mumolo
Sistemi e schedulazione in tempo reale E.Mumolo
Risorse e Stallo.
Gestione dei processi Un sistema operativo multitasking è in grado di gestire più processi Un processo corrisponde ad un programma in esecuzione. Un programma.
Ricerca della Legge di Controllo
Ottimizzazione nella gestione dei progetti
Controllo delle operazioni su una macchina
Corso di Programmazione Concorrente Stallo Valter Crescenzi nz.
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 6 1 Programmi concorrenti: quanto è lungo un millisecondo? In un normale personal computer.
FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario.
Sincronizzazione fra thread
Sistemi Operativi SCHEDULING DELLA CPU.
Sistemi Operativi GESTIONE DEI PROCESSI.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Introduzione ai Sistemi Operativi
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,
Le transazioni Itis Max Planck.
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
Interazione e sincronizzazione
La schedulazione dei processi
Esame di didattica dell’informatica II
ALGORITMI DI SCHEDULING PARTE II
IL PROBLEMA DELLO SCHEDULING
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,
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
Sincronizzazione dei processi
3.2 Algoritmo di Moore per la minimizzazione dei lavori in ritardo
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
1 Gestione del Processore (Scheduling). 2 Scheduling dei processi È l’attività mediante la quale il sistema operativo effettua delle scelte tra i processi,
Gestione del Processore (Scheduling)
1 Università degli Studi di Roma “Tor vergata” Dipartimento di Ingegneria Civile Corso di Gestione ed esercizio dei sistemi di trasporto Docente: Ing.
Gestione del processore (Scheduler)
Architettura dei Sistemi Operativi
1 Processi e Thread Meccanismi di IPC (2) Problemi classici di IPC.
Processi e Thread Processi Thread
1 Processi e Thread Processi e thread in Windows 2000.
1 Processi e Thread Scheduling (Schedulazione). 2 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra.
1 Risorse e Stallo 2 Risorse (1) Esempi di risorse –stampanti –nastri –tabelle I processi devono accedere alle risorse in un ordine ragionevole Supponiamo.
Informatica Generale Marzia Buscemi
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
Scheduler e politiche di Marco Arcamone.
Implementazioni di un analizzatore di protocollo Esistono quattro fondamentali tradeoff per la realizzazione di un analizzatore di protocollo:  Analisi.
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
Transcript della presentazione:

Risorse condivise e sovraccarichi nei sistemi in tempo reale E.Mumolo

Sistemi in tempo reale TIPI DI PROCESSI RT Hard RT: se il superamento della deadline e catastrofico. Es.: acquisizione dati asservimento pianificazione azioni controllo automatico Soft RT: se il superamento della deadline non e catastrofico ma sopportabile. Es.: Interpretazione comandi utente Visualizzazione messaggi ASPETTI FONDAMENTALI: SCHEDULING ACCESSO A RISORSE GESTIONE SOVRACCARICHI COMUNICAZIONE TRA PROCESSI

Ricorda: risorse condivise e concorrenza Esempio di programmazione nello stesso spazio di indirizzamento:produttore-consumatore prod() cons() { while(true) while(true) { { el=produci(); while(in==out){}; while((IN+1)%N==out)){}; el=buf[out]; buf[in]=el; out=(out+1)%N; in=(in+1)%N; consuma(el); } } } buf, N elementi Due puntatori: in, out. Buffer vuoto: in==out; Buffer pieno: (in+1)%N==out

Ricorda: mutua esclusione Caso due consumatori: cons() { while(true) { while(in==out){}; el=buf(out); out=(out+1)%N; consuma(el); } cons1() { while(true) { while(in==out){}; el=buf(out); out=(out+1)%N; consuma(el); } Problema di mutua esclusione! context switch!

Mutua esclusione Uso di un ARBITRO per decidere se posso continuare lesecuzione Arbitro cons() { while(true) { while(in==out){}; el=buf(out); out=(out+1)%N; consuma(el); } cons1() { while(true) { while(in==out){}; el=buf(out); out=(out+1)%N; consuma(el); }

Sincronizzazione di processi concorrenti per accesso a risorse condivise Arbitro sw: alternanza stretta Arbitro sw: algor. Peterson Arbitro semaforico

Protocolli di accesso a risorse condivise in RT Sezioni Critiche: parti del codice alle quali si deve garantire luso esclusivo di alcune risorse. Protezione mediante il semaforo S primitive wait(S) e signal(S), o down(S) e up(S) o P(S) e V(S) P(S) V(S) P(S) V(S) Accesso in mutua esclusione di una risorsa non condivisibile Thread 1 Thread 2

Protocolli di accesso a risorse condivise in RT Il problema dellinversione di priorità Un processo ad alta priorità viene bloccato da un processo a più bassa priorità per un tempo indefinito Esempio (T1 a più alta priorità rispetto a T2): normalecritico Blocco T1

Protocolli di accesso a risorse condivise Altro esempio di inversione di priorità (J1>J2>J3) J1 J2 J3 normalecritico P P Blocco di J1 dovuto a J2: imprevedibile

Protocolli di accesso a risorse condivise Protocollo priority enheritance (ereditarietà della priorità) Sha 1990 Risolve linversione di priorità ipotesi: priorità J1> priorità J2 >… >priorità Jn Schedulazione FIFO Semafori binari Le sezioni critiche possono essere annidate Protocollo: Quando un thread si blocca su un semaforo, trasmette la sua priorità al thread che posside il semaforo Il thread che possiede il semaforo esegue la sezione critica ad una priorità pari al massimo dei thread bloccati Alluscita della sezione critica il thread viene riportato alla priorità iniziale Ereditarietà transitiva

Protocolli di accesso a risorse condivise Esempio della soluzione della inversione delle priorità con il protocollo priority enheritance Blocco diretto (J1) e blocco indiretto (J2) J1 J2 J3 normalecritico P P

Protocolli di accesso a risorse condivise Problemi del protocollo priority enheritance : stallo J1J2 J1 J2 P(S1) P(S2) V(S2) V(S1) P(S2) P(S1) V(S1) V(S2) P(S2) P(S1)P(S2) P(S1) stallo

Protocolli di accesso a risorse condivise Problemi del protocollo priority enheritance : catena di bloccaggi Possibile blocco di un thread per una durata di n sezioni critiche J1 J2 J3 P(S1) P(S2) P(S1)P(S2)V(S2)V(S1) V(S2) V(S1) J1 P(S1) P(S2) V(S2) V(S1)

Protocolli di accesso a risorse condivise Protocollo priority ceiling (tetto della priorità) Sha 1990 Viene assegnato a ciascun semaforo un tetto di priorità pari alla più alta priorità dei task che possono usare quel semaforo. Un processo può interrompere una sezione critica protetta da un semaforo se ha una priorità > tetto(semaforo) Esempio: J1 J2 J3 P(S2) P(S0)V(S0) V(S1) J1 P(S2) P(S1) V(S1) V(S2) P(S1) Ceiling(S0)=ceiling(S1)=prio(J1); ceiling(S2)=prio(J2) J3

Protocolli di accesso a risorse condivise Qualche proprietà del protocollo Il protocollo Priority Ceiling previene lo stallo Un processo può essere bloccato al massimo per la durata di una sola sezione critica (di quelle che possono bloccare il processo) Schedulabilità Sia Bi il tempo massimo di bloccaggio del task Ti da parte di task a priorità minore. Bn = 0 perché n è il processo a più bassa priorità. Risultato: Condizione sufficiente per la schedulabilità di Rate Monotonic con Priority Ceiling o Priority Inheritance è che:

Gestione dei sovraccarichi nei sistemi RT Sovraccarico: la richiesta di calcolo eccede la disponibilità del processore Eventi sporadici dovuti per esempio a: Variazioni ambientali Eventi asincroni Malfunzionamento Eccezioni simultanee … Un sovraccarico transitorio può provocare un catastrofico effetto a catena superamento di tutte le deadline

Gestione dei sovraccarichi nei sistemi RT Definizione di carico: frazione del tempo disponibile per elaborazione. Aperiodici hard (con EDF) Periodici corrisponde al fattore di utilizzazione J1 J2 J (4)=2/4=0.5 2(4)=5/6=0.83 3(4)=7/9=0.78 (t) = max[ k (t) t

Gestione dei sovraccarichi nei sistemi RT Schedulazione in sovraccarico La schedulazione non è fattibile. Lunica possibilità è fare in modo che i task in ritardo siano quelli MENO IMPORTANTI Distinzione dei task a seconda della loro importanza Es: un task con deadline lontana potrebbe essere molto più importante di un task imminente Parametro aggiuntivo: importanza del task, v i

Gestione dei sovraccarichi nei sistemi RT Valore di un task: importanza relativa di un task rispetto ad altri dellinsieme Alcune metriche: v i = V i costante v i = C i tempo di calcolo v i = V i /C i densità Ma: il valore di un task dipende anche dal suo tempo di completamento f f f f v(f) Non real time hard real time soft real time critico v(f)

Gestione dei sovraccarichi nei sistemi RT Valore cumulativo di un algoritmo di schedulazione A V = v i (f i ) Algoritmo ottimo: massimizza il valore cumulativo su un insieme di task In generale: V < V i Chiaroveggenza: conoscenza anticipata delle attivazioni dei task Permette di raggiungere il massimo valore cumulativo su un dato insieme di task in sovraccarico Non attuabile ma utile per avere benchmark Esempio: C=10 C=8 Se non so che arriva J3, attivo J1 fatt. cum. =10 Se sapessi che arriva J3, attivo J2 in attesa si J3 fatt. cum. =16 J1 J2, J3

Gestione dei sovraccarichi nei sistemi RT Esempio: ai Di Ci J J J v i = C i J1 J2 J3 J1 J2 J EDF chia. v(f) hard real time f V1=0 V2=0 V3=3 V1=10 V2=5 V3=0 V EDF =3 V chia =15

Gestione dei sovraccarichi nei sistemi RT Fattore competitivo Un algoritmo A ha un fattore competitivo se e solo se garantisce un valore cumulativo V A V dove V è il valore cumulativo ottenuto da un algortitmo ottimo chiaroveggente Il fattore competitivo è tra 0 e 1: 0 1 Dire che un algoritmo di schedulazione ha un fattore competitivo garantisce che in tutti i casi fornisce un valore cumulativo pari ad almeno volte quello ottenibile da un algoritmo chiaroveggente Lalgoritmo EDF ha un fattore competitivo nullo È stato dimostrato che il fattore competitivo non può essere maggiore di 0.25

Gestione dei sovraccarichi nei sistemi RT Algoritmi robusti In un sistema real-time in condizioni di sovraccarico limpiego di un algoritmo di schedulazione con un fattore competitivo elevato garantisce una prestazione minima in tutte le condizioni possibili Per esempio, se un task finisce prima della sua deadline, sarebbe opportuno usare il tempo avanzato per eseguire task rifiutati precedentemente Algoritmi robusti: ammettono deadline flessibili (tolleranza sulla deadline) e una strategia di recupero