SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007"

Transcript

1 2007 SISTEMI OPERATIVI Gestione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 13/05/2007

2 Gestione dei processi 1. Qual è la differenza tra un programma e un processo? Un programma descrive un algoritmo ed è una entità statica. Un processo invece è un programma in esecuzione. Un processo è quindi una entità dinamica. Possiamo pensare ad un processo come una sequenza di stati attraverso il quale evolve il sistema di elaborazione durante l esecuzione di un programma. Ad un programma possono essere associati più processi. Infatti se si cambiano i dati in ingresso al programma, allora la sequenza delle istruzioni e di conseguenza la sequenza degli stati attraverso il quale evolve il sistema, potrà essere differente. Il flusso di esecuzione cambia ovvero il processo è diverso. Esempio: supponiamo di avere un programma in cui vi è ad un certo punto un istruzione if then else. Con determinati dati in ingresso, per esempio viene eseguito il ramo then, mentre cambiando i dati in ingresso viene eseguito il ramo else. Si hanno due processi diversi. Ciascun processo associato ad un programma costituisce un istanza del programma 2. Si disegni e si descriva il diagramma degli stati di un processo (solo per la parte CPU-RAM) per un sistema operativo multiprogrammato e timesharing (esame ) Per descrivere gli stati in cui si può trovare un processo possiamo fare riferimento ad un sistema con una sola CPU (sistema monoprocessore). In questo caso i processi entreranno in competizione per l utilizzo della risorsa CPU. Un solo processo alla volta può usare l unità di

3 elaborazione. Il processo che sta usando la CPU si trova in stato di esecuzione. Un processo che si trova in stato di esecuzione può transitare nello stato di terminato, nello stato di pronto oppure nello stato di bloccato. Il processo passa in stato di terminato se ha completato la sua attività (ha eseguito l ultima istruzione del suo codice ) oppure se chiama un apposita system call. Nel sistema UNIX un processo può terminare volontariamente la propria esecuzione chiamando la system call exit. In realtà in UNIX vi è uno stato intermedio tra lo stato di terminato e lo stato di esecuzione (stato zombie). Quando un processo invoca la system call exit, esso passa dallo stato di esecuzione allo stato zombie e rimane in questo stato finchè il padre non né rileva lo stato di terminazione. Il passaggio in stato di terminato può anche essere dovuto ad una terminazione forzata. Il sistema operativo può forzare la terminazione di un processo quando il processo tenta di eseguire un accesso ad una area di memoria che non gli appartiene (superamento dei limiti imposti dai registri di frontiera, registro base e registro limite) oppure perché il processo ha tentato l esecuzione di un istruzione illegale (istruzione eseguibile solo in modo kernel) oppure per effetto della ricezione di un segnale (esempio in UNIX i segnali SIGKILL e SIGSTOP). La transizione dallo stato di esecuzione (running) allo stato di pronto (ready) può avvenire per i seguenti motivi: in un sistema a divisione di tempo, se il processo in esecuzione termina il suo quanto di tempo, il sistema operativo lo sostituisce con un altro processo pronto, scelto dalla coda dei processi pronti attraverso un opportuno algoritmo di scheduling, implementato dal sistema operativo. In un sistema in cui la CPU viene assegnata in base alla priorità dei processi, durante la sua esecuzione un processo, che è quello a priorità più alta tra tutti i processi pronti, potrebbe svegliare un processo a priorità più alta della sua. In questo caso il sistema operativo revoca l uso della CPU al processo in esecuzione e l assegna al processo risvegliato. Il passaggio dallo stato di pronto allo stato di esecuzione avviene quando al processo in esecuzione viene revocata la CPU e quindi il sistema operativo sceglie dalla coda dei processi pronti il nuovo processo da mandare in esecuzione. Un processo si dice che è in stato di pronto in quanto potrebbe essere eseguito ma deve attendere perché la CPU è in uso da un altro processo. Un altro stato possibile è lo stato nuovo. Un processo appena creato si trova in stato nuovo e passa in stato di pronto quando il sistema operativo decide che esso può competere per l uso della CPU e quindi può essere mandato in esecuzione. La transizione di stato esecuzione-bloccato avviene quando un processo, per esempio, invoca una operazione di I/O. In questo caso, non potendo proseguire la sua esecuzione, il processo viene sospeso in attesa che l operazione richiesta venga completata. Quando l operazione richiesta è completata (si è verificato l evento atteso ) il processo viene risvegliato ed è nuovamente pronto per l esecuzione ma deve attendere che venga scelto dalla coda dei processi pronti. Un processo può passare in stato di bloccato anche perché attende di ricevere un segnale di sincronizzazione da un altro processo.

4 Per esempio, nel sistema UNIX la sincronizzazione tra padre e figlio prevede che ogni processo padre possa sospendersi (attraverso la system call wait) in attesa della terminazione del processo figlio. Il padre rimane in stato di bloccato finché il figlio non termina e gli passa il suo stato di terminazione, terminazione volontaria oppure involontaria. Il figlio può passare il suo stato di terminazione al padre mediante la system call exit. 3. Si disegni e si descriva il diagramma degli stati completo (CPU-memoria-memoria virtuale) di un processo. (esame ) esecuzione terminazione terminato Nuovo Assegnazione CPU creazione Swap-in pronto Pronto swapped Swapout Revoca CPU Segnale di riattivazione Segnale di riattivazione sospensione bloccato Bloccato swapped Swap-out Rispetto al diagramma degli stati CPU-RAM sono presenti i due stati di swapped (pronto swapped e bloccato swapped). Questi due stati sono gli stati di pronto e bloccato su disco. In molti sistemi è possibile trasferire un processo presente in memoria principale in memoria secondaria (disco) per liberare spazio su RAM per gli altri processi. L operazione prende il nome di swapping. Un processo si trasporta in memoria secondaria soprattutto per motivi di efficienza. Infatti, un processo che è bloccato su RAM è in attesa di qualche evento e quindi non può usare la CPU per cui viene trasferito su disco tramite una operazione di swap-out. Quando il processo viene riattivato, perché si è verificato l evento che attendeva, passa in stato di pronto su disco (pronto swapped). Quando è in pronto su disco può passare in stato pronto su RAM (operazione di swap-in) e da pronto su RAM può passare in stato di pronto swapped (operazione di swap-out). Tutti gli altri stati e le relative transizioni di stato sono identiche al caso CPU RAM: esecuzione: il processo sta usando la CPU. pronto: il processo potrebbe essere eseguito ma la CPU è occupata da un altro processo e quindi il processo attende che la CPU venga liberata. bloccato: il processo è in attesa del verificarsi di un evento esterno che lo risvegli. Terminato: il processo ha concluso la sua esecuzione Nuovo: il processo è stato appena creato

5 4. Descrivere gli stati di un processo UNIX (esame ) Esecuzione in user mode Sospensione (system call o interrupt) zombie Creazione (fork) Allocazione memoria pronto Revoca CPU IRET Esecuzione in kernel mode Terminazione (system call exit) Nuovo Swap-in Swapout signal wait INT swapped terminato Bloccato su ram Swap-out Il sistema operativo UNIX è un sistema operativo time-sharing vale a dire che la CPU viene assegnata ai processi solo per un time slice e poi viene revocata. Il diagramma degli stati è analogo al diagramma degli stati generale visto nella domanda 3. E presente però un nuovo stato: lo stato zombie. Questo è lo stato in cui si trova un processo che ha terminato la sua esecuzione ma è in attesa che il processo padre ne rilevi lo stato di terminazione. Esso uscirà dallo stato zombie, per passare in stato di terminato, quando il padre avrà raccolto il suo stato di terminazione oppure quando il padre termina la sua esecuzione. Lo stato di esecuzione (running) è stato in questo diagramma diviso in due parti: esecuzione di un processo in modo utente ed esecuzione di un processo in modo kernel. Il passaggio running user-mode-running kernel-mode si verifica quando il processo in esecuzione genera una chiamata di sistema (system call) oppure per effetto di un interrupt che richiede l intervento del kernel. Il passaggio inverso si ha quando viene eseguita l istruzione IRET (interrupt return) che indica la conclusione della routine di servizio associata alla system call o all interrupt. Un processo che si trova in stato running kernel mode, se riceve un segnale di interrupt (INT), rimane in stato kernel mode per processare l interrupt. Un processo può passare dallo stato running kernel-mode allo stato bloccato per effetto della chiamata di sistema wait che sospende il processo in esecuzione in attesa di un evento che lo risvegli. Un processo che si trova in esecuzione può subire la revoca della CPU perché ha terminato il suo time slice e quindi viene portato in stato pronto.

6 Il processo che viene creato con la system call fork si trova in stato nuovo e passa in stato ready (pronto) nel momento in cui il sistema decide di allocargli la memoria. Le altre transizioni possibili sono: bloccato su RAM- swapped: il processo viene trasferito in memoria secondaria, perché magari è da molto tempo bloccato (operazione di swap out); pronto- swapped: il processo viene trasferito in memoria secondaria per liberare memoria per gli altri processi (operazione di swap out); swapped-pronto: il processo viene trasferito dalla memoria secondaria in memoria principale (operazione di swap in); bloccato su ram-pronto: il processo che è bloccato viene risvegliato tramite una signal e riportato in stato di pronto; 5. Cosa s intende per descrittore di un processo Un descrittore di un processo (PCB-Process Control Block) è una struttura dati che contiene varie informazioni ed è memorizzata in una area di memoria accessibile solo dal kernel del sistema operativo. Esiste un descrittore per ogni processo e tutti i descrittori sono organizzati in una tabella chiamata tabella dei processi. In un descrittore sono memorizzate le seguenti informazioni: a) Nome del processo: tipicamente viene usato un indice (numero intero) che identifica la posizione del processo nella tabella dei processi. In Unix l identificativo di un processo prende il nome di PID (Process Identifier) b) Stato del processo: pronto, bloccato etc c) Modalità di servizio dei processi: specifica la modalità con la quale la CPU viene assegnata ai processi pronti. Per esempio: modalità FIFO ( chi è in attesa da più tempo viene servito per primo); priorità: ai vari processi può essere associata una priorità statica o dinamica; Per i sistemi a divisione di tempo viene specificato il quanto di tempo assegnato al processo e per i sistemi in tempo reale viene specificato il tempo entro cui il processo deve terminare la sua esecuzione (deadline). d) Informazioni sulla gestione della memoria: paginazione, segmentazione, limiti area di memoria allocata al processo (è identificata dai registri base e limite). e) Contesto del processo: ogni volta che il processo viene sospeso vengono salvati nel descrittore il contenuto del PC, il contenuto del registro di stato (PSW), il contenuto dei registri generali, accumulatore e contenuto dello stack pointer. f) Uso delle risorse: quali sono i dispositivi di I/O assegnati al processo e i file aperti dal processo. g) Identificativo del processo successivo: specifica quale è il processo successivo nella stessa coda di cui fa parte il processo (coda processi pronti o coda processi bloccati)

7 6. Cosa s intende per contesto di un processo e quali sono i passi fondamentali che caratterizzano un cambio di contesto tra processi? Il contesto di un processo comprende il contenuto del Program Counter (PC) (indirizzo della istruzione successiva da eseguire), il contenuto del registro di stato (PSW-Program Status Word), il contenuto dello Stack Pointer (SP) che identifica la cima dello stack, il contenuto dell accumulatore e dei registri di uso generale (Ri). Nel momento in cui il processo che è in esecuzione viene sospeso o per effetto di una operazione di Input/Output oppure perché è scaduto il suo quanto di tempo (sistemi multi programmati operanti in modalità time sharing) il contesto del processo deve essere salvato. In entrambe i casi il sistema operativo esegue una serie di operazioni che prendono il nome di cambio di contesto (context switch). Quando il processo in esecuzione viene sospeso il sistema operativo salva il contesto del processo nel suo descrittore. Il descrittore del processo viene inserito nella coda dei processi pronti oppure nella coda dei processi bloccati. Il descrittore viene inserito nella coda dei processi pronti se il processo è stato sospeso perché è terminato il suo quanto di tempo e quindi passa dallo stato di esecuzione allo stato di pronto. Se invece il processo è stato sospeso perché è in attesa del verificarsi di qualche evento (completamento di una operazione di Input/Output) allora passa dallo stato di esecuzione allo stato di bloccato e quindi il suo descrittore andrà nella coda dei processi bloccati. Ora lo scheduler a breve termine del sistema operativo sceglie un nuovo processo tra quelli presenti nella coda dei processi pronti, secondo un determinato algoritmo, per esempio FIFO (viene scelto il processo che da più tempo è in attesa) e carica nel registro del processo in esecuzione il nome di tale processo. Il registro processo in esecuzione è un registro del processore che contiene il puntatore al descrittore del processo in esecuzione. Infine il sistema operativo carica il contesto del nuovo processo nei registri del processore. 7. Si descrivano i concetti di processi concorrenti e processi cooperanti (esame del ) Due o più processi si dicono concorrenti se la loro esecuzione si sovrappone nel tempo ovvero se l esecuzione di un processo inizia prima che termini l altro processo. In figura è rappresentato il caso di due processi concorrenti nel caso di due unità di elaborazione (overlapping) e di una sola unità di elaborazione (interleaving)

8 I processi concorrenti possono dividersi in: processi indipendenti processi interagenti Due processi sono indipendenti se l esecuzione di un processo non influenza l esecuzione dell altro processo. Proprietà fondamentale di un processo indipendente è la riproducibilità ovvero l esecuzione del processo in istanti diversi, insieme ad altri processi indipendenti, produce sempre lo stesso risultato se i dati d ingresso rimangono gli stessi. Due processi sono interagenti se l esecuzione di un processo influenza l esecuzione dell altro processo. Due processi possono interagire attraverso scambio di messaggi (cooperazione o comunicazione) per eseguire una attività comune oppure possono competere per la stessa risorsa (per esempio i due processi hanno una variabile in comune). Due processi interagenti non godono della proprietà di riproducibilità in quanto il risultato dell esecuzione di un processo dipende dalla velocità relativa dei processi ( a seconda dell ordine con cui i processi vengono eseguiti il risultato dell esecuzione di un processo può cambiare anche se i dati d ingresso sono gli stessi). Nel caso di cooperazione è importante l ordine con la quale i processi vengono eseguiti (esempio produttore consumatore). Il corretto funzionamento del sistema produttore consumatore è garantito solo se la sequenza delle operazione è del tipo: inserimento messaggio- prelievo messaggioinserimento messaggio- prelievo messaggio. Se la sequenza fosse invece: inserimentoinserimento-prelievo allora il secondo inserimento produce la cancellazione del primo messaggio che non verrà quindi consumato. Analogamente se la sequenza fosse: inserimento-prelievo-prelievo lo stesso messaggio verrebbe prelevato due volte. Nel caso di competizione è invece importante che un solo processo alla volta usi la risorsa comune (mutua esclusione). In entrambe i casi si parla di sincronizzazione tra processi. 8. Si descriva l algoritmo di schedulazione dei processi Round Robin (RR) (esame del ) L algoritmo Round Robin è uno degli algoritmi usati dallo scheduler del sistema operativo per scegliere quali tra i processi presenti nella coda dei processi pronti mandare in esecuzione (short term scheduling). La coda dei processi pronti viene gestita in modalità FIFO e ad ogni processo viene assegnata la CPU per un quanto di tempo prefissato (tra 10 e 100ms). Se il processo richiede un tempo di esecuzione inferiore rispetto ad un quanto di tempo allora esso abbandona volontariamente la CPU e lo scheduler sceglie un nuovo processo dalla coda dei processi pronti (il primo della coda). Se invece il processo richiede più quanti di tempo allora, terminato il quanto di tempo a disposizione, il processo in esecuzione viene sospeso e inserito in fondo alla coda dei processi pronti e viene scelto il processo che è in testa alla coda. Il quanto di tempo deve essere sufficientemente grande rispetto al tempo necessario al cambio di contesto altrimenti, essendoci molti cambi di contesto, l efficienza d uso della CPU si riduce (aumenta l overhead). Tipicamente nei sistemi moderni il tempo necessario per il cambio di contesto non eccede i 10µs.

9 Poiché con questa tecnica un processo perde la CPU forzatamente dopo un quanto di tempo allora l algoritmo RR fa parte della categoria degli algoritmi di scheduling con diritto di prelazione (preemptive scheduling). Il processo non abbandona la cpu volontariamente (in tal caso si parla di non preemptive scheduling) ma viene forzato ad abbandonarla. 9. Si descriva il concetto di quanto di tempo e la sua applicazione nel meccanismo di schedulazione di UNIX (esame del ) Il sistema operativo UNIX è un sistema a divisione di tempo. Un processo rimane in esecuzione solo per un tempo prefissato a cui viene dato il nome di quanto di tempo o time slice. Tipicamente in UNIX il quanto di tempo è di 100ms. Un processo che è in esecuzione se non termina durante il quanto di tempo assegnato viene forzato dal S.O ad abbandonare l uso della CPU per far posto ad un nuovo processo scelto dalla coda dei processi pronti. A tutti i processi presenti nella coda dei processi pronti viene assegnato un quanto di tempo e tutti a rotazione usano la CPU per il quanto di tempo assegnato (algoritmo Round Robin). La scelta del nuovo processo viene fatta dalla scheduler a breve termine secondo un modalità FIFO. Se un processo termina la sua esecuzione prima dello scadere del suo quanto di tempo abbandona volontariamente la CPU e lo scheduler sceglie un nuovo processo dalla coda dei processi pronti. In UNIX esistono diverse code di processi pronti ciascuna associata ad un diverso livello di priorità. Lo scheduler esegue l algoritmo RR a partire dalla coda a priorità più alta e solo quando non ci sono processi nella coda a più alta priorità va a scegliere dalle altre code a priorità più bassa. Possibilità di starvation (attesa indefinita) per i processi a bassa priorità. ( si vedano anche le domande 8 e 11). 10. Definire quali sono i livelli di scheduling e descrivere la funzione di ciascuno di essi In un sistema operativo esistono tre livelli di scheduling: a. short term scheduling (scheduling a breve termine); b. long term scheduling (scheduling a lungo termine); c. medium term scheduling (scheduling a medio termine); Lo short term scheduling è quella funzione del sistema operativo che si occupa di scegliere quale processo, tra i processi presenti nella coda dei processi pronti residenti in memoria centrale, assegnare la CPU. Questa funzione interviene ogni volta che il processo in esecuzione perde il controllo della CPU o perché ha terminato la propria esecuzione, oppure perché è scaduto il suo quanto di tempo, o anche perché ha richiesto una operazione di I/O. In tutti e tre i casi lo scheduler a breve termine, chiamato anche scheduler della CPU, deve scegliere il nuovo processo da mandare in esecuzione al posto del processo che era in esecuzione.

10 Nel caso in cui il processo che era in esecuzione abbandona volontariamente l uso della CPU (ha terminato la sua esecuzione oppure ha richiesto una operazione di I/O) si parla di scheduling senza diritto di prelazione (non preemptive scheduling). Si parla invece si scheduling con diritto di prelazione (preemptive scheduling) se il processo che era in esecuzione viene forzato ad abbandonare l uso della CPU. Questo accade quando il processo ha terminato il suo quanto di tempo e ciò gli viene segnalato tramite un interrupt, oppure perché è stata completata una operazione di I/O (il processo in attesa viene risvegliato e se è più importante del processo in esecuzione passa immediatamente dallo stato di bloccato allo stato di pronto e allo stato di esecuzione). Lo scheduling a breve termine si esegue molto frequentemente perché un processo rimane in esecuzione per poco tempo (in UNIX 100 msec). Lo scheduler a breve termine deve quindi scegliere molto velocemente il nuovo processo da mandare in esecuzione altrimenti verrebbe sprecato molto tempo di CPU per il solo scheduling (overhead). Se impiegasse 20ms per scegliere il nuovo processo allora si sprecherebbe, il 20/(100+20)=16,67 per cento del tempo di CPU per il solo scheduling del processo. Il long term scheduling è quella funzione del sistema operativo che si occupa di scegliere quali processi presenti in memoria di massa caricare in memoria centrale per la successiva esecuzione. Lo scheduler a lungo termine deve scegliere un buon mix di processi da caricare in memoria centrale. Se scegliesse processi la maggior parte di tipo CPU bound, quindi che richiedono molto tempo di elaborazione e poche richieste di I/O, allora il sistema sarebbe sbilanciato nel senso che i dispositivi di I/O sarebbero sottoutilizzati. Se invece scegliesse un insieme di processi di tipo I/O bound, vale a dire processi che richiedono poca elaborazione e molte richieste di I/O allora lo scheduler a breve termine sarebbe la maggior parte del tempo inattivo in quanto la coda dei processi pronti sarebbe quasi sempre vuota perché la maggior parte dei processi si troverebbe nella coda dei processi bloccati in attesa del completamento delle operazioni di I/O. Lo scheduler a lungo termine deve anche controllare il numero di processi presenti contemporaneamente in memoria centrale (grado di multiprogrammazione). Più sono i processi presenti in memoria centrale, minore sarà il tempo di esecuzione dedicato a ciascun processo. Lo scheduler a lungo termine può quindi limitare il grado di multiprogrammazione in modo da fornire un servizio migliore ai vari processi. Il medium term scheduling è quella funzione del sistema operativo che ha il compito di trasferire momentaneamente i processi dalla memoria di massa alla memoria centrale e vieceversa. Questo scheduler opera sui processi che sono già stati parzialmente eseguiti. Nel caso debba essere liberato spazio in memoria centrale, per far posto ad altri processi, allora lo scheduler a medio termine sceglie quali processi trasferire dalla memoria centrale alla memoria di massa (operazione di swap-out). L operazione di caricamento da memoria di massa alla memoria centrale prende invece il nome di swap-in.

11 11. Si descriva il meccanismo di schedulazione dei processi di UNIX (esame del ) Unix è un sistema a divisione di tempo (time sharing) e quindi ogni processo usa la CPU per un quanto di tempo prefissato e poi viene forzato ad abbandonare la CPU. Lo scheduler usa quindi un algoritmo con diritto di prelazione (preemption scheduling). L algoritmo di scheduling usato è basato sulle priorità. In particolare in UNIX lo scheduler usa più code di priorità. Tutti i processi con la stessa priorità fanno parte della stessa coda e vengono scelti secondo un algoritmo Round Robin. Lo scheduler ad ogni quanto di tempo sceglie la coda a priorità più elevata che contiene almeno un processo. Quando tutti i processi della coda a più alta priorità sono stati eseguiti (la coda è vuota) si passa ad eseguire i processi della coda successiva in ordine di priorità. La priorità dei processi è dinamica e viene ricalcolata ad ogni secondo in modo da far diminuire la priorità di quei processi che usano molto la CPU e quindi evitare fenomeni di starvation per quei processi cha hanno bassa priorità. nuova priorità = valore iniziale +uso della CPU. Il valore iniziale della priorità dei processi utente è maggiore di 0 mentre i processi eseguiti in modalità kernel hanno valore negativo di priorità. In Unix infatti più grande è il valore più bassa è la priorità. Un processo può volontariamente diminuire la propria priorità attraverso la system call nice. Si descrivano le modalità di esecuzione dei processi sotto UNIX (esame del ) L esecuzione dei processi in UNIX può avvenire in modalità background (non interattiva) oppure in modalità foreground (interattiva o in primo piano). Se un processo è in esecuzione in modalità foreground, il prompt della shell non torna finchè il processo non è terminato e quindi l utente non può digitare nuovi comandi. Se un processo è in esecuzione in modalità background allora la shell torna immediatamente a disposizione dell utente subito dopo la digitazione del comando da shell. Ora l utente può digitare nuovi comandi (eseguire nuovi programmi) e contemporaneamente il processo avviato continua la sua esecuzione in background. Per avviare un processo in modalità background occorre digitare il comando seguito dal simbolo di & (e commerciale). Esempio: Si vuole decomprimere un grosso file di nome pippo.gz in modalità background. Uso il comando gunzip pippo.gz &. Nel fra tempo che il processo è in esecuzione la shell torna subito a disposizione dell utente che può eseguire nuovi comandi. Quando il processo gunzip ha terminato, viene notificata la sua terminazione.

12 12. Si descriva l algoritmo di scheduling Shortest Job First; un esempio è vivamente consigliato (esame del ) L algoritmo di scheduling Shortest Job First (SJF) appartiene alla categoria degli algoritmi di short term scheduling usati dal sistema operativo per scegliere a quale tra i processi pronti assegnare la CPU. Con questo algoritmo viene scelto il processo che ha il minor tempo di esecuzione. Il problema è sapere in anticipo quanto vale il tempo di esecuzione di un processo. Questo non è praticamente possibile. Allora viene fatta una predizione basandosi sulle precedenti sequenze di esecuzioni di tale processo. L algoritmo SJF è ottimale, nel senso che rende minimo il tempo di attesa medio per un dato insiemi di processi. Si consideri il seguente esempio: Siano T.E e T.A rispettivamente i tempi di esecuzione e di arrivo in coda di 4 processi P1,P2,P3,P4. processi T.E T.A P P P3 5 7 P Con l algoritmo SJF viene prima eseguito il processo con il tempo di esecuzione più breve e cioè P1. P1 e P2 arrivano in coda allo stesso istante e poiché P1 è più breve viene eseguito P1. Prima che P1 termini arriva in coda P3 che è più breve di P2 e quindi viene eseguito P3 e non P2, anche se P2 è arrivato prima di P3. Poi viene eseguito P2 e infine P4. Il diagramma temporale è il seguente : P1 P3 P2 P tempo

13 Il tempo di turnaround (tempo medio di completamento dell insieme dei processi) vale: Tempo di turnaround = ( )/4=33.25 Infatti: P1 attende 10 prima di terminare P2 attende (15-7)=8 prima di terminare P3 attende (35-0)=35 P4 attende (95-15)=80 L algoritmo SJF può essere sia con prelazione sia senza prelazione. Un algoritmo SJF con prelazione sostituisce il processo attualmente in esecuzione con quello che è appena arrivato in coda. La sostituzione avviene se il processo che arriva in coda ha un tempo di esecuzione inferiore al tempo che resta al processo in esecuzione. Esempio: se il processo che è in esecuzione deve ancora essere eseguito per 5 unità di tempo e arriva un processo che richiede solo 4 unità di tempo allora il processo in esecuzione viene sospeso a favore del nuovo processo e terminerà la propria esecuzione successivamente. Nel caso di SJF senza prelazione il processo in esecuzione continua ad essere eseguito anche se arriva un altro processo che richiede un tempo di esecuzione inferiore rispetto al tempo che resta al processo in esecuzione. (l esempio fatto precedentemente è relativo ad un SJF senza prelazione). 13. Descrivere i principali algoritmi di short term scheduling Gli algoritmi di short term scheduling sono degli algoritmi usati dal sistema operativo per scegliere quale processo, tra i processi presenti nella coda dei processi pronti, mandare in esecuzione cioè assegnargli la CPU. Questa funzione del Sistema Operativo interviene ogni volta che un processo in esecuzione abbandona forzatamente o volontariamente la CPU. Gli algoritmi più utilizzati sono i seguenti: FIFO(First In First Out) o FCFS (First Come First Served): Lo scheduler sceglie, tra tutti i processi pronti, il processo che è in attesa da più tempo ossia il primo arrivato nella coda dei processi pronti. Il processo che perde l uso della CPU viene inserito in ultima posizione nella coda dei processi bloccati (richiesta di I/O). Il processo mantiene la CPU fino al rilascio spontaneo (algoritmo senza prelazione non preemptive scheduling) che può avvenire perché il processo ha richiesto una operazione di I/O oppure perché ha terminato. I tempi medi di attesa sono alti. SJF (Shortest Job First): Tra tutti i processi presenti nella coda dei processi pronti viene scelto il processo che ha il minor tempo di esecuzione. Problema: conoscere in anticipo la durata della successiva sequenza di operazioni di un processo. Questo è impossibile, per cui viene fatta una predizione del tempo di esecuzione basandosi sui precedenti tempi di esecuzione del processo. Con questa tecnica i tempi di attesa sono minimi. Può essere senza prelazione oppure con prelazione come già detto in una delle risposte precedenti.

14 Round Robin (RR): I processi sono organizzati in una coda circolare. Ogni processo viene scelto seconda una modalità FIFO ed al processo scelto viene assegnata la CPU per un quanto di tempo prefissato, terminato il quale la CPU gli viene revocata e il processo passa in coda alla lista. Il quanto di tempo deve essere molto più grande del tempo necessario per il cambio di contesto altrimenti l efficienza dell uso della CPU si riduce significativamente. A priorità: in un sistema che usa un algoritmo a priorità, ogni processo ha una priorità e la CPU viene assegnata al processo con priorità maggiore. Se due processi hanno la stessa priorità viene scelto il processo che è arrivato per primo (FCFS). L algoritmo può essere con prelazione oppure senza prelazione. Se adotta la prelazione allora, se arriva nella coda dei processi pronti un processo che ha una priorità più alta del processo in esecuzione, questo ultimo viene sospeso e sostituito con il processo con priorità più alta. Nel caso di scheduling senza prelazione, se arriva un processo con priorità più alta di quello in esecuzione ( e questo significa che ha anche priorità più alta dei processi presenti in coda), il processo in esecuzione continua la sua esecuzione e il nuovo processo viene inserito in testa alla coda dei processi pronti. Il problema di questa tecnica di scheduling è lo starvation ossia l attesa indefinita. Un processo che ha bassa priorità rischia di attendere indefinitamente prima poter avere la CPU perché ci sono sempre processi con priorità più alta della sua. La priorità di un processo può essere statica (assegnata all atto della creazione del processo e non più modificabile) o dinamica (può cambiare durante la vita del processo). La priorità dinamica viene usata per risolvere il problema dello starvation. Ad un processo che è da molto tempo in attesa gli viene aumentata la priorità e questo avviene periodicamente a intervalli di tempo prefissati. In questo modo anche un processo a bassa priorità può ottenere la priorità più alta. Un processo che usa molto la CPU subisce una diminuzione della priorità, mentre un processo che usa molto i dispositivi di I/O ottiene un aumento della priorità. 14. Data la seguente tabella dei processi (T.A tempo di arrivo nel sistema, T.E tempo di esecuzione) calcolare il tempo di turnaround medio con gli algoritmi di scheduling FCFS e SJF: (esame del ) Processi T.E T.A P P P P4 5 20

15 L algoritmo di scheduling FCFS (First Come First Served) sceglie tra tutti i processi presenti nella coda dei processi pronti quello che da più tempo è in attesa, mentre l algoritmo SJF (Shortest Job First) sceglie il processo con il minor tempo di esecuzione. Nel caso FCFS abbiamo la seguente situazione: Il primo processo ad essere eseguito è il processo P1 che arriva all istante t=0; Il secondo processo è il processo P3 che arriva all istante t=10; Il terzo processo è il processo P2 che arriva all istante t=15; Per ultimo viene eseguito il processo P4 che arriva all istante t=20; Il tempo di turnaround medio è dunque il seguente: Tempo di turnaround=[20+(30-10)+(35-15)+(40-20)]/4=20 Infatti : P1 attende 20 prima di terminare P3 attende (30-10)=20 prima di terminare P2 attende (35-15)=20 prima di terminare P4 attende (40-20)=20 prima di terminare Di seguito è rappresentato il diagramma temporale P1 P3 P2 P tempo Nel caso SJF abbiamo invece: Il primo processo ad essere eseguito è il processo P1 perché è il primo che arriva in coda; Il secondo processo ad essere eseguito è il processo P2 perché quando termina P1 (istante 20) P2 è in coda con P3 e P4. I tempi di esecuzione di P2 e P4 sono gli stessi ma P2 è arrivato prima, per cui viene schedulato P2; Il terzo processo ad essere eseguito è il processo P4 perché ha un tempo di esecuzione inferiore rispetto a P3; Infine viene schedulato P3;

16 Il tempo di turnaround medio è dunque il seguente: Tempo di turnaround=[20+(25-15)+(30-20)+(40-10)]/4=17,5 (inferiore rispetto all algoritmo FCFS) Infatti : P1 attende 20 prima di terminare P2 attende (25-15)=10 prima di terminare P4 attende (30-20)=10 prima di terminare P3 attende (40-10)=30 prima di terminare Di seguito è rappresentato il diagramma temporale P1 P2 P4 P tempo 15. Data la seguente tabella di processi con i relativi tempi di esecuzione (T.E) e di arrivo nel sistema (T.A), disegnare l andamento temporale dei processi supponendo di adottare una polita di schedulazione FCFS (FIFO) e calcolare il tempo di turnaround medio. Processi T.E T.A P P P P4 5 20

17 Il tempo di turnround medio è il tempo medio di completamento dell insieme dei processi. Il diagramma temporale dell esecuzione dei processi è il seguente: P1 P2 P3 P tempo Con la politica FCFS il primo processo che viene mandato in esecuzione è il processo che è arrivato per primo. Nell esempio è il processo P1. Dopo il processo P1 viene eseguito il processo P2 perché arriva all istante 5, poi il processo P3 che arriva all istante 6 e infine il processo P4. Il processo P1 rimane in esecuzione per 30 unità di tempo e poiché viene servito subito, il suo tempo di attesa per il completamento è pari a 30 unità. P2 invece arriva in t=5 ma deve attendere che P1 sia terminato, per cui entra in esecuzione all istante t=30. Il suo tempo di attesa per il completamento è pari a (55-5)=50 unità di tempo. P3 deve attendere che P1 e P2 abbiano completato. Il processo P3 arriva in t=6 e prima che venga eseguito deve attendere il completamento di P1 e P2. Quindi il suo tempo di attesa è pari a (135-6)=129. Il processo P4 arriva in t=20 e quindi attende (140-20)=120 prima di essere completato. Il tempo medio di turnround è dunque pari a : tempo di turnround= [30+(55-5)+(135-6)+(140-20)]/4= 82,25

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

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

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

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

Dettagli

1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame.

1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame. 1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame. (a) Da quanti bit è costituito l indirizzo logico? (b) Da quanti bit

Dettagli

Le system call: fork(), wait(), exit()

Le system call: fork(), wait(), exit() Le system call: fork(), wait(), exit() Di seguito viene mostrato un programma che fa uso di puntatori a funzione, nel quale si mette in evidenza il loro utilizzo. Programma A1 #include int add(a,b,c)

Dettagli

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti Dai sistemi concorrenti ai sistemi distribuiti Problemi nei sistemi concorrenti e distribuiti I sistemi concorrenti e distribuiti hanno in comune l ovvio problema di coordinare le varie attività dei differenti

Dettagli

Architettura degli Elaboratori. Lez. 8 : Il Livello di Sistema Operativo

Architettura degli Elaboratori. Lez. 8 : Il Livello di Sistema Operativo Corso di Laurea Triennale in Informatica Università degli Studi di Bari Aldo Moro Anno Accademico 2012-2013 Lez. 8 : Il Livello di Sistema Operativo Sebastiano Pizzutilo Strutturazione del Sistema Operativo

Dettagli

Inter-Process Communication

Inter-Process Communication Inter-Process Communication C. Baroglio a.a. 2002-2003 1 Introduzione In Unix i processi possono essere sincronizzati utilizzando strutture dati speciali, appartenti al pacchetto IPC (inter-process communication).

Dettagli

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Appunti di Sistemi Operativi Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Indice 1 Cenni su alcuni algoritmi del Kernel di Unix 1 1.1 Elementi di Unix Internals.................................

Dettagli

Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata

Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata Supponiamo sempre di avere un ponte stretto che permette il passaggio delle auto solo in un verso per volta,

Dettagli

Sistemi Operativi Sincronizzazione tra Processi

Sistemi Operativi Sincronizzazione tra Processi Sistemi Operativi Processi Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega 1 Processi indipendenti possono avanzare concorrentemente senza alcun vincolo

Dettagli

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. - lezione 14 - Thread in Java

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. - lezione 14 - Thread in Java Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 14 - Thread in Java 1 Cos è un

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

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi. 1 Mattia Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

CREAZIONE DI UN FILE

CREAZIONE DI UN FILE #include #include CREAZIONE DI UN FILE fd = creat(filename, mode); int fd, mode; char *filename; La primitiva creat crea un file, se non ne esiste uno col nome specificato, oppure

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Programmazione di un dispositivo 1to4INTGEN

Programmazione di un dispositivo 1to4INTGEN Programmazione di un dispositivo 1to4INTGEN Realizzazione di un sistema timesharing Materiale didattico a cura di: Prof. A. Mazzeo Ing. L. Romano Ing. L. Coppolino Ing. A. Cilardo Dipartimento di Informatica

Dettagli

Il Sistema Operativo: il File System

Il Sistema Operativo: il File System Il Sistema Operativo: il File System Il File System è quella parte del S.O. che si occupa di gestire e strutturare le informazioni memorizzate su supporti permanenti (memoria secondaria) I file vengono

Dettagli

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate. Comandi filtro: sed Il nome del comando sed sta per Stream EDitor e la sua funzione è quella di permettere di editare il testo passato da un comando ad un altro in una pipeline. Ciò è molto utile perché

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

BPEL: Business Process Execution Language

BPEL: Business Process Execution Language Ingegneria dei processi aziendali BPEL: Business Process Execution Language Ghilardi Dario 753708 Manenti Andrea 755454 Docente: Prof. Ernesto Damiani BPEL - definizione Business Process Execution Language

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

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

I componenti di un Sistema di elaborazione. CPU (central process unit)

I componenti di un Sistema di elaborazione. CPU (central process unit) I componenti di un Sistema di elaborazione. CPU (central process unit) I componenti di un Sistema di elaborazione. CPU (central process unit) La C.P.U. è il dispositivo che esegue materialmente gli ALGORITMI.

Dettagli

Funzioni. Corso di Fondamenti di Informatica

Funzioni. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Funzioni Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti e dei

Dettagli

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno La Vista CAS L ambiente di lavoro Le celle Assegnazione di una variabile o di una funzione / visualizzazione

Dettagli

APPLICAZIONI SU PIU FILE

APPLICAZIONI SU PIU FILE APPLICAZIONI SU PIU FILE Serve poter sviluppare applicazioni su piú file: - alcune funzioni e alcune definizioni di dati in un file - altre funzioni e dati in file diversi Perché?? 1. Se il programma è

Dettagli

Guida ai Servizi Voce per il Referente. Guida ai Servizi Voce per il Referente

Guida ai Servizi Voce per il Referente. Guida ai Servizi Voce per il Referente Guida ai Servizi Voce per il Referente Guida ai Servizi Voce per il Referente 1 Sommario 1 Introduzione... 3 1.1 Accesso al Self Care Web di Rete Unica... 4 2 Servizi Aziendali... 6 2.1 Centralino - Numero

Dettagli

Lezione 15 File System

Lezione 15 File System Lezione 15 File System Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2014/2015 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio Emilia http://weblab.ing.unimo.it/people/andreolini/didattica/sistemi-operativi

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

Esercizi Capitolo 5 - Alberi

Esercizi Capitolo 5 - Alberi Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

Chiamate di sistema per la Inter Process Communication (IPC) in POSIX. E.Mumolo, DEEI mumolo@units.it

Chiamate di sistema per la Inter Process Communication (IPC) in POSIX. E.Mumolo, DEEI mumolo@units.it Chiamate di sistema per la Inter Process Communication (IPC) in POSIX E.Mumolo, DEEI mumolo@units.it Pipe Cos'è un pipe? E' un canale di comunicazione che unisce due processi Caratteristiche: La più vecchia

Dettagli

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera L. De Giovanni AVVERTENZA: le note presentate di seguito non hanno alcuna pretesa di completezza, né hanno lo scopo di sostituirsi

Dettagli

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

Dettagli

Informatica. Scopo della lezione

Informatica. Scopo della lezione 1 Informatica per laurea diarea non informatica LEZIONE 1 - Cos è l informatica 2 Scopo della lezione Introdurre le nozioni base della materia Definire le differenze tra hardware e software Individuare

Dettagli

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 08/03/07 Nota Questi lucidi sono tratti

Dettagli

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti Project Management Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Project Management 2 Metodi per supportare le decisioni relative alla gestione di progetti esempi sono progetti nell

Dettagli

Interazione, sincronizzazione e comunicazione tra processi

Interazione, sincronizzazione e comunicazione tra processi Interazione, sincronizzazione e comunicazione tra processi Classificazione Processi interagenti processi interagenti/indipendenti due processi sono indipendenti se l esecuzione di ognuno non è in alcun

Dettagli

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997 1 RAPPRESENTAZIONE BINARIA DEI NUMERI Andrea Bobbio Anno Accademico 1996-1997 Numeri Binari 2 Sistemi di Numerazione Il valore di un numero può essere espresso con diverse rappresentazioni. non posizionali:

Dettagli

Telefono Sirio lassico

Telefono Sirio lassico GUIDA USO Telefono Sirio lassico 46755H Aprile 2013 3 Indice INTRODUZIONE...1 CARATTERISTICHE TECNICHE E FUNZIONALI...1 CONTENUTO DELLA CONFEZIONE...1 INSTALLAZIONE...2 DESCRIZIONE DELL APPARECCHIO...3

Dettagli

Editor vi. Editor vi

Editor vi. Editor vi Editor vi vi 1 Editor vi Il vi è l editor di testo standard per UNIX, è presente in tutte le versioni base e funziona con qualsiasi terminale a caratteri Permette di visualizzare una schermata alla volta

Dettagli

Guida ai Servizi Voce per l Utente. Guida ai ai Servizi Voce per l Utente

Guida ai Servizi Voce per l Utente. Guida ai ai Servizi Voce per l Utente Guida ai Servizi Voce per l Utente Guida ai ai Servizi Voce per l Utente 1 Indice Introduzione... 3 1 Servizi Voce Base... 4 1.1 Gestione delle chiamate... 4 1.2 Gestione del Numero Fisso sul cellulare...

Dettagli

MIPS Instruction Set 2

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

Dettagli

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31 Le Liste Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Le Liste 1 / 31 Cos è una Lista Una lista è una collezione di elementi omogenei che: potrebbero

Dettagli

La ricorsione. Politecnico di Milano Sede di Cremona

La ricorsione. Politecnico di Milano Sede di Cremona La ricorsione Politecnico di Milano Sede di Cremona Gianpaolo Cugola Dipartimento di Elettronica e Informazione cugola@elet.polimi.it http://www.elet.polimi.it/~cugola Definizioni ricorsive Sono comuni

Dettagli

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore Cicli in Visual Basic for Application Le strutture del programma che ripetono l'esecuzione di una o più istruzioni sono chiamate Cicli. Alcune strutture per i cicli sono costruite in modo da venire eseguite

Dettagli

Introduzione. Esempio 1. Soluzione: SPOSTA_1.BAT

Introduzione. Esempio 1. Soluzione: SPOSTA_1.BAT Introduzione Un file batch è un file di testo di tipo ASCII che contiene una sequenza di comandi DOS. I file batch devono avere estensione.bat I comandi DOS all interno dei programmi batch sono eseguiti

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio di Sistemi Operativi II Semestre - Marzo/Giugno 2008 Matricole congr. 0 mod 3 File & Directory #include #include stat,fstat e lstat int stat (const char *pathname, struct stat *buf); int fstat (int

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli

Dettagli

Elementi di semantica denotazionale ed operazionale

Elementi di semantica denotazionale ed operazionale Elementi di semantica denotazionale ed operazionale 1 Contenuti! sintassi astratta e domini sintattici " un frammento di linguaggio imperativo! semantica denotazionale " domini semantici: valori e stato

Dettagli

Gestione dinamica di una pila

Gestione dinamica di una pila Gestione dinamica di una pila Una pila o stack è una lista lineare a lunghezza variabile in cui inserimenti (push) ed estrazioni (pop) vengono effettuate ad un solo estremo, detto testa (top) della pila.

Dettagli

IL SAMPLE AND HOLD UNIVERSITÀ DEGLI STUDI DI MILANO. Progetto di Fondamenti di Automatica. PROF.: M. Lazzaroni

IL SAMPLE AND HOLD UNIVERSITÀ DEGLI STUDI DI MILANO. Progetto di Fondamenti di Automatica. PROF.: M. Lazzaroni UNIVERSITÀ DEGLI STUDI DI MILANO FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea in Informatica IL SAMPLE AND HOLD Progetto di Fondamenti di Automatica PROF.: M. Lazzaroni Anno Accademico

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

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

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

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

TIPOLOGIE DI PROCESSI PRODUTTIVI E CONTROLLO DI GESTIONE PRODUZIONE SU COMMESSA PRODUZIONE SU MODELLO PRODUZIONE A FLUSSO CONTINUO

TIPOLOGIE DI PROCESSI PRODUTTIVI E CONTROLLO DI GESTIONE PRODUZIONE SU COMMESSA PRODUZIONE SU MODELLO PRODUZIONE A FLUSSO CONTINUO TIPOLOGIE DI PROCESSI PRODUTTIVI E CONTROLLO DI GESTIONE PRODUZIONE SU COMMESSA PRODUZIONE SU MODELLO PRODUZIONE A FLUSSO CONTINUO 1 PRODUZIONE SU COMMESSA CARATTERISTICHE DELL ATTIVITA : - ORIGINA DAL

Dettagli

GLI ERRORI DI OUTLOOK EXPRESS

GLI ERRORI DI OUTLOOK EXPRESS Page 1 of 6 GLI ERRORI DI OUTLOOK EXPRESS 1) Impossibile inviare il messaggio. Uno dei destinatari non è stato accettato dal server. L'indirizzo di posta elettronica non accettato è "user@dominio altro

Dettagli

Programmazione TELXXC

Programmazione TELXXC Manuale Programmazione Versione 5.0 Programmazione TELXXC TELLAB Via Monviso, 1/B 24010 Sorisole (Bg) info@tellab.it INDICE Programmazione e comandi... 2 Messaggio comando multiplo.. Formato... 3 Messaggi

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

Cinque best practice per amministratori VMware: Microsoft Exchange su VMware

Cinque best practice per amministratori VMware: Microsoft Exchange su VMware Cinque best practice per amministratori VMware: Microsoft Exchange su VMware Scott Lowe Founder and Managing Consultant del 1610 Group Modern Data Protection Built for Virtualization Introduzione C è stato

Dettagli

Architettura dei Calcolatori

Architettura dei Calcolatori Architettura dei Calcolatori Sistema di memoria parte prima Ing. dell Automazione A.A. 2011/12 Gabriele Cecchetti Sistema di memoria parte prima Sommario: Banco di registri Generalità sulla memoria Tecnologie

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

GESTIONE DELLA PROCEDURA

GESTIONE DELLA PROCEDURA Manuale di supporto all utilizzo di Sintel per Stazione Appaltante GESTIONE DELLA PROCEDURA Data pubblicazione: 17/06/2015 Pagina 1 di 41 INDICE 1. Introduzione... 3 1.1 Obiettivo e campo di applicazione...

Dettagli

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense Linguaggio del calcolatore Circuiti e reti combinatorie ppendice + dispense Solo assenza o presenza di tensione: o Tante componenti interconnesse che si basano su e nche per esprimere concetti complessi

Dettagli

LATCH E FLIP-FLOP. Fig. 1 D-latch trasparente per ck=1

LATCH E FLIP-FLOP. Fig. 1 D-latch trasparente per ck=1 LATCH E FLIPFLOP. I latch ed i flipflop sono gli elementi fondamentali per la realizzazione di sistemi sequenziali. In entrambi i circuiti la temporizzazione è affidata ad un opportuno segnale di cadenza

Dettagli

Bus di sistema. Bus di sistema

Bus di sistema. Bus di sistema Bus di sistema Permette la comunicazione (scambio di dati) tra i diversi dispositivi che costituiscono il calcolatore E costituito da un insieme di fili metallici che danno luogo ad un collegamento aperto

Dettagli

Lezione 9: Strutture e allocazione dinamica della memoria

Lezione 9: Strutture e allocazione dinamica della memoria Lezione 9: Strutture e allocazione dinamica della memoria Laboratorio di Elementi di Architettura e Sistemi Operativi 9 Maggio 2012 Allocazione dinamica della memoria Memoria dinamica È possibile creare

Dettagli

Corso di Alfabetizzazione Informatica

Corso di Alfabetizzazione Informatica Corso di Alfabetizzazione Informatica Scopo di questo corso, vuole essere quello di fornire ad ognuno dei partecipanti, indipendentemente dalle loro precedenti conoscenze informatiche, l apprendimento

Dettagli

Guida Dell di base all'acquisto dei server

Guida Dell di base all'acquisto dei server Guida Dell di base all'acquisto dei server Per le piccole aziende che dispongono di più computer è opportuno investire in un server che aiuti a garantire la sicurezza e l'organizzazione dei dati, consentendo

Dettagli

Modello OSI e architettura TCP/IP

Modello OSI e architettura TCP/IP Modello OSI e architettura TCP/IP Differenza tra modello e architettura - Modello: è puramente teorico, definisce relazioni e caratteristiche dei livelli ma non i protocolli effettivi - Architettura: è

Dettagli

SIMATIC. SCL per S7-300/400 Programmazione di blocchi. Prefazione, Contenuto. Parte 1: Sviluppo di programmi. Parte 2: Uso e test

SIMATIC. SCL per S7-300/400 Programmazione di blocchi. Prefazione, Contenuto. Parte 1: Sviluppo di programmi. Parte 2: Uso e test Prefazione, Contenuto Parte 1: Sviluppo di programmi Parte 2: Uso e test SIMATIC Parte 3: Descrizione del linguaggio Programmazione di blocchi Appendici Glossario, Indice analitico Manuale Numero di ordinazione

Dettagli

Architetture CISC e RISC

Architetture CISC e RISC FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Architetture CISC e RISC 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n.

Dettagli

Un ripasso di aritmetica: Conversione dalla base 10 alla base 16

Un ripasso di aritmetica: Conversione dalla base 10 alla base 16 Un ripasso di aritmetica: Conversione dalla base 1 alla base 16 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base sedici sarà del tipo: c m c m-1... c 1 c (le c i sono cifre

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

LE VALVOLE PNEUMATICHE

LE VALVOLE PNEUMATICHE LE VALVOLE PNEUMATICHE Generalità Le valvole sono apparecchi per il comando, per la regolazione della partenza, arresto e direzione, nonché della pressione e passaggio di un fluido proveniente da una pompa

Dettagli

UNIVERSITA POLITECNICA DELLE MARCHE. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Informatica e dell Automazione.

UNIVERSITA POLITECNICA DELLE MARCHE. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Informatica e dell Automazione. UNIVERSITA POLITECNICA DELLE MARCHE Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica e dell Automazione Tesi di Laurea Progettazione e sviluppo di un modulo per il task-scheduling per il

Dettagli

Tipologie di pianificatori. Pianificazione. Partial Order Planning. E compiti diversi. Pianificazione gerarchica. Approcci integrati

Tipologie di pianificatori. Pianificazione. Partial Order Planning. E compiti diversi. Pianificazione gerarchica. Approcci integrati Tipologie di pianificatori Pianificazione Intelligenza Artificiale e Agenti II modulo Pianificazione a ordinamento parziale (POP) (HTN) pianificazione logica (SatPlan) Pianificazione come ricerca su grafi

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

Progetto Didattico di Informatica Multimediale

Progetto Didattico di Informatica Multimediale Progetto Didattico di Informatica Multimediale VRAI - Vision, Robotics and Artificial Intelligence 20 aprile 2015 Rev. 18+ Introduzione Le videocamere di riconoscimento sono strumenti sempre più utilizzati

Dettagli

Trattamento aria Regolatore di pressione proporzionale. Serie 1700

Trattamento aria Regolatore di pressione proporzionale. Serie 1700 Trattamento aria Serie 7 Serie 7 Trattamento aria Trattamento aria Serie 7 Serie 7 Trattamento aria +24VDC VDC OUTPUT MICROPROCESS. E P IN EXH OUT Trattamento aria Serie 7 Serie 7 Trattamento aria 7 Trattamento

Dettagli

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it il server? virtualizzalo!! Se ti stai domandando: ma cosa stanno dicendo? ancora non sai che la virtualizzazione è una tecnologia software, oggi ormai consolidata, che sta progressivamente modificando

Dettagli

Routing (instradamento) in Internet. Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi:

Routing (instradamento) in Internet. Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi: Routing (instradamento) in Internet Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi: Stub AS: istituzione piccola Multihomed AS: grande istituzione (nessun ( transito Transit AS: provider

Dettagli

IMPOSTA SULLE TRANSAZIONI FINANZIARIE

IMPOSTA SULLE TRANSAZIONI FINANZIARIE IMPOSTA SULLE TRANSAZIONI FINANZIARIE (STRUMENTI DERIVATI ED ALTRI VALORI MOBILIARI) Ove non espressamente specificato i riferimenti normativi si intendono fatti al decreto del Ministro dell economia e

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

Metodi e Strumenti per la Caratterizzazione e la Diagnostica di Trasmettitori Digitali RF ing. Gianfranco Miele g.miele@unicas.it

Metodi e Strumenti per la Caratterizzazione e la Diagnostica di Trasmettitori Digitali RF ing. Gianfranco Miele g.miele@unicas.it Corso di laurea magistrale in Ingegneria delle Telecomunicazioni Metodi e Strumenti per la Caratterizzazione e la Diagnostica di Trasmettitori Digitali RF ing. Gianfranco Miele g.miele@unicas.it Trasmettitore

Dettagli

Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2)

Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2) Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2) Definiamo innanzitutto una relazione d ordine tra le funzioni. Siano φ e ψ funzioni

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

Background (sfondo): Finestra: Una finestra serve a mostrare il contenuto di un disco o di una cartella -, chiamata anche directory.

Background (sfondo): Finestra: Una finestra serve a mostrare il contenuto di un disco o di una cartella -, chiamata anche directory. @ PC (Personal computer): Questa sigla identificò il primo personal IBM del 1981 a cura di R.Mangini Archiviazione: Il sistema operativo si occupa di archiviare i file. Background (sfondo): Cursore: Nei

Dettagli

Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP

Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP Protocolli di rete Sommario Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP Configurazione statica e dinamica

Dettagli

Rapida Introduzione all uso del Matlab Ottobre 2002

Rapida Introduzione all uso del Matlab Ottobre 2002 Rapida Introduzione all uso del Matlab Ottobre 2002 Tutti i tipi di dato utilizzati dal Matlab sono in forma di array. I vettori sono array monodimensionali, e così possono essere viste le serie temporali,

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

Caratteristiche raccomandate del Network in un progetto di Home Automation

Caratteristiche raccomandate del Network in un progetto di Home Automation Caratteristiche raccomandate del Network in un progetto di Home Automation Uno degli aspetti progettuali più importanti di un sistema Control4 è la rete. Una rete mal progettata, in molti casi, si tradurrà

Dettagli