Appunti Di Sistemi Operativi. Prof. Flavio Cerini

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Appunti Di Sistemi Operativi. Prof. Flavio Cerini"

Transcript

1 Appunti Di Sistemi Operativi Prof. Flavio Cerini DEFINIZIONI PROGRAMMA : Insieme statico di istruzioni (entità passiva) che descrive le azioni da compiere ( un programma viene eseguito ) PROCESSO : Entità attiva che rappresenta l esecuzione di tali azioni ( un processo viene avanzato ). Il processo é il job associato alla risorsa che ha richiesto ( rappresenta l evoluzione dinamica di un programma ) JOB : Una richiesta elementare di utilizzo di una risorsa, presente all interno del programma in esecuzione. ( una singola istruzione ad alto livello contiene molte operazioni. Per la CPU l operazione elementare é il JOB PROCESSORE : Dispositivo che consente l evoluzione e il completamento di un processo ( in genere si intende la CPU ). In multiprogrammazione ogni utente ha l impressione di lavorare con un suo processore virtuale. NB : più processi possono essere associati allo stesso programma : ciascuno rappresenta l esecuzione dello stesso codice con dati diversi ). THREAD : Termine introdotto in tempi molto recenti ( verso la fine degli anni 80 ). Un thread rappresenta un segmento di istruzioni di un processo in esecuzione. Un processo é un insieme di thread che rappresentano il suo codice eseguibile. Un processo é composto come minimo da un thread, ma normalmente ad ogni processo ne vengono associati più di uno in base alle capacità di avanzamento concorrente di ciascuno. La dichiarazione e definizione di un thread può avvenire a livello software ( includendo nel programma opportune chiamate a procedure di sistema che gestiscono i thread ) oppure venire generati autonomamente dal S.O quando é in grado di individuare tra i compiti da eseguire quelli che possono essere resi concorrenti. Un processo multithreading in un certo istante ha più parti in esecuzione cioé più zone di programma che avanzano concorrentemente. Il vantaggio principale che si ottiene ricorrendo ai thread é la maggiore velocità di commutazione. Il processo é un entità più consistente di un thread Il thread viene infatti chiamato anche light process ( processo leggero ) Autore Flavio Cerini 1

2 Definizioni di sistema operativo : 1) Il S.O é il gestore delle risorse del calcolatore, cioé il software di base che serve all utente per lavorare con l hardware. 2) Un S.O può essere definito come un insieme di procedure manuali e automatiche che consentono all utente di un sistema di elaborazione di usarlo efficientemente. 3) Un S.O é un insieme di strumenti per lo sviluppo e l esercizio del software e delle comunicazioni per un dato sistema hardware nel rispetto dei seguenti principi a) Visione astratta delle risorse da parte degli utenti, cioé il più possibile indipendente dalle risorse hardware e dalla loro ubicazione nel sistema hardware b) Gestione corretta, sicura ed efficiente delle risorse 4) Un S.O é un insieme di programmi che assolvono al duplice compito di far vedere all utente una macchina virtuale semplificata e di gestire in maniera ottimizzata le risorse del sistema FUNZIONI SVOLTE DA UN SISTEMA OPERATIVO Le funzioni svolte da un S.O, pur diverse a seconda delle modalità di funzionamento del sistema sono comunque riconducibili ad alcune categorie ben definite. 1) Gestione delle risorse sia hardware ( tempo di cpu, spazio di memoria, dispositivi di I/O ecc ) che software ( file, strutture dati, ecc ). Il S.O assegna le risorse ai processi di utente in base a prefissate politiche. 2) Definizione di una macchina virtuale di più semplice uso da parte degli utenti, in grado di nascondere tutta una serie di particolarità del funzionamento del sistema legate alla struttura del HW ( es gestione interruzioni, utilizzo dei dispositivi di I/O ecc ). La macchina virtuale mette a disposizione dell utente apposite operazioni ( system calls ) che gli consentono di operare ad un livello di astrazione maggiore. Si noti che le due funzioni rappresentano due modi diversi, ma strettamente connessi, di rappresentare il ruolo di un sistema operativo. Autore Flavio Cerini 2

3 RISORSE DEL SISTEMA Un sistema di elaborazione si può considerare suddiviso in quattro gruppi di elementi ( risorse ) MEMORIA CENTRALE PROCESSORE DISPOSITIVO DI I/O MEMORIA DI MASSA struttura di Von Neumann : CPU MEMORIA CENTRALE INPUT /OUTPUT HD Memoria di massa (hard/disk) Le risorse non sono solo hardware ma anche software ( es file presenti in memoria). Il S.O sarà quindi composto di moduli software che si occupano di gestire una singola classe di risorse, garantendo le seguenti funzioni fondamentali : 1) Conoscere lo stato delle risorse di cui sono responsabili 2) Determinare la politica di allocazione della risorsa ( quale processo deve assumere una risorsa, quando e per quanto tempo ) 3) Allocare fisicamente la risorsa secondo la strategia prescelta 4) Deallocare la risorsa secondo la strategia prescelta CONCETTO DI RISORSA RISORSA : Qualsiasi elemento HW oppure SW che viene usato da un processo e che ne condiziona l avanzamento ( o la creazione ) Autore Flavio Cerini 3

4 PRIMA CLASSIFICAZIONE DEI S.O 1) S.O MONOPROGRAMMATI 2) S.O MULTIPROGRAMMATI 3) S.O DISTRIBUITI 1) S.O MONOPROGRAMMATI : S.O nei quali é possibile eseguire un solo programma per volta ; quindi tutte le risorse sono riservate a questo programma. Il S.O sarà abbastanza semplice, non ci sono problemi di competizione per l utilizzo delle risorse ( es S.O MS DOS ) problema : Risorse usate in modo poco efficiente con lunghi tempi di inattività 2) S.O MULTIPROGRAMMATI : Gestiscono sistemi di elaborazione in grado di far eseguire più programmi contemporaneamente. Si possono presentare due casi a) Un unico utente fa girare più programmi b) Più utenti lavorano sul loro programma che gira su un elaboratore centrale In questi ambienti é fondamentale gestire l assegnazione delle risorse. Gli utenti non devono attendere troppo Non si devono creare conflitti fra i processi Vantaggi : - Gestione contemporanea di più programmi indipendenti presenti nella memoria principale - Migliore utilizzazione delle risorse ( riduzione dei tempi morti ) Svantaggi : - Maggiore complessità del S.O - Algoritmi per la gestione delle risorse ( cpu, memoria, I/O ) Autore Flavio Cerini 4

5 - Protezione degli ambienti dei diversi programmi ( CPU 286 e successive ) Nei sistemi multiprogrammati si fa riferimento ai concetti di overlapping e interleaving Si faccia riferimento alla Fig Overlapping : Sovrapposizione temporale di processi Interleaving : alternanza temporale di processi PR2 PR1 overlapping interleaving Tempo di CPU SERVONO PIU CPU UNA SOLA CPU 3) S.O DISTRIBUITI Reti di calcolatori. Un S.O di questo genere deve fare in modo che ogni utente possa connettersi ad una parte qualsiasi del sistema nello stesso modo, come se tutto fosse immediatamente disponibile. Il S.O deve tener conto di molti elementi. La classificazione di cui si é parlato é trasparente per l utente. I comandi di dialogo, il lancio dei programmi, possono essere identici nei tre sistemi visti 4) S.O TIME SHARING Autore Flavio Cerini 5

6 Processore assegnato ad ogni processo per un quanto di tempo ( time slice ). Ogni utente ha l impressione di avere a disposizione tutto il sistema. CLASSIFICAZIONE DEI SISTEMI OPERATIVI L utente può utilizzare un sistema di elaborazione secondo due modalità fondamentali : A) BATCH ( a lotti ) : non c é interazione diretta con l utente. L obiettivo del S.O é l ottimizzazione dell uso delle risorse ( non esistono pregiudiziali verso la multiprogrammazione ) B) INTERATTIVO : l utente vede una propria macchina virtuale con la quale interagire mediante una serie di comandi Un sistema di elaborazione può essere specializzato dal sistema operativo per particolari applicazioni. S.O real time : generalmente sono sistemi dedicati al controllo di processi industriali. Sono molto importanti i brevi tempi di risposta. In particolare si parla di tempo reale stretto ( es processi industriali ) e tempo reale debole ( es prenotazione voli aerei ). S.O dedicati : previsti per sistemi di elaborazione che devono effettuare delle azioni ripetitive ( es controllo di processi industriali ). S.O transazionali : Sistemi interattivi che consentono solo accesso e modifica ad archivi di dati ( applicazioni bancarie ). Autore Flavio Cerini 6

7 STRUTTURA GERARCHICA DI UN SISTEMA OPERATIVO HARDWARE LIV 0 NUCLEO LIV 1 GESTIONE MEMORIA LIV 2 GESTIONE DELL I/O LIV 3 FILE SYSTEM LIV 4 PROGRAMMI UTILITA LIV 5 INTERPRETE COMANDI LIV 6 Scomposizione indicativa dei livelli di un S.O ( struttura a cipolla di un S.O ) Escluso il livello 0, ogni livello realizza le quattro funzioni fondamentali di gestione della risorsa ; con possibilità di accesso a tuuti i livelli inferiori secondo il concetto di macchina virtuale. Autore Flavio Cerini 7

8 FUNZIONI DEI LIVELLI Nucleo o Kernel 1) Conoscere lo stato del del processore e dei programmi in attesa ; il programma che si occupa di ciò é il traffic controller 2) Decidere chi può utilizzare il processore ( job scheduler ) nel caso di multiprogrammazione ( process scheduler ) 3) Allocare la risorsa secondo indicazioni definite in precedenza 4) Rilasciare il processore secondo indicazioni definite in precedenza GESTIONE DELLA MEMORIA CENTRALE 1) Conoscere lo stato della memoria, quali parti sono in uso e quali sono libere 2) In caso di multiprogrammazione, decidere chi dovrà avere spazio in memoria centrale, quando e quanto 3) Allocare la memoria secondo i criteri stabiliti 4) Rilasciare ( deallocare ) la memoria quando non serve più GESTIONE DELL I/O 1) Conoscere lo stato delle periferiche ( I/O traffic controller ) 2) Decidere le modalità di assegnazione delle periferiche ai programmi ( I/O scheduler ) 3) Allocare la risorsa e dare inizio all operazione di I/O 4) Rilasciare la periferica GESTIONE DELLA MEMORIA DI MASSA 1) Conoscere lo stato dei dispositivi di memoria di massa, il loro uso, il modo di accesso ( file system ) 2) Decidere chi potrà utilizzare le utility secondo le caratteristiche specifiche del prodotto. 3) Allocare la funzione utility ( es lanciare software relativo ) 4) Rilasciare la risorsa ( es chiudere la funzione ) INTERPRETE COMANDI 1) Conoscere lo stato dei moduli di sistema esistenti e disponibili per le chiamate dell utente 2) Decidere le tecniche di chiamata delle funzionalità di sistema Autore Flavio Cerini 8

9 3) Esaudire la chiamata 4) Rilasciare la risorsa NB non ci sono necessariamente 6 livelli gerarchici. In tutti i sistemi operativi moderni resta pero valido il concetto dei livelli virtuali e le loro assegnazioni ESEMPIO DOS HARDWARE LIV 0 BIOS LIV 1 DOS LIV 2 Bios : parte bassa de nucleo ( il colloquio con HW avviene tramite INT software ) Dos rappresenta una sintesi dei livelli di astrazione superiori visti precedentemente ( schema generale ). Il modulo IBMBIO ( parte inferiore che completa il nucleo e arriva alla gestione dell I/O. IBMDOS costituisce fondamentalmente il file system Il livello command del DOS é l interprete comandio STATI DI UN PROCESSO Esistono concettualmente due stati per un processo : esecuzione e bloccato a questi si aggiunge uno stato di pronto per motivi di limitazione di risorse ( CPU ). Un processo transita durante la suia vita tra questi stati. E compito del sistema operativo ( nucleo o kernel ) gestire la transizione CICLO DI VITA DI UN PROCESSO Autore Flavio Cerini 9

10 Supponiamo di trovarci in un ambiente multiprogrammato. Quando il job viene mandato in esecuzione ( mandando in esecuzione il programma ), siamo nello stato di lancio Al termine dell esecuzione siamo nello stato di terminato ( vedi Fig. ) 2 PRONTO 1 ACQUISIZIONE LANCIO ATTESA OPP BLOCCO 5 ESECUZIONE 7 TERMINATO 1) ACQUISIZIONE : vengono analizzate tutte le singole richieste del job. Ogni richiesta é messa nella coda di attesa relativa e il programma viene caricato in memoria centrale. A questo punto il job scheduler controlla le richieste del singolo job e quando sono tutte esaudite tranne la CPU avviene il passaggio nello stato di pronto ( transizione 2 ) ( il S.O crea un processo job più risorsa richiesta ) 2) PRONTO : Coda di richieste della CPU ( gestita da process scheduler ). E la più importante da gestire. Una delle tecniche più usate é quella che assegna un intervallo di tempo fisso, senza priorità. Se alla fine del tempo, non ha terminato il lavoro, il processo si mette in fondo alla coda in attesa del prossimo turno. 3) ESECUZIONE : Il processo che in un certo istante é in cima alla coda, passa nello stato di esecuzione e Lavora col processore secondo le modalità definite dal gestore del processore. A questo punto si possono verificare alcune eventualità. Autore Flavio Cerini 10

11 a) Il processo ha finito il suo lavoro col processore prima dello scadere dell intervallo di tempo a sua disposizione b) Il processo non ha terminato il suo lavoro allo scadere dell intervallo a sua disposizione. c) Il processo deve bloccare temporaneamente il lavoro col processore perché ha bisogno, per poter continuare, di eventi di tipo diverso ( es letture opp operazioni di I/O ) a) In questo caso il processo passa tramite la freccia ( 7 ) nello stato di terminato rilasciando tutte le risorse in suo possesso b) Il processo é costretto a rilasciare il processore, ne ha comunque ancora bisogno, quindi tramite la freccia ( 4 ) torna a mettersi in coda per l uso del processore c) Tramite la freccia ( 5 ) passa nello stato di attesa dove resta congelato finché il modulo ( I/O traffic controller ) non gli consente di riprendere il lavoro facendolo passare nello stato di pronto ( 6 ) Esistono tre code ( acquisizione, pronto, attesa ) e il processo cicla fra pronto,esecuzione attesa. PROCESSI E RISORSE Un Job che acquisisce la propria risorsa diventa un processo. Il numero di risorse è limitato, quindi é compito del S.O garantire l avanzamento di tutti i processi senza che si generino sovrappposizioni e ambiguità. PROCESSI SEQUENZIALI Tutti i job vengono eseguiti nello stesso ordine in cui si trovano nel programma originale. Le risorse vengono acquisite secondo l ordine di richiesta. Il tempo di esecuzione complessivo è pari alla somma dei tempi di esecuzione dei vari job. Vantaggi : - SEMPLICITA DELLA SOLUZIONE - LINEARITA Svantaggi: - LUNGHI TEMPI DI INATTIVITA PER LE RISORSE -ATTESE DEI SINGOLI JOB prima di acquisire la loro risorsa e diventare sottoprocessi ( vedi Fig 1 ) Autore Flavio Cerini 11

12 J1 J2 J3 J4 J1 W J2 J3 W J4 t Fig.1 W = wait Si supponga di poter scomporre un processo in più job ( es : Li, Ei, Si ) che eseguono rispettivamente una lettura, eseguono una elaborazione e scrivono i risultati su di un supporto di memorizzazione. ( vedi Fig 2 ) L1 E1 S1 L2 E2 S2 L3 E3 S3 Fig 2 ESEMPIO DI PROCESSO Si può prevedere una organizzazione in processi non sequenziali. Per esempio si può eseguire l elaborazione E2 prima di S1 ma non prima di L2. Si deve tener conto di un diagramma delle precedenze. ( vedi Fig 3 ) Autore Flavio Cerini 12

13 L1 L2 E1 L3 E2 S1 L4 E3 S2 S3 Fig.3 DIAGRAMMA DELLE PRECEDENZE I processi non sequenziali,ordinati secondo dei diagrammi di precedenza, allargano il concetto di esecuzione sequenziale. Nel senso che certe operazioni, legate a risorse distinte, possono essere eseguite contemporaneamente con un evidente risparmio di tempo di esecuzione totale. PROGRAMMAZIONE PARALLELA Una tecnica che prevede la realizzazione di processi non sequenziali, si chiama PROGRAMMAZIONE PARALLELA e si può definire attraverso i seguenti costrutti linguistici : COROUTINE FORK / JOIN COBEGIN / COEND COROUTINE : Assomiglia molto al salto a procedura. La differenza sta nel fatto che non c è l obbligo di ritorno dalla procedura chiamante alla chiamata. L istruzione RESUME consente il passaggio da una COROUTINE ad un altra. Quando si incontra una istruzione di RESUME il controllo passa alla COROUTINE indicata e la precedente si blocca. NB : tale costrutto non realizza una vera programmazione parallela INTERLEAVING ma un Autore Flavio Cerini 13

14 ( avanzamernto alternato) tra più processi. Ci si illude di lavorare in parallelo. ( vedi Fig 4) Fig 4 COSTRUTTO COROUTINE COROUTINE PR1; COROUTINE PR2 ; COROUTINE PR3 ; RESUME PR2 ; RESUME PR3 ; RESUME PR2 ; END. RESUME PR1 ; END. END. FORK / JOIN : Questo costrutto realizza una vera esecuzione parallela dei processi ed é presente in diversi S.O ( es UNIX ). L istruzione FORK produce l attivazione del processo indicato in modo parallelo rispetto al processo chiamante ; l esecuzione torna ad essere sequenziale quando il processo chiamante presenta l istruzione JOIN. A questo punto se il processo chiamato è terminato, il processo chiamante continua il suo lavoro ; se non è terminato, il chiamante attende il termine del processo chiamato. ( vedi Fig.5) Fig. 5 COSTRUTTO FORK / JOIN PROCESS PR1 ; PROCESS PR2 ; FORK PR2 ; END. JOIN PR2 ; END. Autore Flavio Cerini 14

15 Una tipica applicazione del costrutto FORK / JOIN riguarda le operazioni che coinvolgono periferiche distinte ( vedi Fig 6). Si può pensare di dover leggere dei dati da un file su disco e di dover fare dei calcoli statistici su di essi e dover riportare tutto su stampante Si può pensare di effettuare la lettura dei dati ed eseguire parallelamente i calcoli e la stampa dei dati letti, successivamente si possono stampare i risultati. Fig. 6 PR_A Leggi da disco FORK B PR_A PR_B PR_A PR_B stampa dati Leggi dati Stampa dati calcola risultati disaggregati FORK B Calcola risultati JOIN B END PR_A stampa risultati JOIN B Stampa risultati COBEGIN / COEND Tale costrutto prevede l esecuzione parallela di singole istruzioni. La sintassi generale é la seguente : program PR ; Istruzione I0; cobegin I1;I2;...;In; coend Autore Flavio Cerini 15

16 end NB: E possibile indicare le singole istruzioni che devono essere eseguite in modo parallelo. In questo caso si parla di parallelizzazione di singole istruzioni all interno di un unico processo e non di esecuzione contemporanea di parti di processi distinti. Il problema maggiore a questo punto è la SINCRONIZZAZIONE. E fondamentale la gestione della programmazione concorrente CONCORRENZA Quando si parla di concorrenza, si fa riferimento a processi che si trovano a competere ( a concorrere ) per aggiudicarsi una stessa risorsa. Con il termine programmi concorrenti si intendono dei processi che richiedono la stessa risorsa nello stesso istante. A volte la risorsa può essere condivisa tra tutti i richiedenti, ma nella maggior parte dei casi il sistema deve utilizzare delle tecniche e degli strumenti ( fondamentalmente software ) per regolare le assegnazioni. I processi concorrenti si possono trovare in una di queste relazioni : a) COOPERAZIONE b) COMPETIZIONE c) INTERFERENZA a) COOPERAZIONE (vedi Fig 7) : due processi si dicono in cooperazione se tra di loro c è un legame logico ; caso classico : PRODUTTORE-CONSUMATORE. Un processo P produce dei dati che vengono inseriti in un area di buffer ( BUFF), un secondo processo C legge i dati dall area buffer e li elabora ottenendo dei risultati. Ovviamente il processo C deve leggere da BUF solo dopo che P ha inserito dei dati. Tale operazione può essere ciclica ma deve essere ripetuta nell ordine giusto altrimenti le operazioni non avvengono correttamente. Sequenza giusta : PCPCPCPC....Sequenza errata : PPCC... Fig. 7 Processi PRODUTTORE e CONSUMATORE Autore Flavio Cerini 16

17 Generazione dati Lettura da BUFFER Scrittura in BUFFER Operazioni sui dati PRODUTTORE CONSUMATORE b) COMPETIZIONE : Due processi in competizione sono indipendenti da un punto di vista logico, sono invece dipendenti avendo la necessità di appropriarsi di una risorsa comune (con molteplicità limitata ) I tempi di completamento del lavoro possono dipendere sensibilmente da tale competizione. Un esempio può essere quello della mutua esclusione nella quale l acquisizione di una risorsa é esclusiva di un processo con conseguente attesa di tutti gli altri processi richiedenti. c) INTERFERENZA : Questo caso rappresenta una degenerazione della COMPETIZIONE. Ci troviamo in tale situazione quando il risultato dei processi dipende dalla sequenza temporale di utilizzo di certe risorse del sistema da parte di tutti i processi che le richiedono. Si deve fare in modo che i processi si aggiudichino la risorsa solo in istanti precisi,e non la rilascino in momenti critici del loro lavoro. Nessun processo deve togliere una risorsa ad un altro processo in modo incontrollato ( pensare ad ad una operazione di stampa interrotta da un altra operazione di stampa). Se le risorse sono acquisite in modo disordinato, può capitare che i processi lavorino su dati elaborati da altri e quindi facendo eseguire il programma più volte, gli utenti ottengano risultati sempre diversi. Gli erori di questo tipo sono difficili da identificare perché il lavoro é sintatticamente corretto. NB : si devono sincronizzare tutte le operazioni sulle risorse a rischio. Autore Flavio Cerini 17

18 IL NUCLEO ( kernel ) Il nucleo é il livello più vicino alla macchina ( hardware ). Le sue funzioni sono fondamentali per il funzionamento complessivo del sistema. Le funzionalità del nucleo sono richieste principalmente nei seguenti stati : PRONTO, ATTESA, ESECUZIONE. FUNZIONI PRINCIPALI SVOLTE DAL NUCLEO Implementazione della sincronizzazione, tramite funzioni primitive, per consentire le transizioni di stato dei job e dei processi Scelta del processo destinato a passare dalla coda di PRONTO allo stato di ESECUZIONE in base alla strategia scelta dal gestore del processore. Gestione delle interruzioni con salvataggio e ripristino dello stato della macchina. Il JOB-SCHEDULER sceglie il job che deve acquisire il processore tra quelli presenti nella coda di PRONTO : viene recuperato il valore del puntatore al processo in modo da identificarne l indirizzo reale. Il PROCESS-SCHEDULER applica la strategia di allocazione. La tecnica più semplice è quella FIFO ( rispetta l ordine di arrivo delle richieste ). INTERRUZIONI LEGATE AL SISTEMA OPERATIVO 1) I/O INTERRUPT : comando di I/O errato,canale o dispositivo non correttamente connesso 2) PROGRAM INTERRUPT: istruzione errata di CPU, overflow,violazione delle aree di memoria protette 3) SUPERVISOR CALL INTERRUPT : chiamata asincrona da un modulo supervisore di priorità superiore 4) EXTERNAL INTERRUPT : fine del tempo a disposizione, tasto di interruzione da da operatore ; 5) HARDWARE INTERRUPT : interruzione causata da guasto hardware I SEMAFORI Autore Flavio Cerini 18

19 Quando ci sono problemi di competizione, servono dei meccanismi di sincronizzazione. Non ci sarebbe nessun problema se ogni processo tenesse una risorsa per tutta la durata del lavoro, ma non sarebbe conveniente. La competizione, può essere relativa a certe zone di programma che vanno preservate da interruzioni indesiderate. Tali zone di programma vengono chiamate : ZONE CRITICHE ( esempi di zone critiche : non si può interrompere una operazione di stampa per eseguirne un altra ; non si può leggere un file mentre si sta modificando il suo contenuto ; oppure la scrittura in un area buffer prima che sia terminata la lettura del blocco di dati scritto nel buffer precedentemente. La tecnica principale per gestire una zona critica é basata sul principio del SEMAFORO. IL SEMAFORO :utilizza due procedure elementari ( primitive di sincronizzazione vedi Fig 8 ) Tali procedure utilizzano una variabile S il cui valore viene sempre controllato prima di accedere alla risorsa critica ( risorsa il cui uso può generare delle zone critiche). Se la variabile - semaforo ha il valore giusto, la risorsa può essere allocata e il processo può proseguire, in caso contrario, il processo si porrà in stato di attesa Fig. 8 Le primitive di semaforo P(S) V(S) False S = 1 True S : = 1 S: = 0 Autore Flavio Cerini 19

20 Il semaforo é rappresentato dalla variabile binaria S che negli schemi funge da parametro per le due procedure P(S) e V(S). Se la variabile S = 0 la risorsa critica é occupata e si deve attendere che venga rilasciata. Se S= 1 la risorsa può essere allocata. La procedura P(S) viene richiamata dal processo che richiede una risorsa, se S= 1 la risorsa é libera e viene allocata al processo richiedente e il semaforo viene impostato al valore 0. Se S = 0, la procedura ripete il controllo finché non trova il valore 1. La procedura V(S) viene richiamata da un processo che vuole rilasciare una risorsa in suo possesso. La Procedura pone S = 1 ed incarica il SO del rilascio della risorsa PRODUTTORE CONSUMATORE Si può risolvere con utilizzo di due semafori S1 e S2 ( vedi Fig 9 ) Si deve fare attenzione, oltre all accesso esclusivo alla risorsa, si deve anche fare in modo che non si legga dal buffer prima di aver terminato la scrittura. Si può considerare un semaforo S1 che controlla l accesso in scrittura e un semaforo S2 che controlla l accesso in lettura. Fig. 9 Scrittura - Lettura in un buffer Inizializzazione : S1: = 1 ; S2 : = 0 PRODUTTORE CONSUMATORE GENERAZIONE DATI P(S2) P(S1) SCRITTURA NEL BUFFER LETTURA DAL BUFFER V(S1) V(S2) OPERAZIONI SUI DATI Autore Flavio Cerini 20

21 L inizializzazione permette al processo produttore di accedere al buffer ( S1=1) e preclude la lettura (S2=0). Il processo produttore lavora, generando dei dati, S1 diventa 0 con l esecuzione di P(S1) alla fine si apre la possibilità di lettura bloccando la scrittura. Il processo Consumatore, ottenuto il permesso di accesso, legge dal buffer e, prima di iniziare la elaborazione dei dati acquisiti, libera l accesso in scrittura ( con procedura V(S1) ), in tal modo si risparmia tempo poichè mentre si fa elaborazione dati ne possono essere inseriti altri nel buffer SEMAFORO GENERALIZZATO Se il sistema deve gestire una risorsa che é oggetto di contesa, si può ricorrere alla tecnica del semaforo generalizzato. La variabile semaforo non é più binaria ma é un semplice contatore delle unità disponibili della risorsa. Se il valore della variabile é 0 nessuna unità della risorsa é disponibile, altrimenti é possibile effettuare un allocazione. Il numero massimo che può assumere la variabile semaforo coincide con il numero di unità presenti nel sistema. Nel caso di un produttore-consumatore con tre buffer, i due semafori hanno valore massimo tre. ( vedi Fig 10 ). Nel caso di quattro stampanti che consentono il lavoro di otto persone in multiutenza ; un semaforo generalizzato impostato al valore 4 regola l accesso ai dispositivi. Si utilizzano ancora le procedure P(S) e V(S) ( vedi Fig 11 ). La procedura P(S) contiene un test che controlla il valore del contatore ; se S > 0 ci sono ancora unità libere. L allocazione comporta un decremento del numero di unità disponibili. La procedura V(S), relativa al rilascio della risorsa, contiene l incremento del numero di unità disponibili. Le procedure P(S) e V(S) sono le operazioni di base per la gestione dei meccanismi di sincronizzazione degli accessi. Fig. 10 Semafori generalizzati P(S) V(S) False S >0 True S : = S + 1 S : = S - 1 Autore Flavio Cerini 21

22 PRINCIPI DI PROGRAMMAZIONE CONCORRENTE DEFINIZIONE DI STALLO ( nel gioco degli scacchi : nessuno dei giocatori da scacco matto ) : Un sistema di elaborazione si dice in condizione di STALLO se nessuno dei processi in corso riesce a portare a termine il suo lavoro. Supponiamo di avere due processi P1 e P2 ( vedi Fig 12 ). che lavorano rispettivamente con le risorse RISORSA_1 e RISORSA_2.Ad un certo istante il processo P1 ha bisogno di dati prodotti dalla RISORSA_2 e si mette in stato di attesa. Contemporaneamente il processo P2 necessita della RISORSA_1 e aspettando che si liberi si mette in stato di attesa. I due processi sono in attesa a tempo indeterminato. Fig 12 Processi in stato di stallo PROCESSO P1 RISORSA R1 RISORSA R2 PROCESSO P2 Le frecce che vanno dalla risorsa al processo indicano che la risorsa é assegnata al processo, mentre le frecce che vanno dal processo alla risorsa indicano che la risorsa é stata richiesta dal processo. Questo modo di rappresentare la relazione tra processi e risorse si chiama GRAFO DI ALLOCAZIONE delle risorse. Autore Flavio Cerini 22

23 IL PROBLEMA DELLO STALLO ( DEADLOCK ) Un problema fondamentale che deve affrontare un sistema operativo é quello relativo al controllo delle zone critiche ( contengono delle azioni indivisibili e le risorse richieste vengono rilasciate solo a fine esecuzione ). In questa situazione insorgere uno stato di DEADLOCK. Lo stato di deadlock si può presentare anche nel caso di superamento della molteplicità di una risorsa ( semaforo generalizzato ), cioé il numero massimo di processi che possono lavorare contemporaneamente con la risorsa stessa oppure il numero di esemplari presenti di una risorsa che non può essere condivisa. SITUAZIONI NELLE QUALI SI PUO GENERARE UN DEADLOCK Mutua esclusione ( nelle zone critiche le risorse vengono rilasciate solo a fine lavoro ) Superamento della molteplicità di una risorsa Allocazione parziale : il processo non impegna, all inizio del blocco critico, tutte le risorse di cui avrà bisogno ma le richiederà via via che serviranno Negazione del prerilascio forzato : il sistema non é abilitato a sottrarre forzatamente la risorsa al processo per evitare uno stallo Attesa circolare : esiste una lista di processi ognuno dei quali é in attesa di acquisire una risorsa che é in possesso del seguente. Il risultato é un deadlock del sistema. GESTIONE DEL PROBLEMA DELLO STALLO PREVENZIONE : Il sistema deve capire quando esistono le condizioni per la nascita di un deadlock. In effetti un eccessivo controllo produce un rallentamento del sistema forse non giustificato considerato che il DEADLOCK si verifica molto raramente. Autore Flavio Cerini 23

24 RICONOSCIMENTO : Il sistema deve riconoscere quando il sistema di elaborazione si trova in una situazione di stallo. Una volta effettuata la rilevazione si deve effettuare un recupero ( recovery ) dello stato del sistema subito prima dello stallo. Il riconoscimento e il recovery sono operazioni molto complesse PREVENZIONE : la prevenzione propone le seguenti tecniche : a) Allocazione globale delle risorse b) Allocazione gerarchica c) Algoritmo del banchiere a) Le risorse necessarie ad un processo gli vengono assegnate tutte insieme solo quando sono tutte libere ; in mancanza di tale situazione il sistema resta in attesa. In questo modo però qualche processo che ha urgenza di una risorsa può restare in attesa molto a lungo e si possono avere anche rallentamenti notevoli nell esecuzione di un processo. b) Si considera un ordine gerarchico delle risorse. Se un processo possiede una risorsa di un certo livello, può acquisire solo risorse di livello superiore. se deve acquisire una risorsa a livello inferiore, deve prima rilasciare quella che possiede e richiederla successivamente. c) Questo algoritmo consiste nello scegliere un allocazione che consente ad almeno un processo di poter lavorare e concludere. LA GESTIONE DELLA MEMORIA AMBIENTE MONOPROGRAMMATO ( monoprogrammazione ) In ambiente monoprogrammato é possibile far girare un solo programma per volta. Tutte le risorse sono dedicate all unico programma residente in memoria. Non esiste il problema della concorrenza e il S.O risulta abbastanza semplice. Abbastanza semplice risulta anche la gestione della memoria centrale. La memoria centrale é divisa in non più di tre aree : a) Area contenente i moduli software del S.O b) Area contenente il programma utente da eseguire c) Area differenza fra Area totale a disposizione dell utente e Area occupata dal programma caricato. Tale Area resta vuota e non utilizzabile. ALLOCAZIONE SINGOLA CONTIGUA ( vedi Fig. 13 ) Autore Flavio Cerini 24

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

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

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

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

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

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

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

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

Sistemi Operativi. 5 Gestione della memoria

Sistemi Operativi. 5 Gestione della memoria Gestione della memoria Compiti del gestore della memoria: Tenere traccia di quali parti della memoria sono libere e quali occupate. Allocare memoria ai processi che ne hanno bisogno. Deallocare la memoria

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

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi 1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi Il processo E' un programma in esecuzione Tipi di processo Stati di un processo 1 indipendenti

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

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

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

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

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

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

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

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

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09 SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli

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

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

LA GESTIONE DELLA MEMORIA

LA GESTIONE DELLA MEMORIA LA GESTIONE DELLA MEMORIA Ambiente Monoprogrammato (monoprogrammazione) In ambiente monoprogrammato é possibile far girare un solo programma per volta. Tutte le risorse sono dedicate all unico programma

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

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi Software relazione Hardware Software di base Software applicativo Bios Sistema operativo Programmi applicativi Software di base Sistema operativo Bios Utility di sistema software Software applicativo Programmi

Dettagli

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore. I processi Cos è un processo? Un processo è una attività, controllata da un programma, che si svolge su un processore. Il programma è una entità statica che descrive la sequenza di istruzioni che devono

Dettagli

Sistemi Operativi Kernel

Sistemi Operativi Kernel Approfondimento Sistemi Operativi Kernel Kernel del Sistema Operativo Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Il Software. Il software del PC. Il BIOS

Il Software. Il software del PC. Il BIOS Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

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

Gestione della Memoria

Gestione della Memoria Gestione della Memoria Idealmente la memoria dovrebbe essere grande veloce non volatile Gerarchia di memorie Disco: capiente, lento, non volatile ed economico Memoria principale: volatile, mediamente grande,

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

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

Infrastrutture Software

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

Dettagli

Informatica: il sistema operativo

Informatica: il sistema operativo pierpaolo.vittorini@cc.univaq.it Università degli Studi dell Aquila Facoltà di Medicina e Chirurgia 6 ottobre 2006 Il software Il software è l insieme dei programmi che operano sul calcolatore Software

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

Sistemi operativi. Esempi di sistemi operativi

Sistemi operativi. Esempi di sistemi operativi Sistemi operativi Un sistema operativo è un programma che facilita la gestione di un computer Si occupa della gestione di tutto il sistema permettendo l interazione con l utente In particolare un sistema

Dettagli

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1 GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno

Dettagli

Le Infrastrutture Software ed il Sistema Operativo

Le Infrastrutture Software ed il Sistema Operativo Le Infrastrutture Software ed il Sistema Operativo Corso di Informatica CdL: Chimica Claudia d'amato claudia.damato@di.uniba.it Il Sistema Operativo (S0) (Inf.) E' l'insieme dei programmi che consentono

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle

Dettagli

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU Il sistema operativo Sistema operativo Gestione della CPU Primi elaboratori: Monoprogrammati: un solo programma in memoria centrale Privi di sistema operativo Gestione dell hardware da parte degli utenti

Dettagli

I THREAD O PROCESSI LEGGERI Generalità

I THREAD O PROCESSI LEGGERI Generalità I THREAD O PROCESSI LEGGERI Generalità Thread: segmento di codice (funzione) Ogni processo ha un proprio SPAZIO DI INDIRIZZAMENTO (area di memoria) Tutti i thread genereti dallo stesso processo condividono

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

Deadlock (stallo) Parte III. Deadlock

Deadlock (stallo) Parte III. Deadlock Parte III Deadlock Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 III - 1 Deadlock (stallo) Su di un tavolo ci sono un piatto ed una forchetta A e B sono seduti al tavolo, per mangiare ciascuno

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

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Tecnologia di un Database Server (centralizzato) Gestione del buffer

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

Dettagli

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

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

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

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

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

In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori.

In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori. Release 5.20 Manuale Operativo ORDINI PLUS Gestione delle richieste di acquisto In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori. La gestione

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

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa Il File System 1 Il file system E quella componente del SO che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa Realizza i concetti astratti

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

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

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

J. Assfalg Appunti di Sistemi Operativi

J. Assfalg Appunti di Sistemi Operativi Multiprogrammazione J. Assfalg Appunti di Sistemi Operativi La multiprogrammazione nasce come un metodo per massimizzare l'uso della CPU piuttosto che come uno strumento per fornire un miglior servizio

Dettagli

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3

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

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono

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

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

TEORIA DEI SISTEMI OPERATIVI

TEORIA DEI SISTEMI OPERATIVI TEORIA DEI SISTEMI OPERATIVI Classificazione dei sistemi operativi (Sistemi dedicati, Sistemi batch, Sistemi interattivi multiutente) CLASSIFICAZIONE DEI SISTEMI OPERATIVI Le tre principali configurazioni

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

Corso di Programmazione Concorrente

Corso di Programmazione Concorrente Corso di Programmazione Concorrente Stallo Valter Crescenzi crescenz@dia.uniroma3.it http://www.dia.uniroma3.it/~crescenz Assunzione di Progresso Finito Tutti i processori virtuali hanno una velocità finita

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

SISTEMI OPERATIVI. Deadlock (blocco critico) Domande di verifica. Luca Orrù Centro Multimediale Montiferru 04/06/2007

SISTEMI OPERATIVI. Deadlock (blocco critico) Domande di verifica. Luca Orrù Centro Multimediale Montiferru 04/06/2007 2007 SISTEMI OPERATIVI Deadlock (blocco critico) Domande di verifica Luca Orrù Centro Multimediale Montiferru 04/06/2007 Deadlock (blocco critico) 1. Si descriva il deadlock e le condizioni sotto cui si

Dettagli

Il File System. Il file system

Il File System. Il file system Il File System Il file system Parte di SO che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa Realizza i concetti astratti di file:

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

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione Introduzione Fondamenti di Informatica: Sistemi Operativi 1 Elaboratori necessitano di SOFTWARE SOFTWARE DI SISTEMA (SISTEMI OPERATIVI): fanno funzionare le varie componenti del computer e permettono all

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Base di dati e sistemi informativi

Base di dati e sistemi informativi Base di dati e sistemi informativi Una base di dati è un insieme organizzato di dati opportunamente strutturato per lo svolgimento di determinate attività La base di dati è un elemento fondamentale per

Dettagli

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 60 minuti dalla sua

Dettagli

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale Calcolatori Elettronici La memoria gerarchica La memoria virtuale Come usare la memoria secondaria oltre che per conservare permanentemente dati e programmi Idea Tenere parte del codice in mem princ e

Dettagli

Introduzione al data base

Introduzione al data base Introduzione al data base L Informatica è quella disciplina che si occupa del trattamento automatico dei dati con l ausilio del computer. Trattare i dati significa: raccoglierli, elaborarli e conservarli

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un programma, cioè di una sequenza di istruzioni descritte nel linguaggio interpretabile dal calcolatore

Dettagli

Capitolo 11 -- Silberschatz

Capitolo 11 -- Silberschatz Implementazione del File System Capitolo 11 -- Silberschatz Implementazione del File System File system: Definizione dell aspetto del sistema agli occhi dell utente Algoritmi e strutture dati che permettono

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Processi e Thread. Scheduling (Schedulazione)

Processi e Thread. Scheduling (Schedulazione) Processi e Thread Scheduling (Schedulazione) 1 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L

Dettagli

TITLE Sistemi Operativi 1

TITLE Sistemi Operativi 1 TITLE Sistemi Operativi 1 Cos'è un sistema operativo Definizione: Un sistema operativo è un programma che controlla l'esecuzione di programmi applicativi e agisce come interfaccia tra le applicazioni e

Dettagli

Analisi e diagramma di Pareto

Analisi e diagramma di Pareto Analisi e diagramma di Pareto L'analisi di Pareto è una metodologia statistica utilizzata per individuare i problemi più rilevanti nella situazione in esame e quindi le priorità di intervento. L'obiettivo

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

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

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

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1 PROGRAMMA GESTIONE TURNI MANUALE UTENTE INDICE 1 PREMESSA 3 2 COMANDI COMUNI 3 3 SEDI 3 4 FESTIVITÀ 4 5 PERIODI TURNI 4 6 COD. TURNI 6 7 TURNI SPORTIVI 9 8 COD. EQUIPAGGI 9 9 DISPONIBILITÀ 10 10 INDISPONIBILITÀ

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Gestione delle transazioni Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Transazioni v L esecuzione concorrente dei programmi utente è essenziale per le buone prestazioni del DBMS Poiché

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

SCHEDULATORI DI PROCESSO

SCHEDULATORI DI PROCESSO Indice 5 SCHEDULATORI DI PROCESSO...1 5.1 Schedulatore Round Robin...1 5.2 Schedulatore a priorità...2 5.2.1 Schedulatore a code multiple...3 5.3 Schedulatore Shortest Job First...3 i 5 SCHEDULATORI DI

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P 1 2 0 0 P 1 1 2 2 3 3 2 P 2 3 0 2 P 2 6 0 0 P 3 2 1 1 P 3 0 1 1 < P 1, >

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P 1 2 0 0 P 1 1 2 2 3 3 2 P 2 3 0 2 P 2 6 0 0 P 3 2 1 1 P 3 0 1 1 < P 1, > Algoritmo del banchiere Permette di gestire istanze multiple di una risorsa (a differenza dell algoritmo con grafo di allocazione risorse). Ciascun processo deve dichiarare a priori il massimo impiego

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Architettura hardware

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

Dettagli

Corso di Sistemi 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

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso 2.0 Gli archivi All interno della sezione archivi sono inserite le anagrafiche. In pratica si stratta di tutti quei dati che ricorreranno costantemente all interno dei documenti. 2.1 Inserire gli archivi

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli