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

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

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

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

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

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

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

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

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

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

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

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

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

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

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

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

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

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

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

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

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

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

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

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

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

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

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

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

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

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella. Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Prestazioni Si valutano in maniera diversa a seconda dell

Dettagli

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput Valutazione delle Prestazioni Architetture dei Calcolatori (Lettere A-I) Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare

Dettagli

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1 SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

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

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

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

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 3-Schedulazione 1 Prerequisiti Concetto di media Concetto di varianza 2 1 Introduzione Come sappiamo, l assegnazione della CPU ai processi viene gestita dal nucleo, attraverso

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU

Sistemi Operativi SCHEDULING DELLA CPU Sistemi Operativi SCHEDULING DELLA CPU Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling

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

Allocazione dinamica della memoria - riepilogo

Allocazione dinamica della memoria - riepilogo Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della

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

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

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

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

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

Invio SMS. DM Board ICS Invio SMS

Invio SMS. DM Board ICS Invio SMS Invio SMS In questo programma proveremo ad inviare un SMS ad ogni pressione di uno dei 2 tasti della DM Board ICS. Per prima cosa creiamo un nuovo progetto premendo sul pulsante (Create new project): dove

Dettagli

IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 1

IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 1 Ernesto Cappelletti (ErnestoCappelletti) IL SOFTWARE SECONDO LA NORMA UNI EN ISO 13849-1:2008 (IIA PARTE) 6 April 2012 1. Requisiti per la scrittura del software secondo la norma UNI EN ISO 13849-1:2008

Dettagli

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

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

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

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

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

Lo scheduling. Tipici schedulatori

Lo scheduling. Tipici schedulatori Lo scheduling Un processo durante la sua evoluzione è o running o in attesa di un evento. Nel secondo caso trattasi della disponibilità di una risorsa (CPU, I/O, struttura dati, ecc.) di cui il processo

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

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

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base: LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto

Dettagli

INNOVAZIONE XNOTTA PER PORTALI TURISTICI

INNOVAZIONE XNOTTA PER PORTALI TURISTICI INNOVAZIONE XNOTTA PER PORTALI TURISTICI 1. Introduzione La nostra attività è partita dall esame dei sistemi di gestione dei Portali turistici; tutti hanno pensato ad una ottima interfaccia, ad un buon

Dettagli

Scheduling della CPU Simulazione in linguaggio Java

Scheduling della CPU Simulazione in linguaggio Java Scheduling della CPU Simulazione in linguaggio Java Realizzato da: Amelio Francesco 556/001699 Di Matteo Antonio 556/000067 Viola Antonio 556/000387 Progetto di Sistemi Operativi Docente Giancarlo Nota

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

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

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

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

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

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

Architettura del calcolatore

Architettura del calcolatore Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale

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

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

Più processori uguale più velocità?

Più processori uguale più velocità? Più processori uguale più velocità? e un processore impiega per eseguire un programma un tempo T, un sistema formato da P processori dello stesso tipo esegue lo stesso programma in un tempo TP T / P? In

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

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. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1) Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi

Dettagli

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine. Quinto Homework 1) Si vuole progettare una cache a mappatura diretta per un sistema a 32 bit per una memoria da 2 GB (quindi sono solo 31 i bit utili per gli indirizzi) e blocchi di 64 byte. Rispondere

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

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Gestione di una UART SOFTWARE.

Gestione di una UART SOFTWARE. Corso di BASCOM 8051 - (Capitolo 3 1 ) Corso Teorico/Pratico di programmazione in BASCOM 8051. Autore: DAMINO Salvatore. Gestione di una UART SOFTWARE. Capita, a volte in alcune applicazioni, di avere

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

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi Operativi (modulo di Informatica II) I processi Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto

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

Il memory manager. Gestione della memoria centrale

Il memory manager. Gestione della memoria centrale Il memory manager Gestione della memoria centrale La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda

Dettagli

Gestione del processore e dei processi

Gestione del processore e dei processi Il processore è la componente più importante di un sistema di elaborazione e pertanto la sua corretta ed efficiente gestione è uno dei compiti principali di un sistema operativo Il ruolo del processore

Dettagli

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

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

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

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

J. Assfalg Appunti di Sistemi Operativi

J. Assfalg Appunti di Sistemi Operativi Lo scheduler di Linux (kernel 2.4) La politica di scheduling di Linux si propone il raggiungimento dei seguenti obiettivi (molti dei quali sono in contrasto): timesharing gestione di priorità dinamiche

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