Laboratorio di Informatica...

37
Walter Cazzola Lezione 2: Sistema Operativo 1 Laboratorio di Informatica (Chimica) Laboratorio di Informatica (Chimica) Lezione Lezione 02: Il 02: Il Sistema Sistema Operativo Operativo . . Walter Walter Cazzola Cazzola Dipartimento Dipartimento di di Informatica Informatica e e Comunicazione Comunicazione Universit Universit à degli Studi di Milano. à degli Studi di Milano. e e - - mail: mail: [email protected] [email protected]

Transcript of Laboratorio di Informatica...

Page 1: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 1

Laboratorio di Informatica (Chimica)Laboratorio di Informatica (Chimica)

LezioneLezione 02: Il 02: Il SistemaSistema OperativoOperativo..

Walter Walter CazzolaCazzolaDipartimentoDipartimento didi InformaticaInformatica e e ComunicazioneComunicazioneUniversitUniversità degli Studi di Milano.à degli Studi di Milano.

ee--mail: mail: [email protected]@dico.unimi.it

Page 2: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 2

Sistema OperativoSistema Operativo

Il Il sistema operativo sistema operativo è un insieme di programmi è un insieme di programmi che opera sul che opera sul livello macchinalivello macchina e offre e offre funzionalità di funzionalità di alto livelloalto livello

I sistemi operativi sono organizzati a stratiI sistemi operativi sono organizzati a stratiStrato = macchina virtuale che maschera la Strato = macchina virtuale che maschera la

macchina fisica (hardware)macchina fisica (hardware)

Page 3: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 3

Stratificazione del Stratificazione del Sistema OperativoSistema Operativo

HWHW

SistemaSistema OperativoOperativoCADCAD

GestioneGestione

BancaBanca

GestioneGestione BibliotecaBiblioteca

Compilato

ri

Compilato

riUt

ility

Utility

ShellShell

ProgrammiProgrammiApplicativiApplicativi

ProgrammiProgrammi didiSistemaSistema

Page 4: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 4

FunzionalitàFunzionalità

Possiamo identificare 5 strati tra macchina fisica Possiamo identificare 5 strati tra macchina fisica e utentee utente–– Gestore dei processiGestore dei processi–– Gestore della memoriaGestore della memoria–– Gestore delle perifericheGestore delle periferiche–– File systemFile system–– Interprete dei comandiInterprete dei comandi

Page 5: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 5

Gestore dei processiGestore dei processi

Gestisce l’esecuzione dei programmi Gestisce l’esecuzione dei programmi Le unità di esecuzione vengono chiamate processiLe unità di esecuzione vengono chiamate processiPer eseguire un programma occorre mantenere il Per eseguire un programma occorre mantenere il

corrispondente processo attivo nella CPUcorrispondente processo attivo nella CPUIn ambiente In ambiente multimulti--utenteutente il gestore deve decidere a il gestore deve decidere a

quale processo assegnare la CPUquale processo assegnare la CPUInoltre deve reagire agli eventi esterni (le interruzioni Inoltre deve reagire agli eventi esterni (le interruzioni

provenienti dalle periferiche)provenienti dalle periferiche)

Page 6: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 6

Cos’è un processo?Cos’è un processo?

ProgrammaProgramma = lista di istruzioni = nozione = lista di istruzioni = nozione staticastaticaProcessoProcesso = programma in esecuzione = programma in esecuzione

= programma = programma ++ stato corrente variabili stato corrente variabili = nozione = nozione dinamicadinamica

Stato Stato corrente=corrente=–– valori in memoria centralevalori in memoria centrale–– valori nei registri della CPUvalori nei registri della CPU

In un PC un solo processo in esecuzione alla voltaIn un PC un solo processo in esecuzione alla volta

Page 7: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 7

Gestore della memoriaGestore della memoria

Il gestore della memoria deve Il gestore della memoria deve –– allocare la memoria allocare la memoria –– partizionarlapartizionarla tra i processi che la richiedono tra i processi che la richiedono

Grazie al gestore della memoria gli strati superiori hanno Grazie al gestore della memoria gli strati superiori hanno l’illusione che ogni processo abbia una memoria l’illusione che ogni processo abbia una memoria dedicatadedicata

Page 8: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 8

Gestore delle perifericheGestore delle periferiche

Maschera le caratteristiche hardware delle periferiche Maschera le caratteristiche hardware delle periferiche Gestisce le operazioni di input e outputGestisce le operazioni di input e outputFornisce procedure ad alto livello Fornisce procedure ad alto livello

–– ad esempio per la lettura, scrittura di dati su memorie ad esempio per la lettura, scrittura di dati su memorie secondariesecondarie

–– scrittura su stampanti, eccscrittura su stampanti, ecc

Page 9: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 9

File SystemFile System

Gestisce i dati in memoria di massaGestisce i dati in memoria di massaStruttura i dati in modo gerarchico utilizzando Struttura i dati in modo gerarchico utilizzando

filefile e e directorydirectoryFornisce operazioni di alto livello per la gestione Fornisce operazioni di alto livello per la gestione

di file di file –– ad esempio creazione di un nuovo documento, ad esempio creazione di un nuovo documento, directory eccdirectory ecc

ProteggeProtegge i dati da accessi esternii dati da accessi esterniGarantisce la Garantisce la condivisionecondivisione sicurasicura dei datidei dati

Page 10: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 10

Interprete dei comandiInterprete dei comandi

Consente all’utente di attivare i programmiConsente all’utente di attivare i programmiSfrutta le funzionalità degli strati inferiori per Sfrutta le funzionalità degli strati inferiori per

–– cercare in memoria il programma invocatocercare in memoria il programma invocato–– allocare la memoria richiesta dal programmaallocare la memoria richiesta dal programma–– attivare un processo per eseguire il programmaattivare un processo per eseguire il programma

Page 11: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 11

Ciclo di vita dei processiCiclo di vita dei processi

L’esecuzione di un programma può comportare l’alternarsi di L’esecuzione di un programma può comportare l’alternarsi di processi processi utenteutente e di e di sistemasistema all’interno della CPU all’interno della CPU

Processo Processo utente: utente: derivaderiva da un programma applicativoda un programma applicativoProcesso di Processo di sistema: sistema: deriva da un programma del sistema deriva da un programma del sistema

operativooperativo–– Processi Processi kernelkernel (nucleo)(nucleo)–– Gestori delle interruzioni Gestori delle interruzioni

L’esecuzione di un processo può essere interrotta!L’esecuzione di un processo può essere interrotta!

Ricordate sempre che unRicordate sempre che un processo corrisponde ad un processo corrisponde ad un programma + stato corrente della memoria centrale e dei programma + stato corrente della memoria centrale e dei registriregistri

Page 12: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 12

Interruzione internaInterruzione interna

L’esecuzione di un processo L’esecuzione di un processo runningrunning si interrompe ad es. si interrompe ad es. per operazioni di per operazioni di input/outputinput/output (operazioni costose in (operazioni costose in termini di tempo)termini di tempo)

Lo stato corrente (contenuto registri Lo stato corrente (contenuto registri etcetc.) del processo .) del processo interrotto viene salvato in memoriainterrotto viene salvato in memoria

Il processo passa in uno stato di attesa (es. Il processo passa in uno stato di attesa (es. waitingwaiting))Il controllo passa ad un processo di sistema che assegna Il controllo passa ad un processo di sistema che assegna

la CPU ad un altro processo (per poter ottimizzare la CPU ad un altro processo (per poter ottimizzare l’utilizzo della CPU) attualmente l’utilizzo della CPU) attualmente readyready per l’esecuzione.per l’esecuzione.

Page 13: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 13

Interruzioni esterneInterruzioni esterne

Una periferica segnala la fine di un operazioneUna periferica segnala la fine di un operazioneL’esecuzione del processo corrente viene L’esecuzione del processo corrente viene interrottainterrotta(il processo passa allo stato (il processo passa allo stato readyready) e passa al gestore delle ) e passa al gestore delle

interruzioni interruzioni –– Quindi interruzione esterna perché riguarda le operazioni di unQuindi interruzione esterna perché riguarda le operazioni di un’altro ’altro

processo!processo!Il gestore delle interruzioni provvede a trasferire i dati in meIl gestore delle interruzioni provvede a trasferire i dati in memoria moria

e a risvegliare il processo e a risvegliare il processo in attesa (es. waiting)in attesa (es. waiting) che passa allo che passa allo stato stato readyready

Il controllo passa poi al Il controllo passa poi al kernelkernel che manda in esecuzione uno dei che manda in esecuzione uno dei processi in statoprocessi in stato readyready

Il gestore dei processi lavora con interruzioni disabilitateIl gestore dei processi lavora con interruzioni disabilitate

Page 14: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 14

ProcessiProcessi: : StaStati e Ciclo di Vitati e Ciclo di Vita

Il ciclo di vita dei processiIl ciclo di vita dei processi consiste nel passaggio in consiste nel passaggio in diversi statidiversi stati..

Ready

Running Sleeping

Waiting

Blocked

Dead

start()

sleep()

DispatchQuantoFinito

Attesa Finita

stop()

wait()

notify()notifyAll()

Richiesta di I/O

I/O doneDescrizione degli StatiDescrizione degli Stati

Legenda: il controllo del sistemail controllo del programma

terminato.terminato.DeadDead::

in attesa di completare in attesa di completare l’l’I/OI/O..

BlockedBlocked::sospeso un periodo.sospeso un periodo.SleepingSleeping::in attesa di un evento.in attesa di un evento.WaitingWaiting::in esecuzionein esecuzione..RunningRunning::

pronto per l’esecuzione pronto per l’esecuzione ma in attesa della CPU.ma in attesa della CPU.

ReadyReady::

Page 15: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 15

SchedulingScheduling dei processidei processi

Il sistema operativo può interrompere i processi per Il sistema operativo può interrompere i processi per assicurare una politica equa (fair) di esecuzioneassicurare una politica equa (fair) di esecuzione

SchedulerScheduler = quella parte del sistema operativo che = quella parte del sistema operativo che selezionaseleziona il processo da mandare in esecuzioneil processo da mandare in esecuzione

Due possibili politiche di Due possibili politiche di schedulingscheduling::–– Round Round robinrobin–– Con PrioritàCon Priorità

Criteri di valutazione: efficienza, tempi di risposta, Criteri di valutazione: efficienza, tempi di risposta, fairnessfairness, ecc, ecc

Page 16: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 16

Round Round RobinRobin

Gestione dei processi in attesa tramite Gestione dei processi in attesa tramite codacoda–– Cioè FIFO = Cioè FIFO = firstfirst--inin firstfirst--outout

Ogni processo ha un Ogni processo ha un quantoquanto di tempo di di tempo di esecuzione dopo il quale torna in attesaesecuzione dopo il quale torna in attesa–– Quanto » Tempo per salvare/ripristinare stato Quanto » Tempo per salvare/ripristinare stato ((contextcontext switchingswitching))

–– Quanto « Tempo di esecuzione del programma Quanto « Tempo di esecuzione del programma ((per assicurare per assicurare fairnessfairness))

Page 17: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 17

PrioritàPriorità

Si assegna una priorità ad ogni processo e si manda in Si assegna una priorità ad ogni processo e si manda in esecuzione il processo con priorità più altaesecuzione il processo con priorità più alta..

La priorità può essere assegnata:La priorità può essere assegnata:–– staticamente ed essere ridotta durante l’esecuzione:staticamente ed essere ridotta durante l’esecuzione:

se risulta più bassa di un processo in attesa si effettua la se risulta più bassa di un processo in attesa si effettua la fase di fase di contextcontext switchingswitching

–– dinamicamente:dinamicamente:a seconda delle operazioni effettuate dal processo a seconda delle operazioni effettuate dal processo (ad es. seleziona subito processi con operazioni I/O)(ad es. seleziona subito processi con operazioni I/O)

Page 18: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 18

Gestione Memoria CentraleGestione Memoria Centrale

I processi si alternano durante l’esecuzione nella I processi si alternano durante l’esecuzione nella CPU.CPU.

Per ragioni di efficienza dobbiamo mantenere più Per ragioni di efficienza dobbiamo mantenere più programmi in memoria centrale.programmi in memoria centrale.

Ciò comporta il Ciò comporta il partizionamentopartizionamento della memoria della memoria centrale e del suo spazio di centrale e del suo spazio di indirizzamentoindirizzamento. .

Possibili tecniche:Possibili tecniche:–– SegmentazioneSegmentazione–– PaginazionePaginazione

Page 19: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 19

Il Problema della Il Problema della RilocazioneRilocazione

Supponiamo che la memoria venga assegnata dinamicamente Supponiamo che la memoria venga assegnata dinamicamente (con qualche strategia) ai programmi in esecuzione.(con qualche strategia) ai programmi in esecuzione.

Come possiamo trasformare gli indirizzi logici contenuti Come possiamo trasformare gli indirizzi logici contenuti allall’’interno del programma (ad es. in linguaggio macchina) interno del programma (ad es. in linguaggio macchina) in indirizzi fisici (in indirizzi fisici (ciocioéé indirizzi della RAM)?indirizzi della RAM)?

Questo problema Questo problema èè chiamato: chiamato: rilocazionerilocazione dei programmi.dei programmi.

Page 20: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 20

Compilatore, Compilatore, linkerlinker e e loaderloader

Compilatore e Compilatore e LinkerLinker–– Traducono programmi scritti in linguaggio ad alto livello in Traducono programmi scritti in linguaggio ad alto livello in

programmi in linguaggio macchina che accedono dati programmi in linguaggio macchina che accedono dati (variabili ecc) utilizzando indirizzi logici (variabili ecc) utilizzando indirizzi logici indipendentiindipendenti dalla dalla posizione in memoria centraleposizione in memoria centrale

((LinkerLinker: si utilizza per unire assieme programmi divisi in : si utilizza per unire assieme programmi divisi in moduli)moduli)

LoaderLoader–– carica il programma compilato in memoria centrale.carica il programma compilato in memoria centrale.

Page 21: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 21

RilocazioneRilocazione

StaticaStatica–– il il loaderloader trasforma indirizzi trasforma indirizzi logicilogici in indirizzi in indirizzi assolutiassoluti

durante il caricamento in memoria centraledurante il caricamento in memoria centraleDinamicaDinamica

–– il loader carica il programma con indirizzi logici. il loader carica il programma con indirizzi logici. Il programma compilato deve però gestire l’Il programma compilato deve però gestire l’indirizzamentoindirizzamentotramite un registro speciale chiamato tramite un registro speciale chiamato registro baseregistro base

–– Il rIl registro base egistro base mantiene l’indirizzo assoluto della parte mantiene l’indirizzo assoluto della parte di memoria dove si trova il programmadi memoria dove si trova il programma

Page 22: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 22

Come opera Come opera ilil loader loader sullasulla RAM?RAM?

SegmentazioneSegmentazione dellodello spaziospazio didi indirizzamentoindirizzamentodelladella RAMRAM

PaginazionePaginazioneMemoriaMemoria virtualevirtuale

Page 23: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 23

SegmentazioneSegmentazione

La memoria centrale viene suddivisa in segmenti di lunghezza La memoria centrale viene suddivisa in segmenti di lunghezza variabile contenenti i programmivariabile contenenti i programmi

Registro baseRegistro base–– indirizzo della prima cella del segmento contenente il indirizzo della prima cella del segmento contenente il

programma in esecuzioneprogramma in esecuzioneRegistro Registro frontierofrontiero

–– ultima cella contenente il programma in esecuzioneultima cella contenente il programma in esecuzioneRilocazioneRilocazione::

indirizzo assolutoindirizzo assoluto = = indirizzo logico indirizzo logico + + contenuto reg. basecontenuto reg. baseProblema = frammentazione della memoriaProblema = frammentazione della memoria

Page 24: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 24

PaginazionePaginazione

La memoria centrale e i programmi vengono La memoria centrale e i programmi vengono suddivisi in pagine di lunghezza fissa.suddivisi in pagine di lunghezza fissa.–– I programmi vengono caricati in memoria anche in I programmi vengono caricati in memoria anche in pagine non contigue.pagine non contigue.

La tabella delle pagine mantiene la corrispondenza La tabella delle pagine mantiene la corrispondenza tra pagine dei programmi e pagine in memoria tra pagine dei programmi e pagine in memoria centrale.centrale.

Problema Problema ridurre il numero di caricamenti di ridurre il numero di caricamenti di pagine.pagine.

Page 25: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 25

PaginazionePaginazione: : rilocazionerilocazione

Se il registro indirizzi ha Se il registro indirizzi ha kk bit e una pagina ha bit e una pagina ha 2**p2**p celle, vi sono celle, vi sono q=kq=k--pp pagine in memoria centralepagine in memoria centrale–– I primi I primi qq bit di indirizzo logico indicano una pagina bit di indirizzo logico indicano una pagina

(logica) nella tabella (la tabella mappa pag. logiche in (logica) nella tabella (la tabella mappa pag. logiche in pag. fisiche)pag. fisiche)

–– Gli ultimi Gli ultimi pp bit indicano l’indirizzo relativo all’interno della bit indicano l’indirizzo relativo all’interno della paginapagina

RilocazioneRilocazione: : –– tramite i primi tramite i primi qq bit si recupera l’indirizzo della pagina bit si recupera l’indirizzo della pagina

fisicafisica–– poi lo si concatena con gli ultimi poi lo si concatena con gli ultimi pp bit in modo da bit in modo da

ottenere l’indirizzo assoluto su ottenere l’indirizzo assoluto su kk bit!bit!

Page 26: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 26

Memoria VirtualeMemoria Virtuale

Con la suddivisione del programma in pagine non è Con la suddivisione del programma in pagine non è necessario mantenere tutto il programma in memoria necessario mantenere tutto il programma in memoria centralecentrale

PaginazionePaginazione a richiesta: a richiesta: –– Se la pagina del programma che contiene la prossima Se la pagina del programma che contiene la prossima

esecuzione da eseguire non è in memoria si carica da disco esecuzione da eseguire non è in memoria si carica da disco (page (page swappingswapping).).

–– Occorre trovare spazio in memoria e nella tabella (alcune Occorre trovare spazio in memoria e nella tabella (alcune pagine vengono spostate su disco in un’area di pagine vengono spostate su disco in un’area di swapswap).).

–– Gli indirizzi nei programmi diventano virtuali infatti la Gli indirizzi nei programmi diventano virtuali infatti la tabella può contenere le pagine in ordine sparso.tabella può contenere le pagine in ordine sparso.

Page 27: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 27

Memoria Virtuale (Segue)Memoria Virtuale (Segue)

In caso non ci sia memoria disponibile per le esigenze In caso non ci sia memoria disponibile per le esigenze dell’esecuzione, il sistema operativo: dell’esecuzione, il sistema operativo: –– Sceglie (usando politiche basate sull’utilizzo delle pagine) Sceglie (usando politiche basate sull’utilizzo delle pagine)

quali pagine possono essere spostate su disco, quali pagine possono essere spostate su disco, –– Provvede a spostarle ed a caricare le nuove pagine, edProvvede a spostarle ed a caricare le nuove pagine, ed–– Aggiorna le tabelle delle pagine.Aggiorna le tabelle delle pagine.

SistemaSistema operativooperativo

ProcessoProcesso 1 1 paginapagina 11

ProcessoProcesso 1 1 paginapagina 22

ProcessoProcesso 2 2 paginapagina 11

RAMRAM DiscoDisco

ProcessoProcesso 3 3 paginapagina 11

ProcessoProcesso 2 2 paginapagina 11

ProcessoProcesso 3 3 paginapagina 11

Page 28: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 28

Gestione della Memoria di MassaGestione della Memoria di Massa

La memoria di massa serve per gestire grandi La memoria di massa serve per gestire grandi quantità di datiquantità di dati–– PersistentenzaPersistentenza–– SicurezzaSicurezza–– ClassificazioneClassificazione

SoluzioneSoluzione–– I dati vengono organizzati I dati vengono organizzati logicamentelogicamente in file e in file e gestiti dal sistema operativo tramite il gestiti dal sistema operativo tramite il file file systemsystem..

Page 29: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 29

FileFile

Nome:Nome:–– Identifica il file spesso con una estensione che indica il tipoIdentifica il file spesso con una estensione che indica il tipo

di file di file –– es. es. Tesi.docTesi.doc oppure oppure somma.exesomma.exe

Struttura:Struttura:–– Sequenza di byteSequenza di byte–– Sequenza di blocchi (record) di byteSequenza di blocchi (record) di byte

Tipo:Tipo:–– FileFile di caratteri e binari (eseguibili)di caratteri e binari (eseguibili)–– DirectoryDirectory

Attributi: Attributi: –– nome, diritti di accesso,proprietario nome, diritti di accesso,proprietario

Page 30: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 30

Operazioni su FileOperazioni su File

Il file system consente diIl file system consente di effettuare le seguenti effettuare le seguenti operazioni:operazioni:–– creare, cancellare, spostare, recuperare, creare, cancellare, spostare, recuperare,

modificare documenti in memoria di massa modificare documenti in memoria di massa (memoria persistente)(memoria persistente)

–– Modificare gli attributi di un fileModificare gli attributi di un file–– RidenominareRidenominare i filei file

Page 31: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 31

DirectoryDirectory

È un file di tipo speciale che mantiene informazioni su È un file di tipo speciale che mantiene informazioni su altri filealtri file–– permette di strutturare insiemi di file (dati) in maniera permette di strutturare insiemi di file (dati) in maniera

gerarchica;gerarchica;–– contiene la lista dei nomi e attributi dei file e directory contiene la lista dei nomi e attributi dei file e directory

al suo interno.al suo interno.Quindi: il file system ha una struttura ad aQuindi: il file system ha una struttura ad alberolbero

–– Radice = Radice = radiceradice dell’intero file systemdell’intero file system–– Nodi interni = directoryNodi interni = directory–– Foglie = documenti/programmi Foglie = documenti/programmi

Page 32: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 32

Struttura Logica del File SystemStruttura Logica del File System

EsempioEsempio root

videoscrittura accesso a Internet

Cartella sistema

prima settimana seconda settimana

Lezioni informaticaapplicazioni

laboratoriolezione

Page 33: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 33

PathPath namesnames

In un’organizzazione ad albero i nomi contengono informazioni In un’organizzazione ad albero i nomi contengono informazioni sui cammini sui quali si trovano i corrispondenti filesui cammini sui quali si trovano i corrispondenti file–– Nomi relativi:Nomi relativi:

relativi ad una particolare directory.relativi ad una particolare directory.–– Nomi assoluti: Nomi assoluti:

specificano il cammino a partire dalla radice (specificano il cammino a partire dalla radice (rootroot) del file system ) del file system (mai ambigui).(mai ambigui).

NeiNei path names path names sisi possonopossono utilizzareutilizzare I due I due simbolisimboli specialispeciali–– Il Il puntopunto (.) (.) rappresentarappresenta la directory la directory correntecorrente..–– Il Il doppiodoppio puntopunto (..) (..) rappresentarappresenta la directory la directory immediatamenteimmediatamente

superioresuperiore nell’alberonell’albero..

Page 34: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 34

Gestione File SystemGestione File System

File possono venire memorizzati come:File possono venire memorizzati come:–– Allocazione continua di blocchi di byte;Allocazione continua di blocchi di byte;–– Allocazione collegata (un blocco contiene l’indirizzo Allocazione collegata (un blocco contiene l’indirizzo

del prossimo);del prossimo);–– Allocazione con indice (si mantiene una tabella in Allocazione con indice (si mantiene una tabella in

memoria per recuperare i blocchi); memoria per recuperare i blocchi); –– DOS DOS --–– II--nodenode: tabella con puntatori ad altre tabelle : tabella con puntatori ad altre tabelle

(combina le ultime due); (combina le ultime due); –– UNIX UNIX ––

Page 35: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 35

Gestione delle perifericheGestione delle periferiche

Driver fisici (hardware)Driver fisici (hardware)–– per trasferire e manipolare dati (stampante, per trasferire e manipolare dati (stampante,

lettore floppy, ecc)lettore floppy, ecc)Driver logici (software)Driver logici (software)

–– parte del sistema operativo che fornisce parte del sistema operativo che fornisce funzionalità ad alto livello che riguardano le funzionalità ad alto livello che riguardano le perifericheperiferiche

Page 36: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 36

Driver fisicoDriver fisico

Il Il devicedevice controller controlla i meccanismi fisici controller controlla i meccanismi fisici dell’apparecchiatura dell’apparecchiatura –– (es. unità di lettura di floppy disk)(es. unità di lettura di floppy disk)

Il Il devicedevice controller dialoga con la CPU attraverso registri controller dialoga con la CPU attraverso registri e attraverso una memoria dedicata alle operazioni I/O e attraverso una memoria dedicata alle operazioni I/O chiamata DMA (Memoria ad accesso diretto).chiamata DMA (Memoria ad accesso diretto).

La DMA memorizza informazioni che il La DMA memorizza informazioni che il devicedevice controller controller pupuòò usare per scrivere in memoria direttamente senza usare per scrivere in memoria direttamente senza passare attraverso la CPU.passare attraverso la CPU.

Page 37: Laboratorio di Informatica (Chimica)homes.di.unimi.it/~cazzola/didattica/lab_di_informatica_x_chimica... · in indirizzi fisici (cioé indirizzi della RAM)? Questo problema è ...

Walter Cazzola Lezione 2: Sistema Operativo 37

Driver LogicoDriver Logico

Software che maschera i Software che maschera i devicedevice fisici:fisici:–– Gestisce gli errori in lettura/scrittura;Gestisce gli errori in lettura/scrittura;–– Gestisce i nomi del Gestisce i nomi del devicedevice driver;driver;–– Gestisce i demoni per code di attesa per l’utilizzo di Gestisce i demoni per code di attesa per l’utilizzo di

devicedevice..