La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Capitolo 19: Sistemi real-time. 19.2 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Sistemi real-time Sistemi.

Presentazioni simili


Presentazione sul tema: "Capitolo 19: Sistemi real-time. 19.2 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Sistemi real-time Sistemi."— Transcript della presentazione:

1 Capitolo 19: Sistemi real-time

2 19.2 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Sistemi real-time Sistemi general pourpose Orizzonte degli eventi non definito: i task forse termineranno; Gestione della memoria elastica (es. paginazione,…); Sistemi real-time I task devono essere conclusi entro un lasso di tempo predefinito e predicibile; Di solito sono sistemi integrati/embedded (sistemi inseriti e nascosti in un dispositivo); Hanno risorse limitate e fisse; Sistemi safety-critical: il non completamento dei task pone problemi seri;

3 19.3 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Sistemi real-time Sistemi Hard-realtime Hanno vincoli stringenti che impongono il completamento dei task Sistemi Soft-realtime Meno restrittivi; Assegnano priorità ai compiti real-time;

4 19.4 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Sistemi real-time Specializzazione: Sono progettati per svolgere un solo di compito (o numero ristretto di compiti omogenei) Dimensione ridotta Es. forni, orologi; Processori a bassa potenza (es. 8 bit, 16 bit); Poca capacità di memorizzazione; Impronta (footprint): quantità minima di memoria richiesta dal SO e dalle applicazioni

5 19.5 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Sistemi real-time Prodotto su larga scala Dovuto all’uso nelle apparecchiature di consumo Necessità di minimizzare i costi Limiti di tempo precisi Sfruttano particolari algoritmi di scheduling Minimizzano il tempo di risposta alle interruzioni

6 19.6 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Architettura basata su bus Si usano strategie SOC (System On Chip) piuttosto che a BUS (come in figura) per contenere i costi

7 19.7 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Architettura SOC Un SOC contiene: Uno o più core (es. microp. a DSP); Modulo di memoria (flash, rom, ram,…) Generatore di clock I connettori alle interfacce ADC/DAC

8 19.8 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Architetture

9 19.9 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Alcuni SO in tempo reale VxWorks (Motorola, Pentium, StrongArm, Arm) Aderisce a POSIX Robotica, controllo di processi, avionica, telecomunicazioni, medicina Prestazioni su Pentium 200: latenza media 1.7 us, latenza massima 6.8 us Windows CE.NET (ARM, StrongArm, XScale, MIPS, Pentium) Non aderisce a POSIX Prestazioni su Pentium 200: latenza media 2.4 us, latenza massima 5.6 us QNX Neutrino RTOS (Pentium, Power PC, ARM, StrongArm, XScale, MIPS, SH-4) Microkernel, aderisce a POSIX Prestazioni su Pentium 200: latenza media 1.6 us, latenza massima 4.1 us pSOSystem 3 Aderisce a POSIX Prestazioni su Pentium 200: latenza media 1.9 us, latenza massima 3.8 us Arx RTOS AvSys CMX RTOS

10 19.10 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Struttura VxWorks

11 19.11 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Windows CE OAL (OEM adaptation layer): si interfaccia con l’hardware (interrupt, timer, ioctl, …) KTL (Kernel Independent Transport Layer) supporto ai servizi di debugging GWES (Graphics, Windowing and Events)

12 19.12 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione eCos embedded Configurable operating system Open source Sistema operativo real-time progettato per sistemi embedded che richiedono un solo processo con thread multipli. Compatibile con lo standard Posix.

13 19.13 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione TinyOS Progettato per sensor network wireless (Smart Dust): limiti di memoria severi; È scritto in nesC come un insieme di task e processi cooperativi.

14 19.14 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Caratteristiche dei kernel real-time Non hanno bisogno di strutture sofisticate a causa della loro specializzazione e dei costi connessi es.: Periferiche (CD, DVD, …) Protezione e sicurezza Utenti multipli Supporto dei dispositivi per alcune architetture nei kernel linux (ogni architettura ha anche dispositivi specifici): Optionx86ARMPPCMIPSSHM68k Parallel port supportXX X IEEE 1394 supportXXX X IrDA supportXXXX USB supportXXXX Bluetooth supportXX

15 19.15 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Memory Management Unit Traduce indirizzi logici in indirizzi fisici, ma: Costano Consumano energia Il tempo di traduzione di un indirizzo può essere proibitivo se il TLB fallisce Sono necessari meccanismi più semplici per la gestione della memoria.

16 19.16 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Memory Management Unit

17 19.17 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Real-addressing mode Modalità di indirizzamento fisico: Gli indirizzi logici corrispondono a quelli fisici; Non ricorre alla memoria virtuale; Non ha meccanismi di protezione della memoria; Può obbligare i programmatori a dichiarare le locazioni fisiche in cui memorizzare le variabili Non consuma tempo per la traduzione degli indirizzi Viene usato nei sistemi hard real-time

18 19.18 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Con registro di rilocazione L’indirizzo fisico si ottiene sommando il registro di rilocazione all’indirizzo logico. Anche in questo caso non c’è protezione della memoria.

19 19.19 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Gestione completa della memoria virtuale La traduzione degli indirizzi avviene tramite la tabella delle pagine e il TLB. Protezione della memoria; Caricamento dei programmi in qualunque punto della memoria; Potrebbero addirittura gestire lo swapping su memoria flash (es. LynxOS).

20 19.20 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Traduzione degli indirizzi nei sistemi real-time

21 19.21 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Parametri dei task real-time Deadline d Istante di arrivo r task Istante di avvio Fine f Tempo di calcolo e Tempo di risposta: f-r Laxity (Slack)=d-t-e rem Deadline relativa

22 19.22 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Dead-line miss Deadline Istante di arrivo task

23 19.23 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Vincoli di tempo Vincoli deterministici Es. tempo di risposta < 50ms Vincoli probabilistici Es. tempo di risposta > 50ms nell’1% dei casi

24 19.24 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Uso della CPU Informazioni del carico di sistema: Fattore di uso della CPU: Frazione di tempo usata nell’esecuzione dei task

25 19.25 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Uso della CPU <25%Eccesso di potenza di calcolo: la CPU probabilmente è troppo potente <50%Zona sicura <68%Zona “abbastanza” sicura 69%Limite teorico 70-82%Zona non sicura 83-99%Zona pericolosa (ma usata nei sistemi embedded) >100%Overload

26 19.26 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Scheduling per priorità Il SO real-time deve rispondere immediatamente a un processo quando questo richiede l’uso della CPU: E’ necessario uno scheduler con diritto di prelazione Se lo scheduler supporta priorità e prelazione un processo con priorità più alta può far sospendere uno con priorità più bassa attualmente in esecuzione. Questi tipi di scheduler si usano nei casi soft real-time.

27 19.27 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Kernel con diritto di prelazione Consentono la prelazione dei processi eseguiti in modalità kernel. Sono necessari per sistemi hard real-time. Si realizzano con l’inserimento di punti di prelazione all’interno delle system call. Un punto di prelazione verifica che un processo ad alta priorità sia pronto a partire. In questo caso c’è un cambio di contesto. I punti di prelazione possono essere inseriti solo in punti sicuri: quando le strutture del kernel non subiscono modifiche Possono essere implementati anche con sistemi di sincronizzazione.

28 19.28 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Minimizzazione della latenza I sistemi real-time sono guidati dagli eventi Latenza relativa ad un evento (event-latency): il periodo tra l’inizio di un evento e il momento in cui le azioni necessarie per gestirlo sono intraprese dal sistema.

29 19.29 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Latenza relativa alle interruzioni Periodo tra la notifica di un’interruzione e l’avvio della routine di gestione dell’interruzione.

30 19.30 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Latenza relativa alle interruzioni Durante l’aggiornamento delle strutture dati del sistema le interruzioni sono disattivate nei sistemi real-time questi periodi devono essere molto piccoli nei sistemi hard real-time la latenza deve essere circoscritta

31 19.31 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Latenza relativa al dispatch Periodo tra il blocco di un processo e l’avvio del successivo. Prelazione dei processi in esecuzione Cessione delle risorse al processo ad alta priorità

32 19.32 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Inversione delle priorità Tre processi L, M, H Priorità L

33 19.33 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Processo periodico 0 < t < d < p Lo scheduler può usare quest’informazione per assegnare le priorità: il processo deve dichiarare d; lo scheduler esegue un controllo dell’ammissibilità.

34 19.34 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Scheduling a frequenza monotonica Modello statico di attribuzione delle priorità con prelazione Ipotesi: Priorità inversamente proporzionale al periodo (statica) Non c’è condivisione delle risorse Il periodo non varia. E’ un algoritmo ottimale (per gli scheduler a priorità statiche)

35 19.35 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Scheduling dei processi in caso P 2 abbia priorità maggiore di P 1 Scadenze: p 1 = 50 p 2 = 100

36 19.36 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Scheduling a frequenza monotonica A priority is assigned based on the inverse of its period Shorter periods = higher priority; Longer periods = lower priority P1 is assigned a higher priority than P2.

37 19.37 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Scadenze non rispettate con lo scheduling a frequenza monotonica

38 19.38 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Scheduling EDF Earliest Deadline First Scheduling Priorities are assigned according to deadlines: the earlier the deadline, the higher the priority; the later the deadline, the lower the priority. Ogni processo deve dichiarare la propria deadline ATTENZIONE all’effetto domino

39 19.39 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Proportional Share Scheduling T shares are allocated among all processes in the system. An application receives N shares where N < T. This ensures each application will receive N / T of the total processor time.

40 19.40 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Pthread Scheduling The Pthread API provides functions for managing real-time threads. Pthreads defines two scheduling classes for real-time threads: (1) SCHED_FIFO - threads are scheduled using a FCFS strategy with a FIFO queue. There is no time-slicing for threads of equal priority. (2) SCHED_RR - similar to SCHED_FIFO except time-slicing occurs for threads of equal priority.

41 19.41 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Esempio: creazione di un task in FreeRTOS // Task to be created. void vTaskCode( void * pvParameters ) { for( ;; ) { // Task code goes here. } // Function that creates a task. void vOtherFunction( void ) { unsigned char ucParameterToPass; xTaskHandle xHandle; // Create the task, storing the handle. xTaskCreate( vTaskCode, "NAME", STACK_SIZE, &ucParameterToPass, tskIDLE_PRIORITY, &xHandle ); // Use the handle to delete the task. vTaskDelete( xHandle ); }

42 19.42 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione RTSj Real-Time Specification for Java (RTSJ) RTSJ is designed to support both hard and soft real-time applications. scheduling properties suitable for real-time applications with provisions for periodic and sporadic tasks, support for deadlines and CPU time budgets, tools to let tasks avoid garbage collection delays

43 19.43 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Esempio: gestione della memoria in real time java The RTSJ defines two new types of memory areas that allow real-time applications to avoid unpredictable delays commonly caused by traditional garbage collectors: Immortal memory holds objects without destroying them except when the program ends. This means that objects created in immortal memory must be carefully allocated and managed.

44 19.44 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Esempio: gestione della memoria in real time java Scoped memory is used only while a process works within a particular section, or scope, of the program such as in a method. Objects are automatically destroyed when the process leaves the scope. This is a useful feature akin to garbage collection in that discrete creation and deletion is not required as in the immortal memory case - but the process must be sure to exit the scope to ensure memory is reaped. Neither immortal nor scoped memories are garbage collected, so using them avoids problems of GC interference

45 19.45 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Real Time Specifications for Java (RTSJ) Memory management Classe ScopedMemory: sottoclassi: VTMemory (allocazioni fornite in un tempo variabile) e LTMemory (allocazioni fornite in un tempo lineare proporzionale alla grandezza dell'oggetto)

46 19.46 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Real Time Specifications for Java (RTSJ) Memory management RTSJ introduce due nuove aree di memoria nelle quali il Garbage Collector agisce in modo predicibile immortal memory: condivisa tra i thread di un'applicazione. Rilascio solo al termine. ImmortalMemory.instance().enter(new Runnable() { public void run() { } };

47 19.47 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Real Time Specifications for Java (RTSJ) Memory management Scoped memory. Definisce limiti di vita di un oggetto; numero dei riferimenti a quell'area. Se == 0 la memoria viene rilasciata (metodi finalize() di quegli oggetti) public void run() { LTMemory myMem = new LTMemory(1000, 5000); // LTMemory (initialSize, maxSize in byte) myMem.enter(new Runnable() { public void run() { } };

48 19.48 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Esempio: gestione della memoria in real time java Direct Access to Physical Memory While still maintaining security protections, the RTSJ allows direct access to physical memory. This means that device drivers can be created written entirely in Java. Previously, Java applications had to link to native code to communicate directly with the hardware.

49 19.49 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Esempio JavaRTS RealtimeThread thread class—Used for soft real-time scheduling, this class uses a real-time garbage collector. NoHeapRealtimeThread thread class—This class is used for hard real-time scheduling and synchronization (does not use the Java heap, and hence does not need the garbage collector). Twenty-eight new levels of strictly enforced priority levels. The highest priority Java RTS thread is truly the highest priority thread in the system and will not be interrupted.

50 19.50 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Esempio JavaRTS Asynchronous event handlers —These handle external events and allow you to schedule your application’s response without spoiling the temporal integrity of the overall system. Asynchronous transfer of control —This allows you to transfer control from one thread to another or quickly terminate a thread, in a manner that is safe from a real-time perspective. High-resolution timers —These timers have true nanosecond accuracy.

51 Fine del Capitolo 19


Scaricare ppt "Capitolo 19: Sistemi real-time. 19.2 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi - Settima edizione Sistemi real-time Sistemi."

Presentazioni simili


Annunci Google