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

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

Il supporto al Sistema Operativo

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

Dettagli

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

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

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

40. Le transizioni fra stati Lo schema di transizione fra stati può essere rappresentato graficamente nel modo seguente :

40. Le transizioni fra stati Lo schema di transizione fra stati può essere rappresentato graficamente nel modo seguente : 32. Il Sistema Operativo : definizione e struttura Il SO è un insieme di programmi le cui funzioni principali sono costituire un interfaccia tra la macchina e l utente e gestire in modo ottimale le risorse

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

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

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Cos è un Sistema Operativo? Per capirlo, immaginiamo inizialmente

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

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

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

Cosa è un Sistema Operativo (S.O.)

Cosa è un Sistema Operativo (S.O.) Cosa è un Sistema Operativo (S.O.) Modulo software costituito da un insieme di programmi per: permettere all utente l uso dell elaboratore senza la conoscenza approfondita dell hardware S.O. supporto all

Dettagli

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base) Sistema Operativo (Software di base) Il Sistema Operativo Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei dati attraverso

Dettagli

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

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

Dettagli

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007 2007 SISTEMI OPERATIVI Gestione della memoria Domande di verifica Luca Orrù Centro Multimediale Montiferru 18/06/2007 Gestione della memoria 1. Si descriva il concetto di memoria virtuale (esame del 19-06-2006)

Dettagli

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

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

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

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

Dettagli

IL SISTEMA OPERATIVO

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

Dettagli

1. I dispositivi periferici

1. I dispositivi periferici La gestione dell I/O 1. I dispositivi periferici Un ulteriore aspetto fondamentale del SO è la gestione dei dispositivi periferici (periferiche) Dal punto di vista del sistema operativo per periferiche

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

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il Sistema Operativo Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Cos

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

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

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Funzioni dei Sistemi Operativi!2 Le funzioni principali del SO Gestire le risorse dell elaboratore

Dettagli

Indice. settembre 2008 Il File System 2

Indice. settembre 2008 Il File System 2 Il File System Indice 4. Il File System 5. Vantaggi del FS 6. Protezione 7. Condivisione 8. I file - 1 9. I file - 2 10. Attributi dei file 11. Directory 12. Livelli di astrazione - 1 13. Livelli di astrazione

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi a.a. 2010/2011 Francesco Fontanella Il Sistema Operativo Sistema Operativo 2 Il Sistema Operativo Il Sistema Operativo è uno strato

Dettagli

Cos e` un Sistema Operativo? Cos è un sistema operativo?

Cos e` un Sistema Operativo? Cos è un sistema operativo? Cos e` un Sistema Operativo? È un programma (o un insieme di programmi) che agisce come intermediario tra l utente e l hardware del computer: fornisce un ambiente di sviluppo e di esecuzione per i programmi

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

Definizione e storia dei sistemi operativi

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

Dettagli

Funzioni del Sistema Operativo

Funzioni del Sistema Operativo Il Software I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (ferramenta). La struttura del calcolatore può essere schematizzata come una serie di

Dettagli

Il Sistema Operativo (1)

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

Dettagli

Software che sovrintende al funzionamento del computer eseguendo compiti diversi:

Software che sovrintende al funzionamento del computer eseguendo compiti diversi: Sistema Operativo dispensa a cura di Alessandro Bellini Software che sovrintende al funzionamento del computer eseguendo compiti diversi: 1. Gestire interazione utente macchina 2. Fornire un interfaccia

Dettagli

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi Evoluzione dei sistemi operativi (4) Sistemi multiprogrammati! più programmi sono caricati in contemporaneamente, e l elaborazione passa periodicamente dall uno all altro Evoluzione dei sistemi operativi

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

Processo - generalità

Processo - generalità I processi Processo - generalità Astrazione di un attività; Entità attiva che ha un suo percorso evolutivo; Attività = azione dedicata al raggiungimento di uno scopo Il processo esegue istruzioni per svolgere

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

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

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

Dettagli

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

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

Dettagli

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. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007

SISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007 2007 SISTEMI OPERATIVI Sincronizzazione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 30/05/2007 Sincronizzazione dei processi 1. Si descrivano i tipi di interazione tra processi?

Dettagli

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Il software di base Software

Dettagli

Il Sistema Operativo Introduzione Gestione dei processi Gestione della memoria Memoria cache (cenni) Informatica B Prof. A.

Il Sistema Operativo Introduzione Gestione dei processi Gestione della memoria Memoria cache (cenni) Informatica B Prof. A. Il Sistema Operativo Introduzione Gestione dei processi Gestione della memoria Memoria cache (cenni) Informatica B Prof. A. Morzenti Il sistema Operativo Il sistema operativo (SO) è uno strato software

Dettagli

SISTEMI OPERATIVI. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

SISTEMI OPERATIVI. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) Realizzazione del file system Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario Realizzazione

Dettagli

uomo Software (sistema operativo) hardware

uomo Software (sistema operativo) hardware uomo Software (sistema operativo) hardware 1 Sistema operativo Insieme di programmi che svolgono funzioni essenziali per l uso del sistema di elaborazione Questi programmi sono i primi ad essere eseguiti

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

DATA: 21-09-08 CLASSE: V a EL. TITOLO: ELABORAZIONE DEL SISTEMA OPERATIVO PER mp0

DATA: 21-09-08 CLASSE: V a EL. TITOLO: ELABORAZIONE DEL SISTEMA OPERATIVO PER mp0 DATA: 21-09-08 CLASSE: V a EL. TITOLO: ELABORAZIONE DEL SISTEMA OPERATIVO PER mp0 nelle lezioni precedenti abbiamo preso in esame tutte le caratteristiche e le funzionalità del microprocessore didattico

Dettagli

Sistemi Operativi. Il Sistema Operativo. Gestione Risorse (3) Gestione Risorse (2) Cos'è un sistema operativo? Utenti di un SO.

Sistemi Operativi. Il Sistema Operativo. Gestione Risorse (3) Gestione Risorse (2) Cos'è un sistema operativo? Utenti di un SO. Sistemi Operativi Il Sistema Operativo Corso di Informatica Generale (Roberto BASILI) Cos'è un sistema operativo? Un sistema operativo e': La astrazione logica del livello macchina hardware e microprogrammata

Dettagli

SISTEMI OPERATIVI. E il S.O. in funzione sul computer che consente all utente di poter avviare i programmi applicativi desiderati.

SISTEMI OPERATIVI. E il S.O. in funzione sul computer che consente all utente di poter avviare i programmi applicativi desiderati. SISTEMI OPERATIVI SOFTWARE DI BASE Il software di base comprende tutti quei programmi indispensabili ai fini del funzionamento dell elaboratore, per questo viene detto di base. I S.O. rientrano nella categoria

Dettagli

Tecniche Automatiche di Acquisizione Dati

Tecniche Automatiche di Acquisizione Dati Tecniche Automatiche di Acquisizione Dati Sistemi operativi Fabio Garufi - TAADF 2005-2006 1 Cosa sono i sistemi operativi I sistemi operativi sono dei programmi software che svolgono le funzioni di interfaccia

Dettagli

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!!

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! Buona lezione a tutti!! La dispensa è disponibile per tutti sul sito personale del Prof Simone al link: www.ascuoladi.135.it nella pagina programmazione, sezione 5Dx Indice degli argomenti del s.o. Software

Dettagli

La gestione della memoria

La gestione della memoria La gestione della memoria Nella gestione della memoria il sistema operativo deve perseguire l'obiettivo di allocare il maggior numero di processi in memoria centrale per aumentare la probabilità che ci

Dettagli

Introduzione ai sistemi operativi

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

Dettagli

MACCHINA DI VON NEUMANN

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

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Il software Dipartimento di Ingegneria dell Informazione Universitàdegli Studi di Parma SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono

Dettagli

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

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

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

Dettagli

Programmazione modulare 2012-2013

Programmazione modulare 2012-2013 Programmazione modulare 2012-2013 Indirizzo: Informatica Abacus Disciplina: SISTEMI DI ELABORAZIONE E TRASMISSIONE DELLE INFORMAZIONI Classe: A e B Docenti: Buscemi Letizia Ore settimanali previste: 5

Dettagli

Sistemi Operativi. Struttura astratta della memoria. Gerarchia dei dispositivi di. Memoria centrale. Memoria secondaria (di massa)

Sistemi Operativi. Struttura astratta della memoria. Gerarchia dei dispositivi di. Memoria centrale. Memoria secondaria (di massa) Struttura astratta della memoria Memoria centrale il solo dispositivo di memoria al quale la CPU puo accedere direttamente Memoria secondaria (di massa) Estensione della memoria centrale che fornisce grande

Dettagli

Calcolo numerico e programmazione. Sistemi operativi

Calcolo numerico e programmazione. Sistemi operativi Calcolo numerico e programmazione Sistemi operativi Tullio Facchinetti 25 maggio 2012 13:47 http://robot.unipv.it/toolleeo Sistemi operativi insieme di programmi che rendono

Dettagli

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

SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007 2007 SISTEMI OPERATIVI Gestione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 13/05/2007 Gestione dei processi 1. Qual è la differenza tra un programma e un processo? Un programma

Dettagli

La Memoria Virtuale Ottimizzazione della memoria centrale

La Memoria Virtuale Ottimizzazione della memoria centrale La Memoria Virtuale Ottimizzazione della memoria centrale 1) Introduzione- Gerarchia della memoria Da un punto di vista funzionale, ogni dispositivo di memorizzazione elettronica di informazioni presenta

Dettagli

Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2005 The McGraw-Hill Companies srl

Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2005 The McGraw-Hill Companies srl Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,

Dettagli

Lezione 5: Software. Firmware Sistema Operativo. Introduzione all'informatica - corso E

Lezione 5: Software. Firmware Sistema Operativo. Introduzione all'informatica - corso E Lezione 5: Software Firmware Sistema Operativo Architettura del Calcolatore La prima decomposizione di un calcolatore è relativa a due macrocomponenti: Hardware e Software Firmware: strato di (micro-)programmi

Dettagli

Sistema Operativo e Applicativi

Sistema Operativo e Applicativi Sistema Operativo e Applicativi Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Software A.A. 2012-2013 1 / 36 Software Conosciamo due classi di software: Programmi

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

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job.

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job. Di cosa parliamo in questa lezione? Lezione 4 Cosa è un processo e come viene gestito dal SO 1 e job 2 Il blocco di controllo Sistemi operativi 3 Struttura di un file eseguibile 4 La schedulazione dei

Dettagli

Introduzione all Informatica

Introduzione all Informatica Lezione 3 Davide Di Ruscio Alfonso Pierantonio Dipartimento di Informatica Università degli Studi dell Aquila Università degli Studi dell Aquila alfonso@di.univaq.it diruscio@di.univaq.it. Sommario 2 2»

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

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

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

Dettagli

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

Ingegneria Gestionale della logistica e produzione Prof. A. Palomba - Elementi di Informatica (J-Z)

Ingegneria Gestionale della logistica e produzione Prof. A. Palomba - Elementi di Informatica (J-Z) 2011-2012 Ingegneria Gestionale della logistica e produzione Prof. A. Palomba - Elementi di Informatica (J-Z) 13 Il Software Il sistema Operativo Il processo Lo scheduler dei processi Il S. O. e l utenza

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

Parte VI SISTEMI OPERATIVI

Parte VI SISTEMI OPERATIVI Parte VI SISTEMI OPERATIVI Sistema Operativo Ogni computer ha un sistema operativo necessario per eseguire gli altri programmi Il sistema operativo, fra l altro, è responsabile di riconoscere i comandi

Dettagli

Capitolo 7: Sincronizzazione

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

Dettagli

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

01/05/2014. Dalla precedente lezione. Ruolo dei sistemi operativi. Esecuzione dei programmi

01/05/2014. Dalla precedente lezione. Ruolo dei sistemi operativi. Esecuzione dei programmi Marco Lapegna Laboratorio di Programmazione Dalla precedente lezione 6. I sistemi operativi LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica I Sistemi Operativi Il linguaggi di programmazione

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

Processi. Laboratorio Software 2008-2009 C. Brandolese

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

Dettagli

CAPITOLO 27 SCAMBIO DI MESSAGGI

CAPITOLO 27 SCAMBIO DI MESSAGGI CAPITOLO 27 SCAMBIO DI MESSAGGI SCAMBIO DI MESSAGGI Sia che si guardi al microkernel, sia a SMP, sia ai sistemi distribuiti, Quando i processi interagiscono fra loro, devono soddisfare due requisiti fondamentali:

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII.UNISI.IT HTTP://WWW.DII.UNISI.IT/~RIGUTINI/

Dettagli

Il software. la parte contro cui si può solo imprecare. Il software

Il software. la parte contro cui si può solo imprecare. Il software Il software la parte contro cui si può solo imprecare Il software L hardware da solo non è sufficiente per il funzionamento dell elaboratore ma è necessario introdurre il software ovvero un insieme di

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

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

Il Software Il sistema Operativo Il processo Lo scheduler dei processi Il S. O. e l utenza Le modalità di elaborazione

Il Software Il sistema Operativo Il processo Lo scheduler dei processi Il S. O. e l utenza Le modalità di elaborazione Il Software Il sistema Operativo Il processo Lo scheduler dei processi Il S. O. e l utenza Le modalità di elaborazione Nella terminologia informatica esistono due termini che caratterizzano una prima valutazione

Dettagli

Sistemi Operativi: avvio

Sistemi Operativi: avvio Sistemi Operativi: avvio All avvio del computer, terminate le verifiche del BIOS, il controllo passa al sistema operativo. Il Sistema Operativo opera come intermediario tra l hardware del sistema e uno

Dettagli

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

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

Il Software... A.A. 2013-14 Informatica 96

Il Software... A.A. 2013-14 Informatica 96 Il Software... A.A. 2013-14 Informatica 96 Il software L hardware non è direttamente utilizzabile Sono necessari dei programmi per far svolgere delle funzioni all insieme di circuiti Informatica 97 Il

Dettagli

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Secondo biennio Articolazione Informatica TPSIT Prova Quarta Sistema operativo: gestione memoria centrale La Memoria Virtuale consente di superare i limiti della Memoria Centrale : A. no B. a volte C. si, ma non sempre e' adeguata D. si, attraverso tecniche di gestione

Dettagli

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche Sommario Definizione di S. O. Attività del S. O. Struttura del S. O. Il gestore dei processi: lo scheduler Sistemi Mono-Tasking e

Dettagli

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

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

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

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

UD 1.5c: Il Sistema Operativo (parte 1)

UD 1.5c: Il Sistema Operativo (parte 1) Prof. Alberto Postiglione Scienze della e Facoltà di Lettere e Filosofia Università degli Studi di Salerno UD 1.5c: Il Sistema Operativo (parte 1) Informatica Generale (Laurea in Scienze della e) Sistemi

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

Ingegneria Gestionale della logistica e produzione Prof. A. Palomba - Elementi di Informatica (DF-M)

Ingegneria Gestionale della logistica e produzione Prof. A. Palomba - Elementi di Informatica (DF-M) 2009-2010 Ingegneria Gestionale della logistica e produzione Prof. A. Palomba - Elementi di Informatica (DF-M) 12 Il Software Il sistema Operativo Il processo Lo scheduler dei processi Il S. O. e l utenza

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