Fondamenti di
Informatica
Prof. Fenza Giuseppe
Il Sistema Operativo
[Sez: 5.2, 5.4, 5.5]
[Sez: da 19.1 a 19.2]
Il Sistema Operativo
• E’ il prodotto più complesso mai progettato e realizzato dagli
uomini.
– Windows XP conta 40 Milioni di linee di codice
– Stampate su fogli A4, con interlinea singola, occuperebbero
750.000 pagine (750 volumi da 500 pagine)
• Senza Sistema Operativo non sarebbe possibile utilizzare i
Le funzioni principali del S.O.
• Gestisce l’interazione tra utente e computer. Ogni operazione
dell’utente viene intercettata dal S.O.
– direttamente quando l’utente con dei comandi esegue operazioni
predefinite (es: cancellare un documento, …)
– indirettamente quando tramite programmi applicativi (es:
stampa documento tramite word, …)
• Gestisce le risorse hardware
– Controlla, ottimizza l’uso e coordina la comunicazione tra le
risorse hardware del computer.
• Gestisce le risorse software
– Pilota e controlla l’esecuzione degli altri programmi
– Assegna le risorse ai programmi applicativi e ne controlla
Struttura del Sistema Operativo
• I SO sono generalmente costituiti da un insieme di moduli, ciascuno dedicato a svolgere una determinata funzione;
• I vari moduli del SO interagiscono tra di loro secondo regole precise al fine di realizzare le funzionalità di base dalla
KERNEL
Struttura del Sistema Operativo
(cont.)
Gestore dei Processi Gestore della Memoria Centrale Gestore degli I/O Gestore del File System
BIOS
• Il BIOS permette di collegare software e hardware.
• In particolare, Il SO intercetta ogni richiesta di uso di una
periferica e la trasmette al BIOS
– Ad es.: stampa di un documento da Word
• Il comando di stampa viene passato dal programma al SO • Dal SO esso passa al BIOS
• Il BIOS, consultando anche la CMOS (che contiene le
informazioni ultime su ogni periferica), si collega alla
stampante, e trasforma la richiesta di stampa in una serie di comandi comprensibili alla stampante
Funzionalità di un SO
• Un SO esegue i seguenti compiti:
– Gestione dell'interfaccia utente e Interprete dei comandi
– Gestore dei processi
– Gestore della memoria centrale – Gestore delle periferiche di I/O – Gestore del File system
LE INTERFACCE UTENTE
• L'interfaccia utente è il mezzo di interazione tra Utente e
Computer
– L'utente invia comandi al sistema operativo (es. una richiesta
di stampa o di cancellazione di un documento).
– Il Sistema Operativo manda in esecuzione il comando,
coinvolgendo le risorse appropriate,
– La comunicazione tra utente e sistema operativo è governata dall'interfaccia utente.
• L’interprete dei comandi interpreta i comandi inviati dall’utente
Le prime interfacce: TTY e Pannelli
•
TTY e/o Pannello
. I primi computer avevano come
interfaccia una specie di stampante (TTY o telescrivente) e,
spesso, delle luci sul pannello del computer
Interfacce a caratteri (MS-DOS)
• Interfaccia a caratteri monitor “a caratteri”
– per dare al computer le istruzioni, l'utente deve digitare
Interfacce a caratteri (MS-DOS)
• Uno dei primi sistemi operativi per PC (1981)
– MS-DOS (Microsoft-Disk Operating System).
• L'interfaccia testuale di MS-DOS è scarna, con lo schermo nero e
i soli caratteri del prompt
C:\>
• per dare al computer le istruzioni, l'utente deve digitare da
tastiera una serie di comandi di testo piuttosto complessi.
Le interfacce Grafiche Utente (GUI)
•
Primi anni ’80 comparvero le prime interfacce Grafiche
(sviluppate da Xerox e Apple)
•
GUI
(
Graphic User Interface,
Interfaccia Grafica Utente)
basate sulla
Metafora della Scrivania
–
Il video è una specie di
scrivania (virtuale), il Desktop
–L'utente comunica con il PC tramite
mouse
, e
•
icone
•Finestre
•
menu a discesa
che semplificano la scelta dei comandi.
•
Le GUI utilizzano la
tecnologia WYSIWYG
(What you see
is what you get). I documenti cioè vengono visualizzati così
Le interfacce Grafiche Utente (GUI)
•
I
programmi hanno aspetto e linguaggio comuni
•
E’ possibile
passare facilmente da un documento a un
altro
e da un’applicazione ad un’altra. Infatti
–
Ogni
applicazione
è contenuta in una finestra.
–Ogni
documento
aperto è in una sua finestra.
•I
comandi hanno la stessa interfaccia
in tutti i
programmi
–
Per eseguire un comando basta puntare il cursore
Come operare con le icone
• Un oggetto può essere
– selezionato (singolo clic del mouse)
– eseguito (doppio clic del mouse). Quando si applica il doppio
clic a un’icona
• se è un programma lo si esegue
• se è una cartella si visualizza il contenuto
Le Finestre
• Ogni oggetto viene eseguito in una finestra
– Finestra: area dello schermo delimitata da una cornice in cui
viene visualizzato l’output di un programma
• Sul desktop ci possono essere più finestre aperte
contemporaneamente
– più programmi eseguiti “contemporaneamente” – una sola è attiva
– L’input è inviato al programma di quella finestra
Interfacce Avanzate
• Interfacce Touch Screen (Chioschi, Totem ecc…)
– L’interfaccia è un Touch Screen di dimensioni medio grandi e
l’interazione è tramite un dito dell’utente che punta ogni singolo oggetto sullo schermo
• Interfaccia a Stilo (Elaboratori Tascabili)
– L’interfaccia è un touch screen, sul quale si può puntare un
comando o scrivere per mezzo di una specie di penna (detta stilo).
• Interfacce Conversazionali
– In fase di sviluppo. Interfacce del futuro. L’interazione è tramite
Funzionalità di un SO
• Un SO esegue i seguenti compiti:
– Gestione dell'interfaccia utente e Interprete dei comandi
– Gestore dei processi
– Gestore della memoria centrale – Gestore delle periferiche di I/O – Gestore del File system
La Gestione dei Processi
• Un programma in esecuzione è anche detto processo
– Programma = lista di istruzioni = nozione statica
Gestore dei Processi
• E’ il modulo che si occupa di controllare la sincronizzazione, interruzione e riattivazione dei programmi in esecuzione cui viene assegnato un processore;
• La gestione dei processi viene compiuta in vari modi , in funzione del tipo di utilizzo cui il sistema è rivolto.
Gestore dei Processi (Cont.)
• Il programma che si occupa della distribuzione del tempo di CPU tra i vari processi attivi, decidendone l’avvicendamento, è comunemente chiamato Scheduler.
• Nel caso di elaboratori multi-processore si occupa anche di gestire la cooperazione tra le varie CPU presenti nel sistema.
La Gestione dei Processi (Cont.)
• Diverse tecniche di gestione dei processi: – Monoprogrammazione e monoutenza
– Multiprogrammazione e monoutenza (o Multitasking) – Multielaborazione e multiutenza
– Elaborazione parallela (con hardware e software apposito)
• La scelta dipende anche dal tipo di calcolatore e dalle sue
Monoutenza e Monoprogrammazione
• Single User e Single Task
• Modalità operativa dei personal computer fino a qualche anno fa
(sistema MS-DOS):
– permette l’accesso al computer ad un solo utente per volta, – il quale può mandare in esecuzione un solo programma alla
volta.
• E' il modo più semplice per gestire un elaboratore
– il S.O. gestisce in modo sequenziale i diversi programmi, uno
per volta
– poca efficienza dell'hw a causa della diversa velocità tra CPU e
Monoutenza e Multiprogrammazione
• Single User e Multi Task (multiprogrammazione)
• E’ la modalità operativa dei sistemi Windows ‘client’:
– permette l’accesso al computer ad un solo utente per volta, – Il quale può mandare in esecuzione più programmi.
• il S.O
– deve gestire l’uso contemporaneo delle stesse risorse (ad esempio la
RAM) da parte delle applicazioni attive, senza che si creino “conflitti”.
– In particolare, deve assegnare il/i processi alla/e CPU, tenendo fermi
tutti gli altri processi
“attivi”, che restano in attesa di poter utilizzare, a loro volta, la CPU
Monoutenza e Multiprogrammazione
• Un processo perde l’uso della CPU (Deallocazione) se:
– C’è richiesta di un’operazione di I/O da parte del processo in
esecuzione, che in termini di tempo è molto lenta.
– Termina il tempo a disposizione del processo (tecnica del
time-sharing o condivisione di tempo)
• Ogni processo accede alla CPU per un breve intervallo di
tempo,
• terminato il quale la CPU viene staccata dal processo e viene
agganciata al processo successivo,
Multithreading
• Un programma può effettuare più operazioni contemporaneamente
sullo stesso documento.
– Ad esempio può leggere dati immessi da tastiera, stampare,
visualizzare e contemporaneamente salvare il documento.
• Ovviamente le operazioni non vengono fatte nello stesso momento,
ma è applicato il principio del multitasking (il processore esegue le varie operazioni un po’ alla volta, passando dall’una all’altra).
Multiutenza e Multiprogrammazione
• Multi User e Multi Task
• E’ la modalità operativa dei sistemi Windows ‘server’:
– permette l’accesso al computer ad più utenti per volta, – Ognuno dei quali può eseguire più programmi.
• Richiede l’impiego di notevoli risorse sia da parte del sistema
Sicurezza e protezione - SO multiutente
• Un sistema operativo multiutente deve possedere un meccanismo
per identificare gli utenti
– Il sistema più usato è quella di attribuire a ciascun utente una
login ed una password
• Ad ogni utente può essere attribuito un costo per le risorse da lui
usate
• Si può restringere a certi utenti l’accesso al file system e alle risorse
Politiche di Scheduling
• Le politiche di schedulazione utilizzate dallo scheduler sono raggruppabili in due grandi categorie:
– Preemptive: la CPU in uso da parte di un processo può essere tolta e passata a un altro in un qualsiasi momento;
– Non Preemptive: una volta che un processo ha ottenuto l’uso della CPU non può essere interrotto fino a che lui stesso non la rilascia.
Lo stato di un processo
• Lo stato del processo può essere distinto fra stato
interno e stato esterno.
• Lo stato interno indica:
– la prossima istruzione del programma che deve essere eseguita;
– i valori delle variabili e dei registri utilizzati dal processo.
• Lo stato esterno indica se il processo è:
– in attesa di un evento, ad es. la lettura da disco o l’inserimento di dati da tastiera;
– in esecuzione;
– pronto per l’esecuzione, e quindi in attesa di accedere alla CPU.
Stato di un processo (1)
• In esecuzione: assegnato al
processore ed eseguito da esso
• Pronto: può andare in esecuzione, se il
gestore dei processi lo decide
• In attesa: attende il verificarsi di un evento esterno per andare in stato di pronto Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto
- Fine quanto di tempo - Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione - Abort per errore
Stato di un processo (2)
• I processi appena creati sono messi in stato di pronto
• Il kernel decide quale processo pronto mettere in stato di esecuzione • Il kernel assegna il
processore a un
processo per un quanto di tempo
– Coda dei processi pronti
– Round-robin
– Priorità dei processi
Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto
- Fine quanto di tempo - Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione - Abort per errore
Stato di un processo (3)
• Il processo in esecuzione passa in stato di attesa se richiede operazioni di I/O (interruzione interna)
– Corrisponde alla esecuzione dell’istruzione “chiamata supervisore” (SuperVisor Call, SVC) Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto
- Fine quanto di tempo - Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione - Abort per errore
P1
Stato di un processo:
Cambio di Contesto (Context Switch)
• Cambiamento di
contesto:
– Salvare il contesto di P1 nel suo descrittore di processo• Il processore è
ora libero, un altro
processo passerà
in esecuzione
Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto- Fine quanto di tempo - Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione - Abort per errore
P1
Stati di un processo (5)
• Quando l’operazione di I/O è finita viene
generata una interruzione esterna • Il processo in esecuzione viene interrotto • Il kernel esegue il gestore delle
interruzioni che esegue le azioni opportune
• P1 può tornare pronto • Il kernel sceglie quale
processo mandare in esecuzione Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto
- Fine quanto di tempo - Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione - Abort per errore
P1 P2
Stato di un processo: Preemption
• Preemption:
quando il quanto di
tempo è scaduto, il
kernel interrompe il
processo in
esecuzione
• Si cerca di
garantire un uso
equo della CPU a
tutti i processi
Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto- Fine quanto di tempo - Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione - Abort per errore
P1
Funzionalità di un SO
• Un SO esegue i seguenti compiti:
– Gestione dell'interfaccia utente e Interprete dei comandi – Gestore dei processi
– Gestore della memoria centrale
– Gestore delle periferiche di I/O – Gestore del File system
La Gestione della memoria centrale
•
Il gestore della memoria (memory manager) è un componente
del
sistema operativo
dedito alla gestione della memoria RAM
disponibile sul computer.
•
Grazie al gestore della memoria gli strati superiori hanno
l’illusione che ogni processo abbia una memoria dedicata
•
Un servizio offerto dalla gestione della memoria è la
cosiddetta memoria virtuale
•
E’ possibile eseguire programmi più grandi della memoria
centrale caricando in memoria solo alcuni parti (pagine) del
programma
•
Quando serve una pagina del programma residente su disco
avviene la sostituzione di una pagina in memoria con quella
desiderata
La Gestione della memoria centrale
(Cont.)
• Il gestore della memoria deve allocare la memoria e
partizionarla tra i processi che la richiedono.
Schemi di gestione della memoria
• Allocazione contigua
• Paginazione
• Segmentazione
Allocazione Contigua
• Partizioni fisse
– Frammentazione Interna
– Frammentazione Esterna
• Partizioni variabili/dinamiche
– Frammentazione Esterna
MEMORIA Processo P
Allocazione Contigua
Sistema Operativo Processo Q Processo R Processo S MEMORIA Sistema Operativo Processo P Processo Q Processo R Processo S (1) Processo S (2)Frammentazione Esterna
Allocazione Contigua
• Le strategie di allocazione stabiliscono il criterio scelto per creare o scegliere le partizioni per i programmi che le
richiedono. • First fit
– Individua la prima partizione atta a contenere il programma e, quindi, tra le partizioni disponibili, viene scelta quella con indirizzi più bassi.
• Best first
– Ricerca nella tabella la partizione più piccola atta a contenere il programma. In questo modo si vengono a creare numerose partizioni libere molto ristrette e quindi si aumenta la
frammentazione.
• Worst fit
– Tra le partizioni libere atte a contenere il programma, sceglie quella più ampia, per attenuare l'effetto della frammentazione.
Allocazione Contigua
• Partizioni fisse
– Frammentazione Interna
– Frammentazione Esterna
• Partizioni variabili/dinamiche
– Frammentazione Esterna
• Frammentazione esterna: esiste lo spazio
Allocazione Contigua
Programma A
Programma B
Programma C
Memoria 0000xAllocazione Contigua
Programma A
Programma C
Memoria 0000xProgramma D
PROBLEMA !!!!
FRAMMENTAZIONE
Schemi di gestione della memoria
• Allocazione contigua
• Paginazione
• Segmentazione
Paginazione
Programma D
Memoria 0000xProgramma A
Programma A
Programma A
Programma B
Programma B
Paginazione
Programma D
Memoria 0000xProgramma E
Programma A
Programma A
Programma A
Programma F
Programma F
Paginazione
• Si rinuncia ad avere una zona contigua della
memoria fisica per ciascun processo
• La memoria virtuale del programma viene
suddivisa in porzioni (pagine virtuali) di
lunghezza fissa (pot. di 2, e.g., 4K)
• La memoria fisica viene divisa in pagine
fisiche della stessa dimensione
• Le pagine virtuali di un programma vengono
caricate in altrettante pagine fisiche, non
Memoria Virtuale
• Spesso la memoria non è sufficiente per contenere
completamente tutto il codice dei vari task;
• Si può simulare una memoria più grande tenendo
nella memoria di sistema (RAM) solo le parti di
codice e dei dati che servono in quel momento;
• Si usa il concetto di memoria virtuale.
Memoria Virtuale (Cont.)
• I dati dei programmi non in esecuzione possono
essere tolti dalla memoria centrale e parcheggiati su
disco nella cosiddetta area di swap;
• Il rapporto tra le dimensioni dell’area di swap e della
RAM è di 3 : 1 (max);
• I moderni processori posseggono meccanismi
hardware per facilitare la gestione della memoria
viertuale.
Memoria Virtuale
Programma D
Memoria 0000xProgramma A-1
Programma B-1
Programma A-2
Programma A-3
Programma B-2
SwapMemoria Virtuale
Programma D
Memoria 0000xProgramma A-2
Programma B-1
Programma A-1
Programma A-3
Programma B-2
SwapFunzionalità di un SO
• Un SO esegue i seguenti compiti:
– Gestione dell'interfaccia utente e Interprete dei comandi – Gestore dei processi
– Gestore della memoria centrale
– Gestore delle periferiche di I/O
Gestore delle Periferiche di I/O
• Il gestore dei dispositivi di I/O è quel modulo del SO
incaricato di assegnare i dispositivi ai task che ne
fanno richiesta e di controllare i dispositivi stessi;
• Da esso dipende la qualità e il tipo di periferiche
La Gestione delle Periferiche di I/O
(Cont.)
• Una caratteristica comune a tutti i dispositivi è quella di operare in
modo asincrono rispetto al processore
– Es.: Tastiera
• Sono pertanto necessarie delle forme di sincronizzazione tra i
dispositivi e il processore
– Un dispositivo di input deve avvertire il processore quando un
dato di input è disponibile
– Un dispositivo di output deve avvertire il processore quando ha
terminato di produrre dati in uscita
– I dispositivi di Input/Output inviano al processore un segnale,
detto interrupt, per richiedere l'attenzione del processore stesso
Device Dirver
• Il controllo dei dispositivi di I/O avviene attraverso
speciali programmi detti Device Driver;
• I device driver sono spesso realizzati dai produttori
dei dispositivi stessi che ne conoscono le
Device Driver
(Cont.)
• Questi programmi implementano normalmente le
seguenti funzioni:
– Rendono trasparenti le caratteristiche fisiche tipiche di ogni
dispositivo;
– Gestiscono la comunicazione dei segnali verso i dispositivi;
– Gestiscono i conflitti, nel caso in cui due o più task
vogliono accedere contemporaneamente allo stesso
dispositivo.
Funzionalità di un SO
• Un SO esegue i seguenti compiti:
– Gestione dell'interfaccia utente e Interprete dei comandi – Gestore dei processi
– Gestore della memoria centrale – Gestore delle periferiche di I/O
LA GESTIONE DEI FILES (file system)
• Dati e programmi sono memorizzati sul disco fisso all’interno di
“contenitori logici” detti files.
• Un file è una contenitore di informazioni – identificato da un nome (filename) e
– memorizzato in una delle memorie di massa
• Tra i compiti più importanti del sistema operativo vi è la gestione
dei files (file system management) che si occupa di gestire i documenti presenti nelle memorie di massa
I nomi dei Files
• In quasi tutti i sistemi operativi un filename è costituito da due
parti: il nome vero e proprio e l’estensione, separata dal nome da un punto.
– Il nome è scelto dall’utente. – L’estensione
• rappresenta il tipo di dato che il file contiene
• solitamente indica il programma con cui è stato creato il file
(“.doc” o “.docx” per i documenti Word, “.exe” o “.bat” per i file eseguibili, “.jpg”, “gif”, "bmp" per le immagini, ecc.)
• In base all’estensione di un file, il Sistema Operativo sa quale
Cartelle o Directory
• Per rendere più agevole il ritrovamento dei files, il disco è diviso
in cartelle (chiamate directory)
– Una directory è un contenitore logico che, a sua volta, può
contenere altre cartelle o semplici files
– Una directory ha un nome che la contraddistingue dalle altre directory
• La maggior parte dei sistemi operativi adotta un file system
gerarchico: le cartelle sono strutturate ad albero, la cui radice è detta directory principale o ROOT
Unità
• Il file system può gestire file
memorizzati in più memorie di massa (hard disk, DVD, unità di rete,
ecc.)
• Ad ogni memoria di massa è associata
una lettera identificativa e/o un nome
– A: è il floppy disk – C: è l’hard disk – D: è il CD-Rom
Pathname (o percorso)
• Ogni file si trova in una sola directory, la quale, a sua volta, si può
trovare in un’altra directory (e così via)
• All’interno della stessa directory non possono esistere più file con lo stesso filename (nome+estensione)
• Il percorso per arrivare dalla ROOT al file in questione si
chiama pathname
– La directory principale si chiama \ (ROOT – Radice) – Nel pathname le directory sono separate dal carattere \
Gestione dei file
I nomi dei file servono alla loro esatta
identificazione.
I percorsi sono invece necessari per ritrovare i file nei vari supporti di memorizzazione.
Caratteristiche di un SO
• Vari tipi di SO:
– Multitasking o Monotasking
– Monothreading o Multithreading
– Interfaccia utente a caratteri o grafica – Sicurezza alta o bassa
– Capacità di elaborazione – Portabilità
Sistemi Operativi per Desktop
• MS-DOS, della Microsoft, è stato il primo sistema operativo per
PC (in disuso)
• (80%) Microsoft (Windows)
– Windows 2000/XP, S.O. per PC ancora molto diffusi – Windows Vista e Windows Seven (7, 8)
– Windows 10
• (2%) MacOS X, della Apple • (2%) Linux/Unix
Sistemi Operativi per Server
• Server: Computer che gestisce reti di altri computer. • Sistemi Operativi potenti, sicuri e affidabili.
• Sono Multiuser, Multitasking, Multithreading
• Esempi:
– Windows Server
– IBM OS/2 (non più utilizzato) – Unix
Sistemi Operativi Opensource
• Linux e Unix sono Sistemi Operativi “aperti”.
• Un SO aperto, detto anche “Opensource”, funziona su macchine
diverse.
• Fa parte della categoria dei software Public Domain, quindi esso è – completamente gratuito
– è modificabile da qualsiasi programmatore, essendo distribuito
assieme al codice sorgente
– Presente in molte versioni, a volte non compatibili tra di loro
Sistemi Operativi Proprietari
• Un SO “Proprietario” funziona su un solo tipo di computer.
Sviluppati da grandi case per mainframe e minicomputer
– IBM sviluppò il SO OpenMVS
– Digital sviluppò il VMS (poi diventato OpenVMS)
• Spesso le case costruttrici sviluppavano anche il Software
Applicativo (detto anch’esso “proprietario”)
• Svantaggi principali:
– Dipendenza pressoché totale dal produttore anche per semplici
operazioni di “personalizzazione” che coinvolgono modifica del codice
– Costi elevatissimi
Altri Sistemi Operativi
• per tascabili e palmari, che utilizzano un touch-screen e una tastiera
virtuale: – Symbian OS – Android – OSX – Windows Mobile – Palm OS
• Sistemi Operativi Embedded sono invece incorporati in piccoli
dispositivi e sono codificati su un chip di memoria ROM, invece che su Hard Disk.
Il Sistema Operativo
NOTE:
•
In un computer possono essere presenti più sistemi
operativi
, utilizzabili singolarmente poiché un loro uso
contemporaneo creerebbe un conflitto nella gestione delle risorse
della macchina.
•
Per poter installare più sistemi operativi è necessario
suddividere l'hard disk in sezioni separate (partizioni)
e
assegnare a ognuna un sistema operativo che avrà il compito di
gestire il computer ogni volta che si lavora con essa.
Master File Table (MFT)
• FORMATTAZIONE di un Disco: Predisposizione del disco
all’uso da parte di un Sistema Operativo
• Questa operazione crea una tabella, detta Master File Table
(MFT) in cui verranno registrate le informazioni su ogni file e ogni directory di un disco (formattato come NTFS).
• La MFT è, in sostanza, una tabella di un database relazionale,
contenente informazioni relative ai files.
• Agisce come "punto di partenza" e funziona come una sorta di
Master File Table (MFT)
• Quando un file viene eliminato, il record che descrive è
contrassegnato come libero, può quindi essere riutilizzato quando si crea un nuovo file
• Si noti che il record eliminato nella tabella non elimina a livello
Master File Table (MFT)
• C'è un record nella MFT per ogni file sul disco, in cui troviamo le
seguenti informazioni:
– Nome lungo del file. – Nome in formato 8.3. – numero del file.
– Dimensioni dei file.
– Data e ora di creazione / modifica / accesso. – Attributi del file.
– I diritti di accesso
La Deframmentazione di un Disco
• Il Sistema Operativo memorizza un file scomponendolo in parti della stessa dimensione (cluster), pari alla dimensione del settore su disco
• Il Sistema Operativo cerca di memorizzare tutti i cluster di un file su settori contigui, per minimizzare gli spostamenti della testina
del disco.
• Quando il file viene poi cancellato, i suoi cluster tornano a
disposizione e possono essere occupati da un nuovo file, che non è detto sia della stessa dimensione di quello cancellato.
La Deframmentazione di un Disco
• Con il passare del tempo e il susseguirsi di operazioni di
memorizzazione e di cancellazione di files, sul disco si formeranno "buchi" vuoti sempre più piccoli.
• Quando il disco comincia a riempirsi un file (soprattutto se è
molto grande) viene memorizzato non più contiguamente, ma i suoi cluster vengono sistemati dove c’è posto, spesso in settori molto distanti l’uno dall’altro.
La Deframmentazione di un Disco
• Quando un file è frammentato, il sistema impiega molto tempo
ad “aprirlo” (cioè a copiarlo in RAM per permettere l’utilizzo)
– la testina di lettura deve spostarsi molte volte sul disco per
La Deframmentazione di un Disco
•
Deframmentazione
: spostamento dei cluster di un file
finchè tutti i frammenti sono su zone contigue del disco
es. Dati i file A (4 cluster), B (3 cluster) e C (6 cluster)
… C3 C4 A1 A2 B3 A4 C6 C1 B1 A3 B2 C5 C2 …
Lo Scanning di un Disco
• Durante l’uso possono danneggiarsi parti di un supporto e diventare
quindi inutilizzabili, rendendo di fatto inutilizzabile l'intero file.
• Per limitare i danni è possibile effettuare, a livello preventivo, una
scansione del disco, in modo da accantonare i settori guasti, ma non ancora “allocati” ad alcun file.
• Disk Scanner: programma che individua difetti o danneggiamenti
della superficie del disco, problemi di allocazione dei files o problemi nella Tabella di allocazione
L’eliminazione dei files e il cestino
• Cancellare un file significa eliminarlo dal file system
• La cancellazione avviene a livello logico: lo spazio occupato dal
file cancellato non viene liberato immediatamente, ma viene marcato come libero
• Un file “cancellato” viene semplicemente spostato in una cartella
speciale, il CESTINO, in modo da poterlo recuperare, se necessario.
• Dopo un certo numero di giorni, oppure in caso di riempimento del
cestino, o in seguito ad un’operazione esplicita, il cestino viene “svuotato”, e quindi lo spazio viene effettivamente liberato