INTRODUZIONE AI SISTEMI OPERATIVI EMBEDDED

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

IL DSP - Digital Signal Processor

IL DSP - Digital Signal Processor IL DSP - Digital Signal Processor Processore dei segnali digitali 1. Generalità Il Digital Signal Processor (DSP, processore di segnali digitali) è un particolare tipo di microprocessore, ottimizzato per

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

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

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

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

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

ARCHITETTURA DEI CALCOLATORI

ARCHITETTURA DEI CALCOLATORI A09 139 Graziano Frosini Giuseppe Lettieri ARCHITETTURA DEI CALCOLATORI VOLUME II STRUTTURA DEL PROCESSORE, DEL BUS, DELLA MEMORIA E DELLE INTERFACCE, E GESTIONE DELL I/O CON RIFERIMENTO AL PERSONAL COMPUTER

Dettagli

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

Scheduling Introduzione Tipi di scheduler Scheduler di lungo termine (SLT) Scheduler di medio termine (SMT) Scheduler di breve termine (SBT) Scheduling Introduzione Con scheduling si intende un insieme di tecniche e di meccanismi interni del sistema operativo che amministrano l ordine in cui il lavoro viene svolto. Lo Scheduler è il modulo

Dettagli

L ambiente di simulazione SPIM

L ambiente di simulazione SPIM Architettura degli Elaboratori e delle Reti Lezione 14 L ambiente di simulazione SPIM Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 14 1/28

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

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

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

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

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

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

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

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

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

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

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

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

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni

Dettagli

Definizione e storia dei sistemi operativi

Definizione e storia dei sistemi operativi Definizione e storia dei sistemi operativi Dipartimento di Informatica Università di Verona, Italy Che cos è un Sistema Operativo? E un insieme di programmi agisce come intermediario tra HW e uomo per

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

Corso di Informatica Applicata. Lezione 7. Università degli studi di Cassino

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

Dettagli

Programmazione dello Z80

Programmazione dello Z80 Il microprocessore si incarica di: gestire il programma e i suoi dati di eseguire i calcoli richiesti. Le azioni appena elencate rendono necessario che il microprocessore abbia da qualche parte, al suo

Dettagli

MACCHINA DI VON NEUMANN

MACCHINA DI VON NEUMANN I seguenti appunti non hanno la pretesa di essere esaustivi, ma hanno l unico scopo di illustrare in modo schematico i concetti necessari allo sviluppo del programma di Informatica della 1D del Liceo Scientifico

Dettagli

Architetture DSP. Capitolo 6

Architetture DSP. Capitolo 6 Capitolo 6 Architetture DSP Un convertitore analogico-digitale (ADC) trasforma un segnale a tempo continuo in una sequenza di bit; viceversa un convertitore digitale-analogico (DAC) trasforma una sequenza

Dettagli

Il supporto al Sistema Operativo

Il supporto al Sistema Operativo Il supporto al Sistema Operativo Obiettivi e funzioni del S.O. Il Sistema Operativo è il software che controlla l esecuzione dei programmi e amministra le risorse del sistema. Ha due obiettivi principali:

Dettagli

Architetture dei Calcolatori (Lettere. Installazione di SPIM. Interfaccia Grafica

Architetture dei Calcolatori (Lettere. Installazione di SPIM. Interfaccia Grafica SPIM Architetture dei Calcolatori (Lettere A-I) SPIM Ing.. Francesco Lo Presti Simulatore che esegue programmi assembler per architetture RISC MIPS R2000/R3000 Legge programmi in assembler MIPS e li traduce

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

Corso di Sistemi di Elaborazione A.A. 2008/2009

Corso di Sistemi di Elaborazione A.A. 2008/2009 Università di Ferrara Facoltà di Ingegneria Docente: Ing. Massimiliano Ruggeri Mail: m.ruggeri@imamoter.cnr.it mruggeri@ing.unife.it Tel. 0532/735631 Corso di Sistemi di Elaborazione A.A. 2008/2009 Durata:

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

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

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario Processi e thread Dipartimento di Informatica Università di Verona, Italy Sommario Concetto di processo Stati di un processo Operazioni e relazioni tra processi Concetto di thread Gestione dei processi

Dettagli

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

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi. Concetti fondamentali Scheduling della CU Introduzione allo scheduling Uno degli obbiettivi della multiprogrammazione è quello di massimizzare l utilizzo delle risorse e in particolare della CU er raggiungere

Dettagli

Esercitazione 2 di verifica

Esercitazione 2 di verifica Architettura degli Elaboratori, 27-8 Esercitazione 2 di verifica Soluzione: mercoledì 24 ottobre Una unità di elaborazione U è così definita: Domanda 1 i) possiede al suo interno due componenti logici

Dettagli

Interrupt-Driven I/O Gli Interrupts sono segnali hardware: - generati da device periferici es. fine di un operazione di I/O -oppure generati dalla CPU, a fronte di eccezioni i es. divisione per zero, stack

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

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

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