Post on 18-Feb-2019
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: cazzola@dico.unimi.itcazzola@dico.unimi.it
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)
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
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
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)
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
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
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
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
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
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
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.
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
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::
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
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))
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)
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
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.
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.
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
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
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
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.
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!
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.
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
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..
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
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
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
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
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..
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 ––
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
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.
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..