INTRODUZIONE AI SISTEMI OPERATIVI EMBEDDED

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "INTRODUZIONE AI SISTEMI OPERATIVI EMBEDDED"

Transcript

1 1 INTRODUZIONE AI SISTEMI OPERATIVI EMBEDDED ROUND ROBIN ROUND ROBIN CON INTERRUPT FUNCTION QUEUE SCHEDULING REAL TIME OPERATING SYSTEMS (RTOS) INTERRUPT PROGRAMMATI: TIMER

2 INTRODUZIONE 2 In relazione al funzionamento reale delle applicazioni su sistemi embedded il comportamento delle applicazioni viste finora non era realistico. L architettura software prevedeva l esecuzione di un certo numero di task e dopodiché l applicazione si considerava conclusa. In applicazioni reali il sistema funziona a partire dall accensione fino al venir meno dell alimentazione o fino al reset. Esistono architetture software che implementano tale funzionamento, a partire dalle più semplici in assoluto fino ai sistemi operativi real time (cenni). I due esempi più semplici di architettura software per sistemi embedded sono: round robin; round robin con interrupts.

3 3 ROUND ROBIN

4 ARCHITETTURA SOFTWARE ROUND ROBIN 4 La più semplice architettura software è definita round robin. Un loop infinito si occupa di interrogare a turno (polling) ciascuna delle periferiche di I/O e di eseguire le routine associato ogni qualvolta sia necessario.

5 APPLICAZIONE DI ESEMPIO: ROUND ROBIN 5

6 PRO e CONTRO Vantaggi: è l architettura software più semplice. Limiti: funziona bene sotto particolari condizioni: poche porte di I/O; elaborazioni brevi; vincoli di tempi di risposta in I/O non stringenti. Se uno degli ingressi richiede tempi di risposta inferiori al tempo di risposta del sistema nel caso peggiore, il sistema non funziona. E sufficiente che uno dei task abbia una durata elevata, affinché il sistema diventi inservibile, pur continuando a funzionare. La struttura del software non è robusta: può essere sufficiente l inserimento si una sola nuova periferica da gestire per modificare la risposta temporale complessiva in maniera inaccettabile. 6

7 7 ROUND ROBIN CON INTERRUPT

8 ARCHITETTURA SOFTWARE ROUND ROBIN CON INTERRUPTS (1) 8 Gli interrupt presentano un incremento di complessità a livello architetturale, ma offre sicuramente più vantaggi. La struttura dell architettura prevede che: le routine di interrupt (Interrupt Service Routine - ISR) si occupino di servire le incombenze urgenti legate alle periferiche di I/O settando i flag ogni qualvolta viene acquisito/spedito un dato; Il loop principale interroga i flag associati alle ISR ed esegue le elaborazioni associate solo quando necessario. Il vantaggio fondamentale è che tramite questa architettura software si può introdurre una priorità nella gestione dei task. La gestione dei dati sotto interrupt introduce un problema sostanziale che è quello della condivisione fra i dati fra applicazione principale (main) routine di interrupt.

9 ARCHITETTURA SOFTWARE ROUND ROBIN CON INTERRUPTS (2) 9

10 GESTIONE DEI DATI CONDIVISI 10 Il problema fondamentale di questo tipo di architettura software deriva dai malfunzionamenti causati dall accesso asincrono ai dati condivisi di programma principale e routine di interrupt. APPLICAZIONE D 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. Un allarme deve essere sollevato se le temperature rilevate non sono uguali. L acquisizione avviene tramite interrupt. La segnalazione dell allarme nella routine principale. Supponiamo inoltre di monitorare la temperatura solo tramite due sensori e che, per semplicità, venga omessa la gestione dei flag.

11 APPLICAZIONE DI ESEMPIO: ROUND ROBIN + INT (1) 11

12 APPLICAZIONE DI ESEMPIO: ROUND ROBIN + INT (2) 12 Se si verificassero le seguenti condizioni in contemporanea: 1) un interrupt viene sollevato fra l esecuzione delle due istruzioni che assegnano le temperature rilevate dai sensori alle variabili temporanee temp1 e temp2 del programma principale; 2) le due nuove temperature rilevate, pur rimanendo uguali fra loro, sono cambiate rispetto alle temperature che erano state rilevate durante la precedente esecuzione della ISR. Si assiste alla generazione di un FALSO ALLARME.

13 APPLICAZIONE DI ESEMPIO: ROUND ROBIN + INT (3) 13 Teoricamente si potrebbe pensare di ottimizzare l architettura software ma ciò non servirebbe. Perché? NON SERVE PERCHE' LE ROUTINE DI INTERRUPT POSSONO INTERROMPERE IL PROGRAMMA FRA 2 DELLE ISTRUZIONI ASSEMBLY CHE IMPLEMENTANO IL TEST DI UGUAGLIANZA

14 APPLICAZIONE DI ESEMPIO: ROUND ROBIN + INT (4) 14 Questo problema si verifica a causa della condivisione dei dati. Il pezzo di codice del programma principale la cui interruzione può generare il problema viene definito critical section. La soluzione di tale problema è la disabilitazione degli interrupt all ingresso della sezione critica.

15 PRO e CONTRO (1) 15 Svantaggi: sicuramente più complessa della round robin; tutti i task del programma principale vengono gestiti con la stessa priorità; poca stabilità del codice: se si modifica il codice di un task si influenza il tempo di risposta degli altri. Esempio: Supponiamo di avere nel programma principale tre task (A, B e C) eseguiti nell ordine: A, B, C. Se gli interrupt associati ad A, B e C si verificano tutti all inizio dell esecuzione del programma principale: il tempo di attesa per eseguire il task A è pari alla somma dei tempi di esecuzione delle routine di interrupt associate ad A, B e C; il tempo di attesa per eseguire il task B è pari alla somma del tempo di esecuzione del task A più i tempi di esecuzione delle routine di interrupt associate ad A, B e C; il tempo di attesa per eseguire il task C è pari alla somma del tempo di esecuzione dei task A e B più i tempi di esecuzione delle routine di interrupt associate ad A, B e C.

16 PRO e CONTRO (2) Ovviamente questo crea dei problemi perché il tempo di attesa di C (caso peggiore) potrebbe essere inaccettabile per le sue specifiche di temporizzazione. Nel qual caso si potrebbe pensare di cambiare l ordine in cui il programma principale schedula i task mettendo C per primo (e.g C, A, B) ma questo impatta sui tempi di attesa di A e B a cui va sommato il tempo di esecuzione di C e non è detto che questa soluzione sia a sua volta accettabile. 16 Supponiamo che sia accettabile ma che sia necessario aggiungere un controllo al task C, aumentando il suo tempo di esecuzione di un fattore, il tempo di attesa per eseguire il task B (pari alla somma del tempo di esecuzione dei task C e A più i tempi di esecuzione delle routine di interrupt associate ad A, B e C più ) potrebbe solo a questo punto diventare inaccettabile. Per cui questa architettura software non è robusta.

17 17 FUNCTION QUEUE SCHEDULING

18 ARCHITETTURA SOFTWARE FUNCTION QUEUE SCHEDULING Le varie routine di interrupt comunicano al programma principale la necessità di eseguire il task di elaborazione associato non più settando un flag ma inserendo (PUSH) un puntatore al task da eseguire, associato alla routine di interrupt in fase di richiesta, in una coda di puntatori a funzioni. Il programma principale deve leggere dalla coda un puntatore ed eseguire il codice del task ad esso associato. Dove sta il vantaggio rispetto a prima? 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 nel caso peggiore per il task a priorità più elevata è pari al tempo di esecuzione del task più lento più la somma dei tempi delle routine di interrupt. Ovviamente anche una architettura software fatta in questa maniera non è estremamente stabile perché modificando il tempo di esecuzione di uno qualsiasi dei task si influenza necessariamente il tempo di attesa degli altri, ma il fatto di poter gestire le priorità a runtime consente di arginare la non ammissibilità ci certe situazioni. 18

19 19 REAL TIME OPERATING SYSTEMS (RTOS)

20 ARCHITETTURA SOFTWARE RTOS (1) 20 Le routine di interrupt, come nelle altre architetture software, anche qui si occupano delle operazioni più urgenti (I/O) e segnalano al programma principale che deve essere eseguito il task a loro associato. Le differenze sono: 1) la comunicazione fra ISR e programma principale è gestita dal sistema operativo; 2) la sequenza di esecuzione dei task è gestita dal sistema operativo, non esistono loop o codici in cui il programmatore possa gestire in maniera esplicita lo scheduling. IL CODICE DEL RTOS SI OCCUPA DELLO SCHEDULING DEI TASK, GESTENDO LE PRIORITA' DI ESECUZIONE NELLA MANIERA PIU' APPROPRIATA 3) Il RTOS può gestire la sospensione di un task per eseguirne uno a priorità più elevata.

21 ARCHITETTURA SOFTWARE RTOS (2) 21 Le prime due differenze forniscono dei vantaggi legati alle modalità di programmazione, semplificando ovviamente il compito del programmatore. La terza differenza è sostanziale, perché non solo le routine di interrupt possono sospendere un task ma anche altri task a priorità più alta. Quindi un architettura software di questo tipo è in grado di gestire una priorità di esecuzione sistematica non solo delle routine di interrupt, ma anche dei task del programma principale. Il tempo di risposta nel caso peggiore per il task a priorità più elevata si riduce alla somma dei tempi di esecuzione delle routine di interrupt, quindi questa architettura guadagna non solo in termini di flessibilità ma anche in termini di robustezza, perché modificando il tempo di esecuzione di un task in negativo non si impatta sul tempo di risposta di un task a priorità più elevata. Altro vantaggio è che gli RTOS sono prodotti commerciali, quindi posso abbattere i tempi di sviluppo di un sistema embedded a costi ragionevoli o nulli (codice freeware). Lo svantaggio è che ovviamente l esecuzione stessa del RTOS è time consuming quindi sottrarrà del tempo all elaborazione.

22 RIASSUMENDO 22

23 23 INTERRUPT PROGRAMMATI: TIMER

24 FUNZIONALITA DEL TIMER (1) Le specifiche di temporizzazione legate alla gestione real-time dell interazione con l ambiente esterno, rendono spesso indispensabile l utilizzo di meccanismi per consentire l esecuzione di determinati task (e.g. acquisizione dati, scrittura su periferiche, etc ) in maniera asincrona rispetto al ciclo di esecuzione del programma principale. Questa problematica si gestisce tramite l impiego di interrupt e nel caso in cui la gestione real-time richieda lo svolgimento di determinate operazioni con una temporizzazione predefinita sarà necessario disporre di una periferica che comunichi tale esigenza al processore. In pratica si deve predisporre un modulo programmabile che generi le interruzioni a frequenza predefinita. Tipicamente si usa un timer. Il timer è programmabile via software e a livello hardware è un contatore, che conta i cicli di clock in ingresso generando un segnale di interrupt a ogni fine conteggio. 24

25 FUNZIONALITA DEL TIMER (2) 25 ES: ISR Compia immediata dei dati in I/O in modo di rilassare le specifiche di temporizzazione sul programma principale. Programma Principale Si occupa della gestione effettiva de dati di I/O, pena la perdita delle informazioni. La Routine di Interrupt deve comunicare la necessità dell intervento del programma principale tramite il settaggio di una zona di memoria condivisa ad hoc.

26 MODELLO Nella nostra piattaforma di simulazione il timer è una periferica memory-mapped, dotata di un registro di stato leggibile dal processore e parzialmente scrivibile e di una uscita di interrupt. Il clock che il timer riceve in ingresso per il conteggio non è il global clock ma un altro segnale di clock inserito ad hoc nel sistema (sample clock). 26

27 STATUS REGISTER DI UN TIMER 27 Nello status register vengono conservate le informazioni circa: bit [15:0] - il numero di cicli del conteggio (scrivibile dal processore); bit [30] - lo stato di abilitazione del timer (scrivibile dal processore), codifica: 1 = ABILITATO, 0 = DISABILITATO; bit [31] - richiesta di interrupt pendente (leggibile dal processore). I campi scrivibili dal processore sono necessari a settare l intervallo di interrupt e gestire la sua abilitazione/disabilitazione. Il bit leggibile serve a segnalare l interrupt e viene usato dal processore per capire quale è la periferica che ha sollevato la richiesta di interruzione nel caso ce ne fossero n abilitate.

28 TIMER: CODIFICA VERILOG (1) 28 //supponendo che timer_reg_addr sia l indirizzo di memoria in cui è //stato mappato il timer or timer_reg) case (RWAddr) timer_reg_addr: to_data_bus = timer_reg; default: to_data_bus = 32'bX; endcase clk) if( rst == 1'b1) // sul reset i 30 bit bassi vengono posti a zero //il processore scrive su 31 e legge il 32esimo writable_timer_reg = 30'h0; else //scrittura da parte del processore se l indirizzo sul bus è quello //della periferica e se c è l abilitazione della scrittura if (RWAddr == timer_reg_addr) begin if (we) begin writable_timer_reg = from_data_bus[30:0]; end end

29 TIMER: CODIFICA VERILOG (2) 29 //definizione dello status reg assign timer_reg[30:0] = {writable_timer_reg}; assign timer_reg[31] = pending_int_flag; //abilitazione assign int_enable = timer_reg [30] ; //periodo assign int_period = timer_reg[15:0];... //count_rst generator process or rst) if ((rst!= 1'b0) (int_enable!= 1'b1)) count_rst = 1; else count_rst = 0;

30 TIMER: CODIFICA VERILOG (3) 30. sample_clk) begin //pending_int_flag set generator process if (count_rst ==1'b1) count = 1'b0; else if (count == int_period) begin count = 0; pending_int_flag_set = 1'b1; end else begin count = count + 1; pending_int_flag_set = 1'b0; end end.

31 TIMER: CODIFICA VERILOG (4) 31. clk) begin //pending_int_flag_reset generator process if( rst == 1'b1) //sul reset non c è interrupt pendente pending_int_flag_reset = 1'b0; else begin //leggo il timer quindi posso resettarne il valore if (RWAddr == (timer_reg_addr)) begin pending_int_flag_reset= 1'b1; end else begin

32 TIMER: CODIFICA VERILOG (5) 32 clk) //pending_int_flag generator process if( rst == 1'b1) pending_int_flag = 1'b0; else casex ({pending_int_flag, pending_int_flag_set, pending_int_flag_reset}) 3'bxx1: int_flag = 1'b0; 3'b1x0: int_flag = 1'b1; 3'b010: int_flag = 1'b1; 3'b000: int_flag = 1'b0; default: int_flag = 1'b0; endcase

33 SCHEMA A BLOCCHI ARCHITETTURA SOFTWARE 33

34 GESTIONE SW DEL TIMER 34 void drv_t0_init(int period) { int *t0_status_p ; t0_status_p = (int*) t0_status_addr; *t0_status_p = (int) period; } void drv_t0_enable(void) { int *t0_status_p = (int*) t0_status_addr; int mask, temp; mask = 0x ; //maschera a 32 bit tutti zeri tranne il penultimo //(enable) temp = *t0_status_p; *t0_status_p = (int) mask temp; // in or quindi forzo un 1 nel penultimo bit } void drv_t0_disable(void) { int *t0_status_p = (int*) t0_status_addr; int mask, temp; mask = 0xBFFFFFFF; //maschera a 32 bit tutti uno tranne il penultimo //(enable) temp = *t0_status_p; *t0_status_p = (int) mask & temp; // in and quindi forzo uno 0 nel penultimo bit }

35 SELEZIONE DELLA SORGENTE DI INTERRUPT 35 Ho solo due sorgenti di Interrupt ;salva registri sw $2,0x3020($0); salva $2 sw $3,0x3024($0); salva $3 li $2, 0x ; crea la maschera su $2. ; la maschera è lw $3,0x4010($0) ; copio T0_status_reg su $3 and $3,$3,$2 ; maschero il valore di $3 con $2 ; rimane solo il bit 31 eventualm diverso da zero ; se c'è interrupt (bit 31!=0) salta alla routine associata a T0 bnez $3, T0_INT_ROUTINE ; se non era T0 è sicuramente T1 lw $3,0x4018($0) ; copia T1_status_reg su $3 j T1_INT_ROUTINE ; salta alla routine associata a T1

36 ROUTINE: LETTURA DI UN DATO DA UNA PERIFERICA 36 T0_INT_ROUTINE: ; supponendo la periferica mappata in 4000 lw $3,0x4000($0) ; copio il contenuto di CH0 reg (il dato in input) su $3 ; supponendo il buffer associato a tale periferica mappato in 3008 sw $3,0x3008($0); copio su buffer0 il dato in input li $2,1 ; setta il flag_0 a 1 sw $2,0x3000($0) ; setta il task0_flag in modo che il task princ legga i dati j RETURN_TO_MAIN

37 PIATTAFORMA D ESEMPIO 37

38 ES.0 - DESCRIZIONE 38 Un solo canale di input viene utilizzato per monitorare la temperatura dell environment. Il valore di ingresso viene campionato sotto interrupt ad intervalli regolari, essendo stato abilitato il timer 0, e viene scritto in una locazione di memoria condivisa col programma principale. La ISR, oltre a campionare i dati, setta il flag di comunicazione alto ogni qualvolta effettua una lettura. Il task del programma principale (unico in questo primo esempio), quando riceve la segnalazione di avvenuto interrupt copia il dato dalla singola locazione condivisa in un vettore (allocato nello stack) che tiene conto degli ultimi N dati campionati. Quando questo vettore è pieno, il programma principale calcola la media e se è superiore ad una soglia predeterminata segnala una condizione di allarme sul canale di output.

39 ES.0 MAPPA DELLA MEMORIA 39

40 ES.0 MAIN 40 drv_t0_init(50); drv_t0_enable(); while(1) { if((*p_task0_flag) == 1){ // copia i singoli sample acquisiti nel vettore copy_ch0_sample(index, temp_samples_vector, temp_samples_vector_dim); if (index == temp_samples_vector_dim-1) { index = 0; somma_temp = elab_samples_sum(temp_samples_vector, temp_samples_vector_dim); media_temp = somma_temp>>temp_samples_vector_dim_log; if( media_temp > (25)) { drv_ch2_write(0); drv_ch2_write(media_temp); } } else { index++; } *p_task0_flag = (int) 0; } }

41 ES.0 ISR (1) 41 INT_SELECT_ROUTINE : sw $2,0x3020($0); salva $2 sw $3,0x3024($0); salva $3 li $2, 0x ; crea la maschera su $2. la maschera è lw $3,0x4010($0) ; copio T0_status_reg su $3 ; maschero il valore di $3 con $2, rimane solo il bit 31 eventualm diverso da zero and $3,$3,$2 bnez $3, T0_INT_ROUTINE ; se c'è interrupt salta alla routine associata a T0 lw $3,0x4018($0) ; copia T1_status_reg su $3 j T1_INT_ROUTINE ; salta alla routine associata a T1 T0_INT_ROUTINE: lw $3,0x4000($0) ; copio il contenuto di CH0 reg (il dato in input) su $3 sw $3,0x3008($0); copio su buffer0 il dato in input li $2,1 sw $2,0x3000($0) ; setta il task0_flag in modo che il progr princ legga i dati j RETURN_TO_MAIN

42 ES.0 ISR (2) 42 T1_INT_ROUTINE: ; nel primo esempio è vuota perché c è una sola periferica temporizzata RETURN_TO_MAIN: lw $2,0x3020($0) ;ripristina $2 lw $3,0x3024($0) ;ripristina $3 rfe ;restituisce il controllo del flusso di esecuz al programma principale con rfe

43 ES.1 GESTIONE DI DUE PERIFERICHE TEMPORIZZATE 43 Per gestire due periferiche temporizzate è necessario completare la routine si selezione della periferica che ha generato l niterrupt (T1_INT_ROUTINE) La seconda periferica va mappata in memoria in maniera coerente con la mappa fornita già per ES.0 e ovviamente nel main va aggiunto il task di gestione di questa seconda periferica.

44 ES.2 DISACCOPPIAMENTO ISR/MAIN La gestione dell I/O tramite interrupt è tanto più efficace quanto più disaccoppiata è l acquisizione dei dati rispetto alla loro gestione. Quindi acquisirne uno alla volta e poi interpellare il processore non è sicuramente un disaccoppiamento sufficiente per questa applicazione che poi calcola la media di un set di valori. Sarebbe meglio acquisire tutto il set e poi chiamare il processore quando può calcolare la media sul set. Per fare ciò si utilizza una FIFO circolare. 44

45 ES.2 GESTIONE FIFO CIRCOLARE Per accedere alla FIFO si utilizzano due puntatori: P_YOUNG punta alla prima locazione scrivibile e viene utilizzato dalla ISR per aggiungere un dato al vettore condiviso P_OLD punta alla locazione scritta da più tempo e viene utilizzato dal programma principale per leggere il vettore condiviso senza perdere dati Se la FIFO circolare è allocata da 3100 a 31FC, la gestione circolare prevede che: i due puntatori vengano inizializzati a 100; ad ogni interrupt P_YOUNG venga incrementato di 4 (1 WORD = 4 BYTE); quando il programma principale viene triggerato P_OLD viene incrementato di N*4 (N = dati prelevati in contemporanea); incremento: IF (POINTER == 31FC) POINTER = 3100; ELSE POINTER++; 45

46 ES.2 MAIN 46 drv_fifo0_init(); drv_t0_init(num_conteggi); while(1) { if((*p_task0_flag) == 1){ // acquisisce la temperatura copy_ch0_samples_vector(temp_samples_vector, temp_samples_vector_dim); // calcola la somma dei campioni somma_temp = elab_samples_sum(temp_samples_vector, temp_samples_vector_dim); media_temp = somma_temp >> temp_samples_vector_log; if( media_temp > 20 ){ drv_ch2_write(0); drv_ch2_write(media_temp); } *p_task0_flag = (int) 0; } }

47 ES.2 ISR (1) 47 T0_INT_ROUTINE: lw $3,0x4000($0) ; copio il contenuto di CH0 reg (il dato in input) su $3 ; scrivo su $2 l'ind del primo elemento libero del CH0 buffer - p_young lw $2,0x3008($0) sw $3,0x0($2); copio sul primo elemento libero del CH0 buffer il dato in input ; aggiorno il puntatore al primo elemento libero del CH0 buffer li $3,0x31FC; carico su $3 l'indirizzo più alto del buffer ; se l'indirizzo del top del buffer è uguale all'indirizzo più alto disponibile aggiorna in ; maniera circolare beq $2,$3,CH0_SPECIAL_INCREMENT j CH0_STANDARD_INCREMENT CH0_SPECIAL_INCREMENT: ; setta il puntatore al fondo del buffer addi $2,$0,0x3100 j END_CH0_INT_ROUTINE CH0_STANDARD_INCREMENT: ; incrementa il puntatore di una posizione addi $2,$2, 0x0004

48 ES.2 ISR (2) 48 END_CH0_INT_ROUTINE: sw $2,0x3008($0); salva il valore del puntatore young lw $3,0x3018($0) ; copio il valore del num di elementi contenuti nella pila in $3 ; scrivo il num di elementi contenuti da leggere in una sola volta per il task0 +1 = ; temp_samples_vector_dim+1 li $2,33 beq $2,$3, SET_FLAG0 ; li ho letti tutti e ho anche incrementato per questo +1 j RETURN_TO_MAIN SET_FLAG0: li $2,1 sw $2,0x3000($0) ; setta il task0_flag in modo che il progr princ legga i dati j RETURN_TO_MAIN T1_INT_ROUTINE: RETURN_TO_MAIN: lw $2,0x3020($0) ;ripristina $2 lw $3,0x3024($0) ;ripristina $3 rfe ;restituisce il controllo del flusso di esecuz al programma principale con rfe

ARCHITETTURE SOFTWARE

ARCHITETTURE SOFTWARE 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

Dettagli

Architettura di un sistema di calcolo

Architettura di un sistema di calcolo Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi

Dettagli

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario L hardware di I/O Struttura Interazione tra computer e controllori

Dettagli

Introduzione alle architetture per il controllo dei manipolatori

Introduzione alle architetture per il controllo dei manipolatori Introduzione alle architetture per il controllo dei manipolatori Nicola SMALDONE Controllo digitale Perché un sistema di elaborazione dati? Le uscite dell impianto vengono campionate mediante un convertitore

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

Dettagli

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

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione SISTEMI OPERATIVI (parte prima - gestione dei processi) Tra i compiti di un sistema operativo sicuramente troviamo i seguenti: Gestione dei processi Gestione della memoria Gestione del file-system Ci occuperemo

Dettagli

Programmazione concorrente in Java. Dr. Paolo Casoto, Ph.D. - 2012 1

Programmazione concorrente in Java. Dr. Paolo Casoto, Ph.D. - 2012 1 + Programmazione concorrente in Java 1 + Introduzione al multithreading 2 La scomposizione in oggetti consente di separare un programma in sottosezioni indipendenti. Oggetto = metodi + attributi finalizzati

Dettagli

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

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche Input/Output n Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi n Tutti più lenti della CPU e della RAM n Necessità di avere moduli di I/O Moduli

Dettagli

Sistemi di Elaborazione a Microprocessore 8259. (Controllore Program m abile delle Interruzioni) M. Rebaudengo - M. Sonza Reorda

Sistemi di Elaborazione a Microprocessore 8259. (Controllore Program m abile delle Interruzioni) M. Rebaudengo - M. Sonza Reorda 8259 (Controllore Program m abile delle Interruzioni) M. Rebaudengo - M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica 1 M. Rebaudengo, M. Sonza Reorda Generalità L'8259 è stato progettato

Dettagli

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Dettagli

Architettura del PIC 18F452

Architettura del PIC 18F452 Controllo Digitale a.a. 2005-2006 Architettura del PIC 18F452 Ing. Federica Pascucci PIC 18F452 Caratteristiche Frequenza operativa: 40 MHz Memorie: Program FLASH memory: 32 KBytes, 16 K-istruzioni memorizzabili

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

Dettagli

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1

Dettagli

Sistemi e schedulazione in tempo reale

Sistemi e schedulazione in tempo reale Sistemi e schedulazione in tempo reale 1 Sistemi in tempo reale Sistemi di calcolo in cui la correttezza del funzionamento dipende criticamente dal tempo in cui i risultati sono prodotti. Possibili campi

Dettagli

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

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

Implementazione di sistemi real time

Implementazione di sistemi real time Implementazione di sistemi real time Automazione 28/10/2015 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO HARDWARE ABSTRACTION LAYER IMPLEMENTAZIONE EVENT-DRIVEN IMPLEMENTAZIONE TIME-DRIVEN SISTEMI DI

Dettagli

Il sottosistema di I/O. Input Output digitale

Il sottosistema di I/O. Input Output digitale Il sottosistema di I/O Il sottosistema di I/O consente la comunicazione fra il calcolatore ed il mondo esterno. Fanno parte del sottosistema i dispositivi (Unità di I/O) per la comunicazione uomo/macchina

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

Dettagli

Il sistema di I/O. Calcolatori Elettronici 1. Architettura a bus singolo. Memoria. Unità di I/O. Interfaccia. Unità di I/O.

Il sistema di I/O. Calcolatori Elettronici 1. Architettura a bus singolo. Memoria. Unità di I/O. Interfaccia. Unità di I/O. Il sistema di I/O Calcolatori Elettronici 1 Architettura a bus singolo Memoria CPU Interfaccia Unità di I/O Interfaccia Unità di I/O Calcolatori Elettronici 2 1 Interfaccia Svolge la funzione di adattamento

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

Schedulazione in RTAI

Schedulazione in RTAI Schedulazione in RTAI RTAI: modulo kernel rt_hello_km.c #include #include Thread real-time... Ciclo infinito RT_TASK task; Periodico... void task_routine() { while(1) { /* Codice

Dettagli

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica www.dis.uniroma1.it/~midlab Sistemi Operativi II Corso di Laurea in Ingegneria Informatica Prof. Roberto Baldoni Complementi: Buffer I/O Gestione dei buffer e I/O scheduling: 1. Richiami sulle tecniche

Dettagli

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

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2 Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:

Dettagli

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

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

Introduzione ai sistemi operativi

Introduzione ai sistemi operativi Introduzione ai sistemi operativi Che cos è un S.O.? Shell Utente Utente 1 2 Utente N Window Compilatori Assembler Editor.. DB SOFTWARE APPLICATIVO System calls SISTEMA OPERATIVO HARDWARE Funzioni di un

Dettagli

Reti combinatorie: Codificatori

Reti combinatorie: Codificatori Reti combinatorie: Codificatori P. Marincola (Rev..2) Come si ricorderà, i decodificatori hanno essenzialmente il compito di convertire un codice binario a n bit in un codice -su-m, dovem =2 n. In molte

Dettagli

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

Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst Impossibile visualizzare l'immagine. Scheduling della CPU Concetti di base La multiprogrammazione cerca di ottenere la massima utilizzazione della CPU. L esecuzione di un processo consiste in cicli d esecuzione

Dettagli

Comunicazione. Prof. Antonino Mazzeo. Corso di Laurea Specialistica in Ingegneria Informatica

Comunicazione. Prof. Antonino Mazzeo. Corso di Laurea Specialistica in Ingegneria Informatica Comunicazione Seriale Prof. Antonino Mazzeo Corso di Laurea Specialistica in Ingegneria Informatica UART/USART Intel 8251A Standard Universal Synchronous/Asynchronous Receiver/Trasmitter (USART) Progettata

Dettagli

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

Un sistema operativo è un insieme di programmi che consentono ad un utente di INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli

Dettagli

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

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling Concetti fondamentali L obiettivo della multiprogrammazione è di avere processi sempre in esecuzione al fine di

Dettagli

ancora l architettura elementare di un sistema di elaborazione:

ancora l architettura elementare di un sistema di elaborazione: Principi di architetture dei calcolatori: la gestione delle periferiche. Mariagiovanna Sami Riprendiamo ancora l architettura elementare di un sistema di elaborazione: Il punto di partenza 2 Il punto di

Dettagli

SPECIFICHE TESINA ASE 05-06

SPECIFICHE TESINA ASE 05-06 SPECIFICHE TESINA ASE 05-06 APPLICAZIONE BASE_TESINA IL SISTEMA HW-SW DA USARE COME BASE PER LA REALIZZAZIONE DELLA TESINA E' IL SISTEMA ES_S UTILIZZATO PER LA ESERCITAZIONE. DAL PUNTO DI VISTA HW IL SISTEMA

Dettagli

Sistemi di Controllo Real Time

Sistemi di Controllo Real Time Sistemi di Controllo Real Time Automazione 13/10/2015 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO SISTEMI REAL TIME CLASSIFICAZIONE DEI SISTEMI REAL TIME PARALLELISMO E PROGRAMMAZIONE CONCORRENTE SISTEMI

Dettagli

Embedded Software Sviluppo di uno Scheduler di base per PIC18. Tutorial. Embedded Software. Sviluppo di uno Scheduler di base per PIC18.

Embedded Software Sviluppo di uno Scheduler di base per PIC18. Tutorial. Embedded Software. Sviluppo di uno Scheduler di base per PIC18. Tutorial Embedded Software Sviluppo di uno Scheduler di base per PIC18 Pagina 1 Sommario 1. INTRODUZIONE... 3 2. COSA CI SERVE?... 3 3. UN PO DI TEORIA... 4 4. DALLA TEORIA ALLA PRATICA... 5 5. IMPLEMENTAZIONE...

Dettagli

Processi. Laboratorio Software 2008-2009 C. Brandolese

Processi. Laboratorio Software 2008-2009 C. Brandolese Processi Laboratorio Software 2008-2009 Introduzione I calcolatori svolgono operazioni simultaneamente Esempio Compilazione di un programma Invio di un file ad una stampante Visualizzazione di una pagina

Dettagli

CAP. 4: Aspetti generali del Sistema Operativo Linux. l http://home.dei.polimi.it/silvano/acso.htm

CAP. 4: Aspetti generali del Sistema Operativo Linux. l http://home.dei.polimi.it/silvano/acso.htm Struttura interna del sistema Operativo Linux CAP. 4: Aspetti generali del Sistema Operativo Linux CAP. 5: Funzionalità del calcolatore l http://home.dei.polimi.it/silvano/acso.htm Funzionalità del Sistema

Dettagli

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisiti preliminari

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisiti preliminari Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisiti preliminari A.A. 2013 2014 1 Introduzione Questo documento raccoglie i requisiti preliminari per il software di controllo

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

INTRODUZIONE alla PROGRAMMAZIONE di MICROCONTROLLORI

INTRODUZIONE alla PROGRAMMAZIONE di MICROCONTROLLORI LUCIDI LEZIONI SISTEMI ELETTRONICI INDUSTRIALI www.dismi.unimo.it (People Associated Pavan ) www.microchip.com com (Datasheet PIC - DS30292) (Mid Range Family Manual DS33023) Università degli Studi di

Dettagli

LabVIEW offre un ambiente di programmazione grafica

LabVIEW offre un ambiente di programmazione grafica 03 COME OTTIMIZZARE IN LABVIEW APPLICAZIONI DI TEST AUTOMATIZZATI PER PROCESSORI MULTICORE David Hall Vediamo come delle applicazioni scritte in LabVIEW possono essere ottimizzate sfruttando tecniche di

Dettagli

Gianluigi Magnasco easitec S.r.l. Parma, 16 Settembre 2010

Gianluigi Magnasco easitec S.r.l. Parma, 16 Settembre 2010 Soft Control facile con RTX e Windows Embedded Standard 7 RTX 2009: funzionalità ed uso pratico Gianluigi Magnasco easitec S.r.l. Parma, 16 Settembre 2010 Definizione di Sistema Tempo Reale: Definizione

Dettagli

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici Uniamo VM e CACHE Physically addressed Ci sono varie alternative architetturali physically addressed virtually addressed virtually indexed Sono quelle piu semplici un dato puo essere in cache solo se e

Dettagli

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione Il sistema di I/O Hardware di I/O Interfacce di I/O Software di I/O Introduzione 1 Sotto-sistema di I/O Insieme di metodi per controllare i dispositivi di I/O Obiettivo: Fornire ai processi utente un interfaccia

Dettagli

Capitolo 7: Sincronizzazione

Capitolo 7: Sincronizzazione Capitolo 7: Sincronizzazione Il problema della sincronizzazione. Il problema della sezione critica. Hardware per la sincronizzazione. Semafori. Problemi classici di sincronizzazione. Monitor (cenni). 7.1

Dettagli

ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE

ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE 1. INTRODUZIONE In questo capitolo viene presentata la struttura, sia interna che esterna, di un microprocessore generico riprendendo i concetti esposti nella

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

Architettura di tipo registro-registro (load/store)

Architettura di tipo registro-registro (load/store) Caratteristiche principali dell architettura del processore MIPS E un architettura RISC (Reduced Instruction Set Computer) Esegue soltanto istruzioni con un ciclo base ridotto, cioè costituito da poche

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Esercizi. Assembly. Alessandro A. Nacci alessandro.nacci@polimi.it ACSO 2014/2014

Esercizi. Assembly. Alessandro A. Nacci alessandro.nacci@polimi.it ACSO 2014/2014 Esercizi Assembly Alessandro A. Nacci alessandro.nacci@polimi.it ACSO 2014/2014 1 RIPASSO Architettura dei registri del 68K Di (0 i 7): registri di dato a 8, 16, 32 bit Ai (0 i 7): resgistri di a 16, 32

Dettagli

Von Neumann. John Von Neumann (1903-1957)

Von Neumann. John Von Neumann (1903-1957) Linguaggio macchina Von Neumann John Von Neumann (1903-1957) Inventore dell EDVAC (Electronic Discrete Variables AutomaFc Computer), la prima macchina digitale programmabile tramite un soiware basata su

Dettagli

Esempio: aggiungere j

Esempio: aggiungere j Esempio: aggiungere j Eccezioni e interruzioni Il progetto del controllo del processore si complica a causa della necessità di considerare, durante l esecuzione delle istruzioni, il verificarsi di eventi

Dettagli

Architettura degli elaboratori (A)

Architettura degli elaboratori (A) Laurea in Informatica a.a. 2010-2011 Laboratorio del corso di Architettura degli elaboratori (A) Modulo 1: l Architettura dell 8086 Valeria Carofiglio Linguaggi a vari livelli e loro relazioni Programma

Dettagli

Algoritmi di scheduling - Parte 2

Algoritmi di scheduling - Parte 2 Algoritmi di scheduling - Parte 2 Automazione I 12/11/2013 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO ALGORITMO DEADLINE MONOTONIC PRIORITY ORDERING (DMPO) ALGORITMO TIMELINE SCHEDULING (TS) SCHEDULING

Dettagli

Lo scheduler di UNIX (1)

Lo scheduler di UNIX (1) Lo scheduler di UNIX (1) Lo scheduling a basso livello è basato su una coda a più livelli di priorità 1 Lo scheduler di UNIX (2) Si esegue il primo processo della prima coda non vuota per massimo 1 quanto

Dettagli

CAP. 6: Nucleo del sistema operativo (La gestione dei processi)

CAP. 6: Nucleo del sistema operativo (La gestione dei processi) Struttura interna del sistema operativo Linux CAP. 6: Nucleo del sistema operativo (La gestione dei processi) Architettura del sistema operativo shell Programmi utente Modo utente Interfaccia delle chiamate

Dettagli

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

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

Dettagli

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:

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: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Parte II.2 Elaboratore

Parte II.2 Elaboratore Parte II.2 Elaboratore Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Dicembre 1, 2015 Elisabetta Elisabetta Ronchieri II Software Argomenti

Dettagli

Introduzione. Corso di Informatica Applicata. Università degli studi di Cassino

Introduzione. Corso di Informatica Applicata. Università degli studi di Cassino Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Corso di Informatica Applicata Introduzione Ing. Saverio De Vito e-mail: saverio.devito@portici.enea.it Tel.:

Dettagli

IL SISTEMA OPERATIVO

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO... è l insieme dei programmi che rende agevole l uso dell hardware, mascherando le caratteristiche delle risorse fisiche (interfaccia) gestisce le risorse fisiche ottimizzandone l

Dettagli

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi:

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi: 1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi: compile time, load time, execution time. Quale delle modalità precedenti necessita di un supporto hardware per poter essere

Dettagli

PD32. Interfacciamento con i dispositivi di I/O (V)

PD32. Interfacciamento con i dispositivi di I/O (V) PD32 Interfacciamento con i dispositivi di I/O (V) Interazione CPU - dispositivi Soluzioni possibili Busy Waiting Utilizzabile quando CPU esegue solo il task di dialogo con la periferica Interruzioni D.M.A.

Dettagli

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari A.A. 2012 2013 1 Introduzione Questo documento raccoglie i requisiti preliminari per il software di controllo

Dettagli

Algoritmi di scheduling

Algoritmi di scheduling Capitolo 3 Algoritmi di scheduling Come caso particolare di studio, di seguito è discussa in dettaglio la politica di scheduling del sistema operativo LINUX (kernel precedente alla versione 2.6). Sono

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

Dettagli

Infrastrutture Software

Infrastrutture Software Infrastrutture Software I componenti fisici di un sistema informatico sono resi accessibili agli utenti attraverso un complesso di strumenti software finalizzati all utilizzo dell architettura. Si tratta

Dettagli

Kit A72 MANUALE DEL SOFTWARE TWIDO PER IL DISTACCO UTENZE (CEI 0-16 ALLEGATO M)

Kit A72 MANUALE DEL SOFTWARE TWIDO PER IL DISTACCO UTENZE (CEI 0-16 ALLEGATO M) Kit A72 MANUALE DEL SOFTWARE TWIDO PER IL DISTACCO UTENZE (CEI 0-16 ALLEGATO M) INDICE 1 OBIETTIVO...2 2 CONFIGURAZIONE DEL PROGRAMMA...2 2.1 Configurazione oggetti di memoria...2 3 FUNZIONAMENTO...5 3.1

Dettagli

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

Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base Scheduling Sistemi Operativi e Distribuiti A.A. 2-25 Bellettini - Maggiorini Concetti di base Il massimo utilizzo della CPU si ottiene mediante la multiprogrammazione Ogni processo si alterna su due fasi

Dettagli

La Gestione delle risorse Renato Agati

La Gestione delle risorse Renato Agati Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File

Dettagli

Tecnologia di un Database Server (centralizzato) Gestione del buffer

Tecnologia di un Database Server (centralizzato) Gestione del buffer Buffer Basi di Dati / Complementi di Basi di Dati 1 Tecnologia di un Database Server (centralizzato) Gestione del buffer Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Buffer

Dettagli

Algoritmi di scheduling

Algoritmi di scheduling Capitolo 2 Algoritmi di scheduling 2.1 Sistemi Real Time In un sistema in tempo reale (real time) il tempo gioca un ruolo essenziale. Le applicazioni di tali sistemi sono molteplici e di larga diffusione.

Dettagli

scada SCADA (Supervisory Control And Data Acquisition) L acronimo SCADA Scada e industria integrata

scada SCADA (Supervisory Control And Data Acquisition) L acronimo SCADA Scada e industria integrata SCADA (Supervisory Control And Data Acquisition) L acronimo SCADA L acronimo SCADA sta per Supervisory Control And Data Acquisition ed è nient altro che l enumerazione delle tre funzionalità principali

Dettagli

Progetto per il corso di specifica e sviluppo di sistemi software Real-Time: Gestione semaforica di un incrocio

Progetto per il corso di specifica e sviluppo di sistemi software Real-Time: Gestione semaforica di un incrocio UNIVERSITÀ DEGLI STUDI DELL INSUBRIA Corso di Laurea Magistrale in Informatica Progetto per il corso di specifica e sviluppo di sistemi software Real-Time: Gestione semaforica di un incrocio Studente:

Dettagli

I/O su Socket TCP: read()

I/O su Socket TCP: read() I/O su Socket TCP: read() I socket TCP, una volta che la connessione TCP sia stata instaurata, sono accedibili come se fossero dei file, mediante un descrittore di file (un intero) ottenuto tramite una

Dettagli

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6 Ciclo di Istruzione Può essere suddiviso in 4 tipi di sequenze di microoperazioni (cioè attività di calcolo aritmetico/logico, trasferimento e memorizzazione dei dati), non tutte necessariamente da realizzare

Dettagli

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache... Appunti di Calcolatori Elettronici Concetti generali sulla memoria cache Introduzione... 1 Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Dettagli

USART PIC 16F876. R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R-1 R/W-0 CSRC TX9 TXEN SYNC _ BRGH TRMT TX9D Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

USART PIC 16F876. R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R-1 R/W-0 CSRC TX9 TXEN SYNC _ BRGH TRMT TX9D Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 USART PIC 16F876 L USART (Universal Synchronous Asynchronous Receiver Trasmitter) è uno dei due moduli di I/O seriali, esso è conosciuto anche come Serial Comunications Interface (SCI). L USART può essere

Dettagli

memoria virtuale protezione

memoria virtuale protezione Memoria Virtuale Le memorie cache forniscono un accesso veloce ai blocchi di memoria usati più di recente La memoria virtuale fornisce un accesso veloce ai dati sulle memorie di massa usati più di recente.

Dettagli

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

Lo Scheduling Real Time in Linux. Universita degli studi di Roma La Sapienza Ivan Gualandri Matricola 693512 Relatore: Giorgio Richelli Lo Scheduling Real Time in Linux Universita degli studi di Roma La Sapienza Ivan Gualandri Matricola 693512 Relatore: Giorgio Richelli Scopo Motivazione Obiettivi 1) Lo scopo di questo progetto è presentare

Dettagli

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

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse

Dettagli

SISTEMI OPERATIVI. Gestione dei dischi. Gestione dei dischi e sistemi RAID

SISTEMI OPERATIVI. Gestione dei dischi. Gestione dei dischi e sistemi RAID SISTEMI OPERATIVI 08.c Gestione dei dischi e sistemi RAID Gestione dei dischi Caratteristiche dei dischi magnetici Schedulazione degli accessi al disco Sistemi RAID 1 Struttura meccanica 2 traccia testina

Dettagli

Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali

Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali Prof. Gian Luca Marcialis Corso di Laurea di Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Fonti principali: Patterson, A.D., Hennessy, J., "Struttura, organizzazione e progetto dei calcolatori

Dettagli

Sistemi Operativi. Lezione 7 Comunicazione tra processi

Sistemi Operativi. Lezione 7 Comunicazione tra processi Lezione 7 Comunicazione tra processi Introduzione La soluzione sw al problema della mutua esclusione è abbastanza complessa Algoritmo di Peterson La soluzione hw mediante disabilitazione degli interrupt

Dettagli

RTAI e scheduling. Andrea Sambi

RTAI e scheduling. Andrea Sambi RTAI e scheduling Andrea Sambi Scheduling Linux Due politiche di scheduling priority-driven possibili. FIFO priorità uguali Processo 1 iniziato Processo 1: iterazione 1 Processo 1: iterazione 2 Processo

Dettagli

GESTIONE DELLA MEMORIA CENTRALE

GESTIONE DELLA MEMORIA CENTRALE GESTIONE DELLA MEMORIA CENTRALE E MEMORIA VIRTUALE 7.1 Gestione della memoria Segmentazione Segmentazione con paginazione Memoria Virtuale Paginazione su richiesta Sostituzione delle pagine Trashing Esempi:

Dettagli

CPU pipeline 4: le CPU moderne

CPU pipeline 4: le CPU moderne Architettura degli Elaboratori e delle Reti Lezione 25 CPU pipeline 4: le CPU moderne Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 25 1/17

Dettagli

Informatica 3. Informatica 3. LEZIONE 6: Il controllo dell esecuzione. Lezione 6 - Modulo 1. Errori durante l esecuzione. Il controllo dell esecuzione

Informatica 3. Informatica 3. LEZIONE 6: Il controllo dell esecuzione. Lezione 6 - Modulo 1. Errori durante l esecuzione. Il controllo dell esecuzione Informatica 3 Informatica 3 LEZIONE 6: Il controllo dell esecuzione Modulo 1: La gestione delle eccezioni Modulo 2: Programmazione concorrente Lezione 6 - Modulo 1 La gestione delle eccezioni Politecnico

Dettagli

DMA Accesso Diretto alla Memoria

DMA Accesso Diretto alla Memoria Testo di rif.to: [Congiu] - 8.1-8.3 (pg. 241 250) 08.a DMA Accesso Diretto alla Memoria Motivazioni Organizzazione dei trasferimenti DMA Arbitraggio del bus di memoria Trasferimento di un blocco di dati

Dettagli

MIPS Instruction Set 2

MIPS Instruction Set 2 Laboratorio di Architettura 15 aprile 2011 1 Architettura Mips 2 Chiamata a Funzione 3 Esercitazione Registri MIPS reference card: http://refcards.com/docs/waetzigj/mips/mipsref.pdf 32 registri general

Dettagli

Gestione Risorse Umane Web

Gestione Risorse Umane Web La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...

Dettagli

Sistema acquisizione dati

Sistema acquisizione dati 12 Sistema acquisizione dati 3.1 Introduzione: Per convertire i segnali analogici trasmessi dai sensori in segnali digitali dobbiamo usare i convertitori analogici digitali o più comunemente chiamati ADC(Analog-to-Digital

Dettagli

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio) GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio) #include void main (int argc, char *argv[]) { pid = fork(); /* genera nuovo processo */ if (pid < 0) { /* errore */ fprintf(stderr,

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

GESTIONE INFORMATICA DEI DATI AZIENDALI GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming

Dettagli

PROGRAMMA DI SISTEMI TERZA AET 2014/2015

PROGRAMMA DI SISTEMI TERZA AET 2014/2015 PROGRAMMA DI SISTEMI TERZA AET 2014/2015 Docente: Gamerra Giuseppe, Porta Giovanni Testo : manuali originali dello Z80, appunti in classe, dispense sulla intranet, simulatore OSHONSOFT A) Non sono state

Dettagli

Il microprocessore 8086

Il microprocessore 8086 1 Il microprocessore 8086 LA CPU 8086 Il microprocessore 8086 fa parte della famiglia 80xxx della INTEL. Il capostipite di questa famiglia è stato l 8080, un microprocessore ad 8 bit che ha riscosso un

Dettagli