Sistemi Operativi: Sistemi realtime



Documenti analoghi
Lo scheduling. Tipici schedulatori

Algoritmi di scheduling

Sistemi Operativi Kernel

Scheduling. Lo scheduler è la parte del SO che si occupa 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

Scheduling. Scheduling 14/12/2003 1/7

Sistemi Operativi SCHEDULING DELLA CPU

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

Scheduling della CPU

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

Scheduling di processi HRT

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

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

Scheduling della CPU:

Sistemi e schedulazione in tempo reale

Sistemi Real-Time Ing. Rigutini Leonardo

SISTEMI IN TEMPO REALE

Corso di Informatica

Pronto Esecuzione Attesa Terminazione

Processi e Thread. Scheduling (Schedulazione)

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

Sistemi operativi e reti A.A Lezione 2

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

Lez. 4 Lo scheduling dei processi. Corso: Sistemi Operativi Danilo Bruschi

Principi di Schedulazione in tempo reale

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Low Power Scheduling per Sistemi Real Time

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

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

SCHEDULATORI DI PROCESSO

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

La Gestione delle risorse Renato Agati

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

Deadlock e Starvation

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

Sistema operativo: Gestione dei processi

Sistemi Operativi. Scheduling dei processi

Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore

Scheduling della CPU

CAPITOLO 7 - SCAMBIO DI MESSAGGI

Approccio stratificato

Il Sistema Operativo

Corso di Sistemi di Elaborazione delle informazioni

Algoritmi di scheduling

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

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Deadlock (blocco critico) Domande di verifica. Luca Orrù Centro Multimediale Montiferru 04/06/2007

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

GESTIONE DEI PROCESSI

FONDAMENTI di INFORMATICA L. Mezzalira

Riassunto di Sistemi in Tempo Reale LS

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

J. Assfalg Appunti di Sistemi Operativi

Algoritmi di scheduling - Parte 2

Il Sistema Operativo (1)

Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Sistemi di Controllo Real Time

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

Gestione della memoria centrale

Schedulazione in RTAI

Gestione del processore e dei processi

Esercitazione E6 Esercizi d esame

Lo scheduler di UNIX (1)

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

Deadlock (stallo) Parte III. Deadlock

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

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

Sistemi Operativi. Schedulazione della CPU

Introduzione alla Virtualizzazione

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

Sistema operativo: Gestione della memoria

T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E

Lo schedulatore del kernel

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

Sistemi Operativi (modulo di Informatica II) I processi

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

Il memory manager. Gestione della memoria centrale

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

I THREAD O PROCESSI LEGGERI Generalità

Sistemi Operativi. 5 Gestione della memoria

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Transcript:

1 Sistemi Operativi: Sistemi realtime Amos Brocco, Ricercatore, DTI / ISIN 30 luglio 2012 Basato su: [STA09] Operating Systems: Internals and Design Principles, 6/E, William Stallings, Prentice Hall, 2009 [TAN01] Modern Operating Systems, 2/E, Andrew S. Tanenbaum, Prentice Hall, 2001 [TAN09] Modern Operating Systems, 3/E, Andrew S. Tanenbaum, Prentice Hall, 2009

2 Cos'è un sistema operativo realtime? (RTOS Real Time Operating System) È un sistema operativo multitasking per applicazioni con requisiti real-time In un'applicazione real-time la correttezza non dipende solo dal risultato logico ma anche dal tempo necessario per ottenere questo risultato

3 Cos'è un sistema operativo realtime? Un sistema real-time deve essere prevedibile: Deve soddisfare dei criteri di schedulazione per ogni attività/processo/task da eseguire: se è possibile, il sistema è detto schedulabile Se l'insieme dei processi è dinamico, il sistema deve verificare che i criteri di schedulazione siano sempre soddisfatti

4 Design dei sistemi real-time A eventi: Ad ogni evento sono assegnate delle priorità di schedulazione Le attività sono eseguite in risposta a degli eventi Le attività associate a eventi di priorità più alta possono sospendere quelle a priorità più bassa (pre-emption) Time sharing: Basate su uno scheduler Round-robin Comportamento più deterministico : so esattamente l'ordine con cui verranno eseguite le attività

5 Attività (task) Eseguite in base al tempo (time triggered) I task sono eseguiti in un momento determinato o a intervalli regolari (task periodici) Esempio: lettura del valore di un sensore ogni t secondi Eseguite in risposta ad un evento (event triggered) I task sono eseguiti in risposta a un evento (esterno) (task aperiodici) Esempio: l'utente preme un pulsante, una valvola viene aperta

6 Latenza È il tempo che intercorre tra un evento (stimulus) e la risposta da parte del software Esempio: un riproduttore DVD Pressione di un pulsante Inizia la riproduzione Latenza Tempo t 0 t 1

7 Latenza: cause Hardware: Generazione degli interrupt e propagazione dei segnali attraverso i circuiti Software: Routine di gestione degli interrupt Algoritmo di schedulazione Context switch Applicazione utente Swapping (se le istruzioni per la gestione dell'evento non sono in memoria)

8 Prelazione (pre-rilasciabilità, pre-emption) In un sistema multitasking un altro trask potrebbe essere in esecuzione quando avviene un evento: è tipicamente necessario prelazionare questo task La prelazione (pre-emption) indica l'abilità del sistema operativo di sospendere un task attualmente schedulato/in esecuzione per eseguirne un altro a priorità più alta Evento Interrupt Gestione interrupt Pre-emption del task corrente Task Switching Risposta

9 Latenza di prelazione (pre-emption latency) Esempio: un riproduttore DVD Pressione di un pulsante Evento Interrupt Inizia la riproduzione Risposta Latenza Tempo t 0 t 1 Latenza hardware Interrupt Service Routine (ISR) Algoritmo di scheduling Context switch Task per la riproduzione del film Latenza dell'interrupt Latenza di prelazione Latenza di scheduling

10 Tipi di requisiti real-time Hard Real-Time: I task devono essere completati entro una deadline Oltrepassare una deadline non può essere tollerato: se la risposta arriva troppo tardi è inutile e pericoloso per la stabilità del sistema Esempi: sistemi di controllo (autopilota degli aeroplani, controllo di un reattore nucleare,...)

11 Tipi di requisiti real-time Firm Real-Time: Oltrepassare una deadline non è pericoloso: se la risposta arriva troppo tardi viene semplicemente ignorata Un task non può continuare l'esecuzione dopo la deadline: se il task non ha finito, il risultato è ignorato Esempio: sistemi multimediali (pipeline di rendering video in real-time: per mantenere la sincronizzazione con l'audio alcuni frame possono essere ignorati)

12 Tipi di requisiti real-time Soft Real-Time: I task devono essere completati entro una deadline, ma le eccezioni sono tollerate Perdere una deadline non comporta seri problemi al sistema o conseguenze gravi Esempi: DVD Player (perdere una deadline potrebbe semplicemente causare un degrado nell'immagine)

13 Schedulazione e schedulabilità Schedulabilità: condizione per le deadlines sono rispettate per ogni task Obiettivo di un RTOS: garantire che le deadlines (momento per prima del quale il task deve aver terminato l'esecuzione), garantire la schedulabilità dei task Hard real-time: Scheduling statico o dinamico Soft real-time: Scheduling con priorità

14 Scheduling statico Il numero di task e l'ordine di schedulazione sono definiti a priori A runtime, lo scheduling è semplice e richiede poco tempo, ma... Il sistema non è flessibile: Non è possibile aggiungere o rimuovere task Ogni cambiamento richiede una rivalutazione offline dell'ordine di scheduling per garantire la schedulabilità

15 Scheduling dinamico I task possono essere aggiunti o rimossi dinamicamente dalla coda di scheduling Il sistema deve garantire la validità della coda di esecuzione ad ogni cambiamento ( il sistema è ancora schedulabile? ) Questo approccio è flessibile ma... È difficile garantire la correttezza

16 Scheduling con priorità L'ordine di esecuzione dei task è determinato dalla loro priorità Le priorità possono essere modificate a runtime Offre delle performance best-effort, ma... L'ordine esatto dello scheduling potrebbe essere imprevedibile

17 Scheduling periodico Tutti i task t i hanno delle deadline (hard) periodiche Tutti i task sono indipendenti e hanno un tempo di esecuzione conosciuto X(t i ) Ogni task è schedulato periodicamente con periodo P i, e ha un intervallo di deadline D(t i ) (ovvero deve completare l'esecuzione in un tempo D(t i )) Il tempo slack o laxity L i è definito come L i = D(t i ) - X(t i )

18 Scheduling periodico Accumulated utilization: n u= i X t i / P i In un sistema con m processori, abbiamo la schedulabilità se u m Deadline P i D Task t i X(t i ) i L i

19 Rate Monotonic Scheduling (RMS) (1) È un esempio di algoritmo di schedulazione statica basata sulle priorità: Ogni task ha una priorità assegnata durante lo sviluppo del sistema (design time), utilizzando l'algorimo rate monotonic (RMA) RMA assegna delle priorità fisse ai task periodici in modo da massimizzare la schedulabilità Idea: assegnare la priorità ad un task in base al periodo, in modo che i task con periodo più corto ricevano una priorità più alta

20 Rate Monotonic Scheduling (RMS) (2) Consideriamo: Dei task indipendenti e periodici L'intervallo di deadline equivale al periodo (D i = P i ) Il tempo richiesto per l'esecuzione è conosciuto e costante Possiamo ignorare il tempo richiesto per il cambio di contesto Accumulated utilization per n task n u= i X (t i )/ P i n(2 1/n 1) Condizione di schedulabilità con RMS

21 Rate Monotonic Scheduling (RMS) (3) RMA è un algoritmo a priorità statiche ottimale: Se un insieme di task non è schedulabile con RMA, non potrà esserlo con nessun altro algoritmo a priorità statiche Peggior caso per 1 CPU, e n task: n, W s 69% W s =n 2 n/1 1

22 Esempio di scheduling RMS (1) 3 task periodici: A (esecuzione 3),B (1),C (4) Periodi: A = 20, B = 5, C = 14 Priorità: A = 1/20, B = 1/5, C = 1/14 (ordine B,C,A) U = 3 / 20 + 1 / 5 + 4 / 14 = ~0.63 = 63% Il periodo più corto da una priorità più alta 1 i.e. Schedulabile su 1 CPU, 0.77 i.e. Schedulabile con RMS (3 *(2 ^ (1/3) 1)) = 0.77 1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930313233343536373839404142434445 Tempo A A A A B B B B B B B B B B C C C C C B C B A B C B B A RMS B C B B B A C deadline

23 Esempio di scheduling RMS (2) 3 task periodici: A (3),B (3),C (1) Periodi: A = 6, B = 8, C = 10 Priorità: A = 1/6, B = 1/8, C = 1/10 (ordine A,B,C) 1 i.e. Schedulabile su 1 CPU, U = 3 / 6 + 3 / 8 + 1 / 10 = ~0.97 = 97% > 0.77 i.e. NON schedulabile con RMS Tempo 1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930313233343536373839404142434445 A A A A A A A A A B BB B B B B B C C C C C C RMS A B A B Errore! C ha oltrepassato la sua deadline! deadline

24 Scheduling Earliest Deadline First (EDF) Scheduling con priorità dinamiche Il task che ha la deadline più vicina acquista una priorità più alta Tutte le deadline sono soddisfatte se l'utlizzo della CPU è al massimo 100% Se il sistema è sovraccarico, lo scheduling diventa imprevedibile Può essere utilizzato anche per task non-periodici

25 Esempio di scheduling con EDF 3 task periodici: A (3),B (3),C (1) Periodi: A = 6, B = 8, C = 10 U = 3 / 6 + 3 / 8 + 1 / 10 = ~0.97 = 97% 1 i.e. Schedulabile con 1 CPU 1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930313233343536373839404142434445 Tempo A A A A A A A A A B B B B B B B C C C C C C EDF A B C A B A C B A C A B C A B A deadline

26 Scheduling Least slack time Anche conosciuto come scheduling Least Lexity Time Le priorità sono basate sullo slack time dei task: i task che hanno uno slack time più basso hanno una priorità più alta

27 Il problema dell'inversione della priorità (1) Consideriamo questa situazione: Un task a bassa priorità B acquisisce un lock Un task a alta priorità A cerca anche lui di acquisire il lock, ma è messo in attesa Un task a media priorità M è messo in esecuzione dall'altoritmo di scheduling (pre-emption) invece di quello a bassa priorità B Il task a bassa priorità B non verrà più eseguito fintanto che M è pronto, ma così facendo non permetterà mai a A di ottenere il lock e quindi di continuare l'esecuzione

28 Il problema dell'inversione della priorità (2) B (bassa priorità) B prende il lock S A prova a prendere S bloccato A attende Tempo M 1 (media priorità) M 1 (media priorità) M 2 (media priorità) A (alta priorità) pre-emption B non viene più schedulato perchè ha una priorità bassa: il lock non sarà mai rilasciato e H perde il suo vantaggio non potendo continuare

29 Il problema dell'inversione della priorità (3) Soluzione: ereditare la priorità Un processo che acquisisce un semaforo o lock eredita, temporaneamente, la priorità del processo con priorità più alta che è in attesa B (bassa priorità) B prende il lock S A prova a prendere S bloccato A attende Tempo B rilascia S, A lo prende M 1 (media) A (alta) B (alta, ereditata) A (alta) pre-emption

30 Altre problematiche dei RTOS: gestione della memoria Obiettivo: minimizzare l'overhead della gestione della memoria Una gestione della memoria efficiente è critica per un sistema RTOS I RTOS sono tipicamente utilizzati su piattaforme embedded, con memoria limitata Punti chiave: velocità di allocazione evitare la frammentazione

31 Frammentazione della memoria (1) La frammentazione avviene quando un task libera della memoria Un sistema di garbage collection o deframmentazione della memoria non è (sempre) possibile Richiede tempo e risorse CPU Non è deterministico (non è possibile sapere quando il GC verrà eseguito, perché dipende dall'ordine di scheduling)

32 Frammentazione della memoria (2) Per evitare la frammentazione i RTOS allocato tipicamente della memoria in blocchi (chunk) di dimensione fissa Più dimensioni differenti possono essere offerte: Per ogni dimensione, abbiamo degli insiemi separati di blocchi allocabili Quando un blocco viene liberato lo si rimette nell'insieme corrispondente Il tempo di allocazione e deallocazione è praticamente costante Dimensione dei Chunk: 10 20 50 100

33 Comunicazione tra task Per evitare i problemi deadlock possiamo utilizzare dei meccanismi di scambio dei messaggi per ottenere la comunicazione tra task (anziché memoria condivisa e deadlock) La maggior parte dei RTOS offre un sistema di message passing di basso livello con prestazioni elevate I messaggi possono essere utilizzati anche per la sincronizzazione, es. Un task A passa a B (via messaggio) un token per l'utilizzo di una risorsa C Mittente messaggio Destinatario

34 Riferimenti http://en.wikipedia.org/wiki/real-time_operating_system http://camars.kaist.ac.kr/~maeng/cs310/embedded07/11-processes-scheduling.pdf http://linuxdevices.com/articles/at4627965573.html http://www.dei.unipd.it/corsi/so/no/store/u12artos.pdf http://www.slideshare.net/dadaista/scheduling/ Stewart, David and Michael Barr. "Rate Monotonic Scheduling" Embedded Systems Programming, March 2002, pp. 79-80. A. S. Tanenbaum, Modern Operating Systems, 2 nd Edition, Prentice Hall, 2001.