Analisi di alcune implementazioni moderne di file systems: Ext3, ReiserFS e WinFS

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Analisi di alcune implementazioni moderne di file systems: Ext3, ReiserFS e WinFS"

Transcript

1 UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria Sede di Modena Corso di Laurea in Ingegneria Informatica Analisi di alcune implementazioni moderne di file systems: Ext3, ReiserFS e WinFS Relatore: Prof.ssa Letizia Leonardi Tesi di Laurea di: Alessandro Davolio Correlatore: Ing. Luca Ferrari Anno accademico

2 SOMMARIO INTRODUZIONE 4 1 REQUISITI DI UN FILE SYSTEM MODERNO STRUTTURA DI BASE E MASSIMA CAPACITÀ DI PARTIZIONE GARANZIA D INTEGRITÀ DEI DATI PROBLEMI DI OCCUPAZIONE DEL DISCO IN SISTEMI MULTIUTENTE PRESERVARE I DATI PRIVATI DA MODIFICHE NON AUTORIZZATE 12 2 IL FILE SYSTEM VIRTUALE DI LINUX (VFS) DOVE REPERIRE IL CODICE COLLEGARE UN FILE SYS TEM AL KERNEL CONNETTERE UN FILE SYSTEM AL DIS CO TROVARE UN FILE OPERAZIONI SUGLI INODE 23 3 IL FILE SYSTEM EXT STRUTTURA FISICA GESTIONE DELLE DIRECTORY ATTRIBUTI ESTESI ED ACL QUOTE DISCO IN EXT JOURNALING ALTRI PARTICOLARI DI EXT IL FILE SYSTEM REISERFS ORGANIZZAZIONE DELLA MEMORIA STRUTTURA FISICA IMPLEMENTAZIONE DI STREAM DI DATI E DI ATTRIBUTI JOURNALING REPACKING FUTURE CARATTERISTICHE DEL FILE SYSTEM 51 5 WINFS MEMORIZZAZIONE DEI DATI: IL MODELLO NTFS MODELLI DEI DATI TIPI E SOTTOTIPI PROPRIETÀ DEGLI OGGETTI E CAMPI DATI LINGUAGGIO DI DEFINIZIONE DEGLI SCHEMI RELAZIONI USARE IL MODELLO DATI DI WINFS ADO.NET E WINFS NOTIFICAZIONI 63 2

3 6 CONFRONTO PRESTAZIONALE MONGO BENCHMARK SLOW BENCHMARK 68 7 CONCLUSIONI 69 APPENDICE A GLI ALBERI DI DATI 71 A.1. DEFINIZIONI 72 A.2. CHIAVI 73 A.3. B ILANCIAMENTO DELLA STRUTTURA 74 APPENDICE B: ACCESS CONTROL LISTS (ACLS) 77 B.1. EVOLUZIONE DEI PERMESSI D ACCESSO NEI FILE SYS TEM 77 B.2. STRUTTURA DI UNA ACL 78 B.3. ALGORITMO DI CONTROLLO DEGLI ACCESSI 79 APPENDICE C LINKED LISTS 81 RIFERIMENTI BIBLIOGRAFICI 84 3

4 Introduzione Un file system è quella parte del sistema operativo che consente all utente di interagire con i dati immagazzinati nei supporti di memoria secondaria: esso rappresenta quindi l interfaccia tra i dati fisici in queste memorie ed il resto del sistema operativo, oltre che con gli applicativi che utilizzano questi dati. In questo elaborato si analizzeranno alcune implementazioni di file system, e si andrà a vedere in che modo questi interagiscano con il resto del sistema operativo e con gli applicativi di più alto livello, tenendo conto di tutti i requisiti che un moderno software di questo tipo si trova a dover soddisfare. I file system che saranno presi in analisi sono tre:?? Ext3?? ReiserFS?? WinFS Ext3, che assieme a ReiserFS viene utilizzato con i sistemi operativi UNIX e Linux, è un file system di larghissimo impiego, e rappresenta un ottimo esempio di file system moderno sviluppato utilizzando il meccanismo dell open-source. ReiserFS, anch esso software distribuito liberamente, è stato però principalmente sviluppato dai programmatori della Namesys, sua azienda produttrice, ed è un software molto più giovane del primo che presenta molte caratteristiche interessanti. WinFS è adottato dal nuovo sistema operativo della Microsoft (Longhorn), ed è ancora in fase di test, ma promette grosse innovazioni per quanto riguarda la gestione dei dati. Di tutti e tre questi file system saranno prese in analisi le principali caratteristiche, ma per problemi di disponibilità di codice sorgente e documentazione, un confronto diretto sarà fatto solo tra i primi due elencati. Il seguente elaborato è composto di sei capitoli e tre appendici, e dopo questa breve introduzione si andranno ad analizzare nel primo capitolo le caratteristiche e i requisiti che deve fornire un moderno file system: oggi, infatti, un software di questo tipo deve risolvere tutte le problematiche che concernono la gestione dei dati immagazzinati in memorie di massa di dimensioni sempre maggiori, e quindi diventa importante poter recuperare velocemente le informazioni richieste attraverso opportune strategie di gestione della memoria secondaria. Un altro problema molto sentito oggi, è quello della sicurezza delle informazioni memorizzate: un sistema informatico deve garantire 4

5 l integrità dei dati presenti sui propri supporti di memoria sia rispetto ad un danneggiamento fisico (che può essere dovuto a blackout, crash del sistema operativo, o altri motivi che non sono direttamente collegati con operazioni eseguite dall utente), che rispetto all alterazione dei dati dovuta ad accessi e modifiche effettuati su questi ultimi da utenti non autorizzati. I moderni sistemi di elaborazione si trovano spesso ad operare con dati memorizzati su supporti di diversa natura, che possono archiviare i dati con meccanismi anche molto diversi tra loro (per esempio dischi rigidi o CD); diventa quindi importante il fatto che un file system possa essere gestito dal resto del sistema operativo in modo trasparente e indipendente dal tipo di dispositivo da cui esso va a recuperare i dati. Un file-system dovrà quindi presentarsi rispetto al codice sovrastante come un insieme uniforme d istruzioni, con le quali quest ultimo può interagire con tutti i dati ad esso accessibili, indipendentemente dal tipo di supporto in cui sono memorizzati. Nel secondo capitolo sarà quindi presentata l interfaccia con cui i sistemi operativi UNIX-like si relazionano con i file systems, soddisfacendo quindi la necessità di trasparenza del codice rispetto alle applicazioni di livello più alto. I tre capitoli successivi, e cioè il terzo il quarto ed il quinto, riportano l analisi effettuata sui tre file systems sopra elencati, mentre il sesto capitolo riporta i risultati di due benchmark eseguiti per confrontare Ext3 e ReiserFS, la cui documentazione è stata reperita sulla rete internet. 5

6 1 Requisiti di un file system moderno In questo capitolo verranno prese in analisi le principali caratteristiche ed i requisiti che un file system deve soddisfare per rispondere alle necessità dei moderni sistemi di elaborazione. Per fare ciò, saranno in primo luogo analizzate, in linea di massima, le caratteristiche e gli usi dei computer odierni. Al giorno d oggi i computer sono utilizzati per le applicazioni più svariate, ed un calcolatore general-purpose spesso viene utilizzato con programmi anche molto diversi tra loro (ad esempio video editing, gestione di database, programmi di contabilità, eccetera), e non si è quindi in grado di conoscere a priori il carico di lavoro che la macchina dovrà sopportare. Non potendo conoscere le condizioni di lavoro in cui un computer andrà ad operare, non si è in grado neanche di conoscere quali componenti (sia hardware che software) saranno sottoposti ad un maggiore stress da lavoro. Per questo motivo i progettisti (anche in questo caso sia hardware che software), negli ultimi anni, hanno cercato di sviluppare i singoli componenti di una macchina in modo che si possano interfacciare con gli altri apparati secondo standard ben definiti, e senza così doversi preoccupare degli altri componenti con i quali andranno ad interagire. Concentrandosi sull aspetto software, un esempio di come gli sviluppatori abbiano perseguito questa politica è rappresentato dalla stratificazione del codice: tutti i sistemi sono strutturati secondo livelli crescenti, in cui il codice di livello più basso è quello che comanda direttamente la macchina, ed il codice più alto è quello più astratto e con cui interagisce l utente. In una struttura di questo tipo, ogni strato (layer) di software comunica con lo strato superiore mettendo a sua disposizione un certo numero di funzioni standard da esso interpretabili. Per quanto riguarda la gestione dei dati nelle memorie secondarie, e più nello specifico i file-system, ci si accorge che anche questi implementano diversi meccanismi per garantire la sicurezza delle informazioni rispetto a problemi molto diversi tra loro. Nei paragrafi seguenti saranno illustrati i principali problemi, riguardanti la sicurezza dei dati, che un progettista di file-system si trova a dover risolvere. 6

7 1.1 Struttura di base e massima capacità di partizione Per dare un idea di base di come un file-system organizzi i dati memoria, si può affermare che esso divide quest ultima in una serie di blocchi di dimensione finita nei quali va ad immagazzinare i dati. Le informazioni che vengono immagazzinate dentro i blocchi possono essere principalmente di tre tipi:?? Dati archiviati dall utente e dalle applicazioni che operano sul sistema: sono i dati generici dei quali fanno uso gli utenti ed i programmi installati (che per fare alcuni esempi possono essere il contenuto di un file di testo oppure un brano audio).?? Dati riguardanti l organizzazione della struttura gerarchica della memoria visibile agli occhi dell utente: per fare un esempio sono tutte le formazioni che dicono quanti e quali file sono presenti in un direttorio, e dove questi si trovano fisicamente in memoria. Questo tipo di dati deve rappresentare un immagine istantanea della memoria secondaria, e per questo, molte di queste informazioni vengono ricalcolate ed usate nella memoria volatile a run-time.?? Dati riguardanti la struttura fisica del file-system (metadati): sono tutti quei dati che non sono di diretta utilità per l utente e non sono ad esso accessibili, ma sono utilizzati dal file-system e dal sistema operativo per gestire in modo corretto tutte le informazioni immagazzinate dall utente e dagli applicativi. Questi dati sono ad esempio il numero di blocchi in cui è diviso il disco rigido, la dimensione d ogni blocco, o una descrizione riassuntiva dell utilizzo di ogni blocco, e nella maggior parte dei file-system sono memorizzati in un apposito blocco, a cui ha accesso soltanto il sistema operativo, chiamato superblocco. Questa distinzione fatta per i tipi di dati spesso vale anche per i blocchi di memoria secondaria, in quanto questi sono utilizzati in modo diverso a seconda di dove si trovano all interno dell albero dei direttori. Questo albero, che rispecchia l organizzazione in file e cartelle che appare agli occhi dell utente, utilizza ciascun blocco o come nodo o come foglia. I nodi sono quei blocchi che memorizzano tutte le informazioni riguardanti la struttura gerarchica del file system: essi conterranno quindi i riferimenti ad altri nodi di livello a loro direttamente inferiore, oppure potranno contenere i riferimenti alle foglie, che sono i blocchi che vengono utilizzati per immagazzinare i dati che sono utilizzati da gli 7

8 applicativi (file). Esistono poi blocchi speciali riservati a contenere soltanto metadati (il superblocco appunto, con le eventuali sue copie), che sono al di fuori dell organizzazione gerarchica dei direttori, e piuttosto ne gestiscono l utilizzo. Per ulteriori informazioni riguardanti gli alberi si faccia riferimento all appendice A. Il problema della massima dimensione di partizione per un file-system è un problema che viene affrontato nelle prime fasi di progetto, in quanto esso va ad influenzare parametri che difficilmente possono essere gestiti in modo automatico dal calcolatore a runtime, come la lunghezza in byte degli indirizzi fisici dei dati presenti in memoria: decidendo per esempio che lo spazio d indirizzamento del file system che si vuole progettare sarà di quattro byte, si va a limitare automaticamente a 2 32 il numero massimo di indirizzi allocabili, ma si va anche stabilire che qualunque oggetto che fa riferimento a dati presenti memoria dovrà contenere un campo di indirizzo della dimensione di 4 byte (32 bit). Oltre allo spazio d indirizzamento, esiste poi tutta una serie di parametri che possono andare a ridurre notevolmente lo spazio per i dati archiviati dall utente, nel caso in cui ci si trovasse a lavorare con applicazioni che archiviano soltanto file di dimensione molto ridotta: questi parametri sono tutte le informazioni aggiuntive riguardanti i file che si vogliono memorizzare (e che non sono di diretto interesse per l utente), come ad esempio i permessi d accesso, la data di creazione, l autore, gli attributi, e la stringa contenente il nome del file. Tutti questi parametri hanno una loro precisa occupazione di memoria e, nel loro insieme, in certi casi possono occupare più spazio su disco di quello occupato dai dati d interesse per l'utente (in altre parole il contenuto del file stesso). Un altro problema strettamente correlato con la dimensione dei dati che non sono d interesse diretto dell utente, è il numero massimo di file memorizzabili all interno di un direttorio. Nei file system odierni, le informazioni aggiuntive riguardanti i file (indirizzo fisico da cui recuperare i dati) sono raggruppati in sequenze di dati chiamati descrittori del file stesso; e sono questi descrittori che, memorizzati consecutivamente all interno di un blocco direttorio, vanno a descrivere i file contenuti all interno del direttorio stesso. Per aumentare il numero massimo di file memorizzabili all interno di un direttorio, il progettista può scegliere di fare due cose:?? Aumentare la dimensione di blocchi in cui viene divisa la memoria: in questo modo viene reso disponibile più spazio in cui memorizzare i descrittori dei file ed allo 8

9 stesso tempo vengono velocizzare le operazioni di I/O, in quanto le testine del disco rigido dovranno fare meno salti tra un blocco e l altro per accedere al contenuto di un file. D altro canto, però, blocchi di maggiore dimensione implicano un maggiore spreco di spazio su disco. Bisogna considerare che mediamente l ultimo blocco allocato ad un file è di solito occupato solo per la metà del suo spazio, quindi più un blocco diventa grande, maggiore sarà lo spazio sprecato nell ultimo blocco d ogni file.?? Diminuire la dimensione delle informazioni che si vogliono memorizzare nei descrittori: questa soluzione permette sì di memorizzare un maggior numero di file all interno di un direttorio, ma allo stesso tempo diminuisce drasticamente il numero d informazioni aggiuntive che possono essere memorizzate come riferimento ad un file. Bisogna però ricordare che la maggior parte dei file-system, per ovviare a questo problema, utilizza una soluzione intermedia: si sceglie in pratica di memorizzare all interno del descrittore soltanto le informazioni che devono essere recuperate in modo più veloce, e si decide di collocare tutti i dati che sarebbero letti solo in caso d interazione con il contenuto del file (come ad esempio i permessi d accesso, che possono essere letti in caso di richiesta di accesso contenuto del file) assieme al contenuto del file stesso, cioè i dati generici archiviati da utente ed applicazioni. 1.2 Garanzia d integrità dei dati Un altro requisito che i file system devono soddisfare, è quello di garantire l integrità dei dati anche dopo blackout o altri arresti improvvisi del sistema che possono lasciare incompiute le operazioni di I/O. Per prima cosa bisogna osservare che in caso di riavvio dopo blackout, i dati che potrebbero risultare corrotti o danneggiati possono essere sia i dati utente sia quelli riguardanti il file system in sè; è quindi necessario provvedere a meccanismi che assicurino sia i dati dell utente sia i dati ad uso ristretto del sistema operativo. Nel caso in cui un arresto improvviso del sistema dovesse danneggiare il superblocco, nel migliore dei casi, il sistema operativo si troverebbe ad interpretare (se i dati danneggiati risultassero per caso interpretabili dalla macchina) informazioni che non rispecchiano l organizzazione e l uso della memoria, col rischio di danneggiare le 9

10 rimanenti porzioni di dati che non sono stati coinvolti in precedenza. Per ovviare a questo problema la maggior parte dei file system mantiene almeno una copia del superblocco, o comunque di tutte le informazioni sulla struttura della memoria, in settori del disco lontani dal superblocco stesso; questo per scongiurare che le testine del disco rigido, durante l arresto, possano danneggiare le copie nel caso queste fossero posizioniate in settori adiacenti il superblocco. Una soluzione di questo tipo garantisce nella maggior parte dei casi che il sistema riesca a recuperare i dati riguardanti l organizzazione delle informazioni su disco, ma allo stesso tempo crea un elevata ridondanza della metadata; cosa che però non va ad influire molto sullo spazio messo a disposizione per i dati utente, viste le piccole dimensioni occupate dalle informazioni strutturali rispetto alle dimensioni dei dischi rigidi in questo momento in commercio. Un altra soluzione che viene utilizzata per controllare la presenza di errori all interno dei blocchi sono le bitmap : esse sono dei record di dimensione variabile (dipendente dimensione del blocco stesso) che rappresentano l utilizzo dei vari byte (oppure altra misura di memoria utilizzata dal sistema operativo) del blocco stesso; in questi record, generalmente, ogni bit rappresenta un unità di memoria del blocco, ed il fatto che un bit sia uguale a 1 o a 0 sta ad indicare l utilizzo o meno della relativa unità di memoria del blocco (dove per unità di memoria s intende appunto la misura di memoria utilizzata dal S.O., qualunque essa sia). Una soluzione di questo tipo può essere adottata anche nel superblocco, per descrivere sia l utilizzo del superblocco stesso che l uso, nel loro complesso, di tutti gli altri blocchi di memoria. Un metodo già da tempo adottato per garantire l integrità delle informazioni in memoria è quello di eseguire automaticamente, al riavvio della macchina dopo un arresto non previsto, le utility per il controllo dell integrità dei dati messe spesso a disposizione assieme dal sistema operativo (ad esempio scandisk per i sistemi Microsoft, oppure e2fsck per le partizioni formattate con Ext2): l utilizzo di questi programmi, però, si sta rivelando sempre meno pratico per via delle dimensioni sempre maggiori dei dischi rigidi odierni. Questo tipo di programmi, generalmente, non compie ricerche mirate dei dati danneggiati, ma esegue scansioni complete della memoria, cercando blocco per blocco gli eventuali dati danneggiati, aumentando così il tempo necessario ad eseguire una scansione completa proporzionalmente alle dimensioni della memoria stessa. 10

11 Un metodo per garantire l integrità dei dati che ha preso piede negli ultimi anni, consiste nel registrare periodicamente le operazioni di I/O eseguite su disco all interno di un log (registro, diario), in modo da avere sempre sotto controllo quali dati sono stati realmente scritti in memoria secondaria. In linea di massima questi meccanismi funzionano tutti allo stesso modo: prima di eseguire un operazione di scrittura su disco, il file-system registra una copia dei dati che andranno ad essere scritti nella porzione di memoria adibita a registro, dati che saranno tolti dal registro soltanto dopo che l operazione di scrittura è stata eseguita. In questo modo, nel caso di arresti non previsti di sistema, il file-system può usare il registro per controllare quali operazioni di scrittura sono rimaste eventualmente incompiute, andando così a ripristinare integrità dei dati. Una soluzione di questo tipo risulta essere molto più funzionale sui sistemi odierni dell utilizzo degli appositi programmi per il controllo d integrità, ma allo stesso tempo deve far fronte a tutti i problemi d integrità dei dati nel registro che non riguardano tutto il resto della memoria in caso di blocchi improvvisi: il file-system deve essere quindi in grado di capire quali operazioni di scrittura sono andate a buon fine, indipendentemente dal fatto che il registro sia o meno stato danneggiato durante l arresto. Un altro problema che questo tipo di registri deve affrontare riguarda la scrittura su disco di file molto estesi: il fatto di porre sul registro tutti i file che devono essere scritti, indipendentemente dalla loro dimensione, causa uno spreco di memoria ed un rallentamento delle operazioni di scrittura (con questo meccanismo un file viene scritto due volte in memoria secondaria) proporzionali alla dimensione del file stesso; bisogna quindi porre un limite massimo alla dimensione dei file scrivibili in registro, ed allo stesso tempo definire una politica di trattamento della scrittura dei file di dimensioni superiori. 1.3 Problemi di occupazione del disco in sistemi multiutente Un altro dei problemi che i file-system si trovano a dover risolvere riguarda l utilizzo della memoria di massa da parte dei vari utenti di uno stesso sistema. Il centro della questione non è tanto quello di garantire un equo spazio a tutti gli utenti, ma principalmente è l impedire che l intero disco rigido venga occupato dai dati dei vari utilizzatori, impedendo così la possibilità di eseguire operazioni di manutenzione o di ripristino di informazioni su disco da parte dell amministratore. Le soluzioni per 11

12 ovviare a questo problema sono numerose, e ciascun file-system ne adotta alcune in particolare; in questo paragrafo ci si limiterà ad elencare le caratteristiche delle principali di queste. Il metodo più banale per ovviare a questo problema è quello di riservare permanentemente uno spazio minimo di memoria, di dimensione stabilita, all amministratore di sistema; in questo modo si lascia ciascun utente libero di utilizzare tutte le risorse di sistema disponibili, lasciando un minimo di spazio riservato al superutente per le operazioni d emergenza, nel caso il disco si riempisse. Una soluzione più raffinata della precedente consiste nel riservare a ciascun utente opportune porzioni di memoria, con le quali memorizzare i propri dati personali: queste porzioni prendono il nome di quote disco (disk quotas). Assieme alle quote disco può essere poi definita una serie di politiche, riguardanti l uso di queste ultime, spesso gestite dai livelli superiori del sistema operativo, e non direttamente dal file-system: viene spesso permesso di condividere le quote disco tra utenti dello stesso gruppo, oppure viene dato il permesso a certi utenti di poter usufruire delle quote disco di altri, ecc. Accanto alle politiche di gestione delle quote si affiancano poi le politiche d archiviazione dei dati: la stragrande maggioranza dei file-system odierni permette di definire il direttorio di lavoro e quello di partenza di ciascun utente, in modo che questi possa archiviare i propri dati soltanto in questi spazi definiti, a cui possono avere accesso soltanto altri utenti autorizzati; si può anche decidere di utilizzare le politiche in modo combinato, riservando tutta la quota disco di un singolo utente soltanto all interno della propria cartella di lavoro, in modo che esso non abbia la possibilità di archiviare i suoi dati fuori da quest ultima. 1.4 Preservare i dati privati da modifiche non autorizzate Accanto al problema delle quote disco e delle politiche di gestione dello spazio utente, si affiancano tutti i problemi che riguardano la garanzia dell integrità e della privatezza dei dati rispetto ad accessi effettuati da utenti non autorizzati; ecco perchè la maggior parte dei sistemi operativi multiutente prevede la possibilità di limitare l accesso ai contenuti dei file. 12

13 Tutti i sistemi di sicurezza delle memorie secondarie, utilizzati dai sistemi operativi, ruotano attorno ai concetti di utente, gruppo, permesso e proprietà. Per utente s intende ogni singolo utilizzatore, che è automaticamente identificato attraverso un codice univoco chiamato identificativo di protezione (security identifier - SID); codice che viene utilizzato dal sistema anche per identificare i profili utente, che raccolgono tutte le informazioni e le impostazioni personalizzate sull utilizzo del sistema di ogni utente. Per gruppo s intende invece un generico insieme d utenti, accomunato dal fatto di possedere le stesso codice identificativo di gruppo (group identifier GID), che viene memorizzato all interno di ciascun profilo utente. Se si definisce il termine proprietà come l insieme di tutte le operazioni che sono eseguibili su un documento o, in generale, un file, il termine permesso assume il significato di relazione tra utente o gruppo, e proprietà di un documento: un permesso di lettura, per esempio, è la relazione di autorizzazione all azione di lettura di un determinato file, concessa ad un utente oppure ad un gruppo. I sistemi di controllo d accesso ai dati degli odierni sistemi operativi hanno, in generale, alcune caratteristiche in comune:?? Accesso discrezionale ad oggetti da proteggere: il proprietario di un oggetto, ad esempio un file o una cartella, è in grado di concedere o negare l autorizzazione ai vari utenti, per controllare come e da chi l oggetto viene utilizzato.?? Ereditarietà delle autorizzazioni: gli oggetti possono ereditare l autorizzazione dall oggetto che li contiene, ad esempio un file può ereditare le autorizzazioni della cartella in cui è contenuto.?? Privilegi di amministratore: è possibile controllare gli utenti o i gruppi che possono eseguire funzioni amministrative e apportare modifiche che influiscono sulle risorse di sistema.?? Controllo di eventi di sistema: è possibile utilizzare delle funzionalità di controllo per individuare eventuali tentativi di elusione della protezione o per creare un itinerario di controllo.?? Utilizzo di liste di controllo accesso (access control list acl): le acl sono liste ordinarie di regole che vengono usate per prendere una decisione, ad esempio se permettere o meno ad un certo utente l accesso ad un file; ciascuna regola esprime una o più proprietà dell oggetto da valutare (ad esempio l autore, il nome o l indirizzo di un file), e se queste proprietà sono verificate essa indica 13

14 quale decisione prendere 1. Queste strutture non trovano impiego soltanto all interno di file system, ma sono largamente usate per la gestione degli accessi nei dispositivi di rete: esse, infatti, possono essere per esempio utilizzate nella configurazione dei firewall o come controlli di smistamento dei pacchetti passanti sui router. 1 Per una trattazione più ampia di questo tema si faccia riferimento all appendice B. 14

15 2 Il File System Virtuale di Linux (VFS) Prima di iniziare ad analizzare due file system utilizzabili su sistemi Linux, è necessario dare un paio di nozioni riguardo a come il sistema operativo dispone di un unica interfaccia in grado di relazionarsi in modo trasparente con i file system che sono utilizzati sulla memoria, e in modo indipendente da questi ultimi. In Linux, l accesso a tutti i file avviene attraverso il Virtual Filesystem Switch, o VFS [VFS]. Questo è uno strato di codice interposto tra il file-system ed il resto del sistema operativo, che implementa le operazioni generiche di file system richieste dal sistema collegandole con lo specifico codice necessario per gestirle (codice che sarà necessariamente diverso a seconda del file system utilizzato). Per ragioni di comodità, nei seguenti capitoli, si farà riferimento al Virtual Filesystem Switch anche con i termini file system virtuale e switch virtuale. La figura 2.1 mostra come il Kernel di sistema operativo intercetti tutte le richieste d accesso ai dati eseguite dalle applicazioni, le passi al VFS che, associando ad esse il corretto codice a seconda del file system su cui i dati si trovano, formula delle richieste di accesso al file system appropriate. Tutte le richieste d accesso ai dati sono gestite utilizzando un buffer dati virtuale (buffer cache), le cui operazioni in uscita vanno ad accedere alle informazioni per mezzo dei driver che comandano le memorie fisiche. Tutte queste operazioni sono eseguite in modo del tutto trasparente rispetto alle applicazioni di più alto livello, in quanto l elaborazione delle richieste avviene a livello di Kernel. 15

16 Figura 2.1: Funzionamento del VFS all interno del kernel Linux. Per meglio chiarire il funzionamento del VFS, in questo capitolo saranno utilizzate parti di codice che lo switch usa per gestire il funzionamento del file system Ext2. Il modo con cui il VFS interagisce con il codice degli altri file system è del tutto analogo a quello riportato nei paragrafi successivi. Tutto il VFS interagisce con i file system presenti sulle memorie secondarie utilizzando due entità diverse (e le relative strutture dati che le descrivono, dichiarate nel file linux/fs.h):?? Il superblocco, descritto nella struttura super_block, che contiene la descrizione del superblocco (e quindi di tutto il file system) e fornisce una serie di metodi al sistema operativo per interagire con esso.?? L inode, definito nell omonima struttura, che contiene la descrizione di un file o direttorio a cui si vuole accedere (in Linux le directory sono interpretate dal sistema come particolari tipi di file contenenti una serie di riferimenti, inode number, ad altri file). Ogni inode rappresenta un file, e contiene tutte le informazioni necessarie alla gestione del contenuto del file stesso (indirizzo fisico, nome, lunghezza, ecc.), ed è identificato da un preciso inode number 16

17 che permette di rintracciarlo all interno di una tabella in cui sono memorizzati tutti gli inode presenti sul file system (e di conseguenza anche tutti i file). Un esempio di come il VFS utilizza gli inode per organizzare i dati all interno delle directory è mostrato in figura 2.2: ogni direttorio contiene un riferimento alla tabella degli inode per ogni file in esso contenuto, e per accedere ai dati del file sarà quindi necessario andare a leggere il contenuto dello specifico inode nella tabella. L'inode table, infatti, contiene l'elenco di tutti gli inode (quindi di tutti i file) sulla partizione (questo per i file system fisici, di cui si tratta nel presente elaborato), e per ognuno di questi vengono memorizzati uno o più riferimenti alla corrispondente voce di tabella all interno dei direttori. Figura 2.2: Utilizzo della tabella degli inode per organizzare i file all'interno delle directory. Assieme a queste entità entrano anche in gioco le strutture dati ad esse correlate, che forniscono le operazioni che il sistema può eseguire sulle entità stesse; strutture che sono principalmente super_operations, inode_operations e file_operations, ed altre che sono comunque contenute in linux/fs.h. 2.1 Dove reperire il codice Il codice sorgente del VFS si trova nel sottodirettorio fs/ dei sergenti del kernel di Linux, assieme ad altre parti di codice correlate, come la buffer cache ed il codice per interagire con tutti i formati di file eseguibile. Ogni specifico file system è contenuto in una directory inferiore; per esempio, i sorgenti del file system Ext2 sono contenuti in fs/ext2/. 17

18 La tabella 2.1 riporta il nome dei file del direttorio fs/, e dà per ciascuno di essi una breve descrizione. La colonna centrale, chiamata system, vuole indicare a quale sottosistema il file è (principalmente) dedicato:?? EXE significa che i file è utilizzato per gestire ed interagire con i file eseguibili?? DEV significa che viene utilizzato come supporto ai driver per i vari dispositivi installati sulla macchina?? BUF significa gestione della buffer cache.?? VFS significa che il file è parte del file system virtuale, e delega alcune funzionalità al codice specifico di ogni file system?? VFSg indica che il codice presente nel file è completamente generico e non delega mai parte le sue funzioni a codice specifico di ogni file system. File binfmt_aout.c EXE system Funzione Esecuzione degli eseguibili di tipo a.out binfmt_elf.c EXE Esecuzione dei file eseguibili di tipo ELF binfmt_java.c EXE Esecuzione dei file java e delle applets binfmt_script.c EXE Esecuzione degli script di tipo # e! block_dev.c DEV Funzioni read(), write(), e fsync() per blocchi generici buffer.c dcache.c devices.c BUF VFS DEV Gestione della buffer cache, che memorizza i blocchi letti dai dispositivi. La directory cache, che memorizza i nomi dei direttori durante le ricerche. Funzioni per il supporto di dispositivi generici, come ad esempio i registri dquot.c VFS Supporto generico per la gestione delle quote disco. exec.c fcntl.c VFSg VFSg Supporto generico per i file eseguibili. Le funzioni di call si trovano nei files binfmt_*. Supporto per la gestione dei descrittori dei file con la funzione fcntl(). fifo.c VFSg Gestione del buffer FIFO per l accesso ai dischi. file_table.c VFSg Lista dinamicamente estensibile dei files aperti dal sistema. filesystems.c VFS Tutti il file system precompilati sono richiamati da questo file attraverso la funzione init_name_fs(). inode.c VFSg Lista dinamicamente estensibile degli inode aperti dal sistema. ioctl.c VFS Primo livello per l handling dei controlli di I/O; successivamente l handling viene passato al file system o al driver interessato, se necessario. 18

19 locks.c VFSg Supporto per le varie operazioni di locking dei file namei.c noquot.c VFS VFS Riempie l inode una volta fornito il percorso. Implementa diverse system calls collegate ai nomi dei file. Ottimizzazione per gestire il sistema nel caso non si usino le quote disco open.c VFS Contiene system calls, comprese open(), close(), and vhangup(). pipe.c VFSg Implementazione delle pipes. read_write.c VFS read(), write(), readv(), writev(), lseek(). readdir.c VFS Contiene diverse interfacce usate per la lettura delle directory select.c VFS Le basi per la system call select() stat.c VFS Supporto per stat() e readlink() super.c VFS Supporto per superblocco, filesystem registry, mount()/umount(). Tabella 2.1: Breve descrizione del contenuto dei file che compongono il codice del VFS Linux. 2.2 Collegare un file system al kernel Per poter utilizzare i dati presenti in un particolare file system, in UNIX e Linux, sono necessarie due operazioni: la registrazione del file system ed il montaggio della partizione dati. Registrare un file system significa fornire al VFS le caratteristiche del file system che si vuole utilizzare, come ad esempio il tipo di file system, in modo che lo switch virtuale sia poi in grado di reperire il codice necessario per gestire quel particolare tipo di partizione. Se si cerca nel codice di ogni file system la funzione init_name_fs(), si vede che essa contiene poche linee di codice. Per esempio, nel file system Ext2, la funzione è come segue (da fs/ext2/super.c): int init_ext2_fs(void) { } return register_filesystem(&ext2_fs_type); Tutto quello che la funzione svolge è registrare il file system nel sistema operativo attraverso la struttura ext2_fs_type: static struct file_system_type ext2_fs_type = { }; ext2_read_super, "ext2", 1, NULL 19

20 ext2_read_super è un puntatore a funzione che indica al sistema operativo l indirizzo in cui si trova la funzione per la lettura del superblocco nei file system di tipo Ext2 (operazione necessaria per montare correttamente un qualsiasi file system). ext2 è il nome del tipo di file system, che è usato (ad esempio quando si digita il comando mount -t ext2) per determinare quale file system utilizzare per montare un disco rigido. 1 indica che il file system richiede un dispositivo di memoria su cui operare (a differenza per esempio dei file system di rete, che non si relazionano direttamente con una memoria di massa, ma recuperano i dati, attraverso un interfaccia di rete, da una memoria remota), e NULL è necessario per riempire lo spazio che verrà utilizzato per mantenere una linked list di tutti i file system nel registro del VFS, contenuto in fs/super.c. 2.3 Connettere un file system al disco Il resto della comunicazione tra il codice del file system ed il Kernel non avviene finché non viene montato un dispositivo (partizione dati, o intero disco rigido) che utilizza quel tipo di file system. Quando si monta un dispositivo contenente un file system di tipo Ext2, viene chiamata la funzione ext2_read_super() che, andando a leggere i dati contenuti nel superblocco, fornisce al sistema operativo i dati riguardanti la struttura fisica della partizione. Se la lettura del superblocco avviene con successo e la funzione è in grado di collegare lo specifico file system al disco che si vuole montare, essa riempie la struttura super_block con diverse informazioni che includono un puntatore alla struttura chiamata super_operations, che a sua volta contiene puntatori a funzioni volte alla manipolazione dei superblocchi; in questo caso, puntatori a funzioni specifiche di Ext2. Il superblocco è la parte di memoria che definisce la struttura dell intero file system su di un dispositivo, e le operazioni che riguardano il file system nella sua interezza (al contrario delle operazioni che riguardano i singoli file) sono considerate operazioni di superblocco. La struttura dati super_operations contiene puntatori a funzione volte alla manipolazione degli inode, del superblocco, e che notificano o cambiano lo stato del file system nel suo complesso (statfs() e remount()). 20

21 Ecco com è definita la struttura super_operations nel file system virtuale (da linux/fs.h): struct super_operations { void (*read_inode) (struct inode *); int (*notify_change) (struct inode *, struct iattr *); void (*write_inode) (struct inode *); void (*put_inode) (struct inode *); void (*put_super) (struct super_block *); void (*write_super) (struct super_block *); void (*statfs) (struct super_block *, struct statfs *, int); int (*remount_fs) (struct super_block *, int *, char *); }; Come si nota, tutti i dati definiti dalla struttura sono puntatori a funzione, che andranno a contenere l indirizzo di memoria a cui reperire le funzioni che saranno usate dal VFS per interagire con i dati sulle memorie di massa. Sotto viene riportata la dichiarazione più semplice di istanza di questa struttura nel file system Ext2, che rappresenta le funzioni che questo file system fornisce allo switch virtuale associandole a super_operations (vedi in fs/ext2/super.c): static struct super_operations ext2_sops = { ext2_read_inode, NULL, ext2_write_inode, ext2_put_inode, ext2_put_super, ext2_write_super, ext2_statfs, ext2_remount }; Quando un file system viene connesso al disco (ed il modulo che si prende carico di questo compito corrisponde al file sorgente fs/super.c), la funzione do_umount() chiama read_super la quale, a sua volta, termina chiamando (nel caso si stia utilizzando il file system Ext2) ext2_read_super(), funzione che ritorna il superblocco al resto del sistema operativo. Il superblocco ritornato contiene un 21

22 riferimento alla struttura ext2_super_operations; esso include anche molti altri dati, che possono essere reperiti nello specifico all interno della definizione di struct super_block in include/linux/fs.h. 2.4 Trovare un file Una volta che il file system è stato montato correttamente, è possibile accedere ai file che sono presenti al suo interno. I passi da compiere in questo caso sono due: utilizzare il nome del file per trovare l inode da esso puntato, e quindi accedere all inode. Quando il file system virtuale cerca il nome di un file o di un direttorio, esso include nella ricerca anche il suo percorso, operazione che viene fatta automaticamente dal sistema se il nome dell oggetto da trovare non è un nome assoluto (cioè non ha inizio col carattere / ). Per trovare gli oggetti in memoria, il sistema operativo utilizza il codice specifico del file-system in cui i dati sono memorizzati; esso esamina il percorso del file un componente per volta (le varie componenti di un percorso sono separate dal carattere / ). Se il componente preso in esame è una directory, allora il componente successivo sarà cercato all interno del direttorio appena trovato. Ogni componente che viene identificato, indipendentemente dal fatto che sia un file o un direttorio, ritorna un inode number che lo identifica univocamente, ed attraverso il quale sono resi disponibili i contenuti dell oggetto. Se eventualmente l oggetto trovato risultasse essere un collegamento simbolico ad un altro file, allora il VFS inizierebbe una nuova ricerca di file, il cui nome è quello restituito dal collegamento simbolico. Al fine di prevenire cicli di ricerca ricorsivi infiniti, viene posto un limite alla profondità dei collegamenti simbolici: il Kernel seguirà soltanto un certo numero di collegamenti ricorsivi prima di interrompere l operazione segnalando un errore. Solo dopo che il VFS ed il file system hanno recuperato il numero di inode dal nome del file (compito svolto dalla routine namei(), in namei.c) è possibile accedere ai contenuti dell inode. La funzione iget() trova e ritorna al sistema operativo l inode identificato dall inode number che gli viene fornito come parametro; la funzione iput() è invece utilizzata dal sistema per rilasciare l accesso ad un inode che non deve più essere utilizzato. Queste funzioni, in linea di principio, sono simili a malloc() e free(), con l unica 22

23 differenza che più processi possono mantenere simultaneamente l accesso ad uno stesso inode, inoltre viene mantenuto un conteggio dei processi attivi che fanno uso di quest ultimo, in modo da poter conoscere quando l inode può essere effettivamente rilasciato dal file-system. Il file handle 2 che viene passato al codice di una generica applicazione dopo la richiesta di accesso ad un file, è in realtà un numero di tipo integer che indica l offset (distanza dall inizio di tabella) sulla tabella dei file per trovare la voce cercata; la voce della tabella a cui l applicazione può accedere in questo modo, contiene l inode number che era stato cercato dalla funzione namei() fino a quando il file non viene chiuso dal processo o è il processo stesso a terminare. Quando un qualsiasi processo fa una qualsiasi operazione su di un file utilizzando i file handle, essa va in realtà a manipolare ed interagire con il relativo inode. 2.5 Operazioni sugli inode L inode number e la struttura di inode stessa non possono essere creati dal VFS stesso, esse devono essere fornite dal file system, in quanto è questa ultima parte di codice che gestisce l interazione del resto del sistema operativo con i dati presenti in memoria secondaria. Di seguito viene riportato in che modo il file system virtuale ottiene il numero di inode partendo dal nome del file a cui si vuole accedere. Il VFS inizia la ricerca della prima directory contenuta nel percorso, che dal suo nome ricava il relativo inode; a questo punto l inode è utilizzato per trovare il direttorio 3 successivo contenuto nel percorso, e così via fino ad esaurire i componenti del percorso. Quando in questo modo la ricerca raggiunge la fine, il sistema ricava l inode relativo al file o al direttorio che stava cercando. Una ricerca di questo tipo può iniziare solo se il VFS ha a disposizione un inode di partenza, cosa che viene fornita al momento del montaggio del file system dal superblocco, attraverso un puntatore ad inode contenuto in quest ultimo chiamato s_mounted, che contiene un riferimento ad una struttura di tipo inode per l intero file system. Questo inode è allocato quando il file system viene 2 Un file handle è, in genere, una struttura dati che permette ad un applicazione di alto livello di accedere ed eventualmente modificare i dati presenti in un file; è il meccanismo con cui il codice del sistema operativo permette alle applicazioni di utilizzare i dati nelle memorie, ed è fornito dal sistema operativo a seguito della richiesta di accesso ad un file da parte di un applicazione. 3 Vedi il paragrafo relativo alla gestione dei direttori nel capitolo su Ext3. 23

24 montato, e rimosso dalla memoria all atto dello smontaggio. L inode s_mounted rappresenta il direttorio di root nei file system Linux, e quindi anche in Ext2 ed Ext3, e partendo da questo possono essere ritrovati gli altri inode presenti in memoria. Ogni inode ha inoltre un puntatore ad una struttura a sua volta composta di puntatori a funzione, struttura che prende il nome di inode_operations. L elemento chiamato lookup() è quello che viene usato dal VFS per recuperare un altro inode presente sullo stesso file system. In generale un file system ha soltanto una funzione lookup(), che viene utilizzata per ogni inode presente su di esso, ma è anche possibile avere diverse funzioni di lookup() che possono sono utilizzate su un unica partizione; il file system proc consente questa molteplicità perché su di esso esistono direttori che hanno funzioni differenti. La struttura inode_operations è la seguente (definita in linux/fs.h). struct inode_operations { struct file_operations * default_file_ops; int (*create) (struct inode *,const char *,int,int,struct inode **); int (*lookup) (struct inode *,const char *,int,struct inode **); int (*link) (struct inode *,struct inode *,const char *,int); int (*unlink) (struct inode *,const char *,int); int (*symlink) (struct inode *,const char *,int,const char *); int (*mkdir) (struct inode *,const char *,int,int); int (*rmdir) (struct inode *,const char *,int); int (*mknod) (struct inode *,const char *,int,int,int); int (*rename) (struct inode *,const char *,int,struct inode *,const char *,int); int (*readlink) (struct inode *,char *,int); int (*follow_link) (struct inode *,struct inode *,int,int,struct inode **); int (*readpage) (struct inode *, struct page *); int (*writepage) (struct inode *, struct page *); int (*bmap) (struct inode *,int); void (*truncate) (struct inode *); int (*permission) (struct inode *, int); int (*smap) (struct inode *,int); }; 24

25 La maggior parte di queste funzioni è direttamente riferita ad una precisa chiamata di sistema (system call). In Ext2 e in Ext3, direttori, file e link simbolici hanno differenti istanze di inode_operations (cosa verificata anche in molti altri sistemi operativi), esse sono reperibili nei seguenti file:?? fs/ext2/dir.c contiene la struttura ext2_dir_inode_operations?? fs/ext2/file.c contiene la struttura ext2_file_inode_operation?? fs/ext2/symlink.c contiene ext2_symlink_inod_operations Esistono poi diverse system call riguardanti file (e direttori) che non sono comprese all interno della struttura inode_operations, e si trovano invece all interno della struttura file_operations: struttura che contiene tutte le funzioni che operano specificamente sui file e sul loro contenuto, piuttosto che sugli inode; la dichiarazione della struttura è riportata di seguito. struct file_operations { int (*lseek) (struct inode *, struct file *, off_t, int); int (*read) (struct inode *, struct file *, char *, int); int (*write) (struct inode *, struct file *, const char *, int); int (*readdir) (struct inode *, struct file *, void *, filldir_t); int (*select) (struct inode *, struct file *, int, select_table *); int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); int (*mmap) (struct inode *, struct file *, struct vm_area_struct *); int (*open) (struct inode *, struct file *); void (*release) (struct inode *, struct file *); int (*fsync) (struct inode *, struct file *); int (*fasync) (struct inode *, struct file *, int); int (*check_media_change) (kdev_t dev); int (*revalidate) (kdev_t dev); }; 25

26 Al di là degli esempi presentati in questo capitolo, dunque, secondo il modello VFS, il ruolo di uno specifico file system è quello di fornire un superblocco, una lista di inode (uno per ogni file presente), e di fornire un implementazione che supporti le operazioni richieste dal sistema operativo (come appunto apertura, lettura, scrittura su file), cosa che viene fatta attraverso le strutture e le routine prese in analisi in questo capitolo. Le strutture file_operations, inode_operations e super_operations, una volta che il file system viene montato, andranno a contenere tutti i riferimenti che servono al sistema operativo per reperire le funzioni che implementano le operazioni sui file per quel determinato tipo di file system. 26

27 3 Il File system Ext3 In questo capitolo sarà preso in analisi il file system ext3, diretto discendente di ext2, dal quale eredita gran parte del suo codice sorgente e lo mantiene in sostanza immutato. Questo filesystem, infatti, rappresenta un adeguamento alle necessità odierne di un file system già molto stabile e versatile, a cui sono state aggiunte parti di codice per aumentarne le funzionalità, la più importante delle quali, come si vedrà in seguito, è l implementazione di un journaling layer. Il modo con cui ext3 interagisce con i livelli più alti del sistema operativo è esattamente lo stesso che viene utilizzato in ext2, l unica cosa che cambia, ovviamente, sono i direttori in cui i sorgenti dei due file system possono essere reperiti. 3.1 Struttura fisica Il file system è costituito di tanti gruppi di blocchi (block groups) di memoria secondaria, che non hanno però necessariamente una corrispondenza diretta con i blocchi fisici sulla memoria di massa, specialmente da quando i dischi rigidi sono stati ottimizzati per le operazioni di lettura sequenziale e quindi tendono a nascondere la loro struttura fisica al sistema operativo che li gestisce[vfs/ext2]. La struttura fisica del file system è rappresentata nella figura 3.1. BOOT Sector Superblocco Gruppo di blocchi 1 Gruppo di blocchi 2 Gruppo di blocchi 3 Gruppo di blocchi 4 Gruppo di blocchi n Copia del Descrittore Superblocco di gruppo Block Bitmap Inode Bitmap Parte della inode Table Blocchi Dati Figura 3.1: Organizzazione della memoria nei file system Ext3. 27

28 Il punto di partenza per il file system è sempre il superblocco, che è una struttura dati di 1024 bytes allocata ad una distanza di 1024 bytes dall inizio della partizione; il resto della memoria viene diviso in vari gruppi di blocchi. Ogni gruppo di blocchi contiene una copia delle informazioni fondamentali di controllo della memoria (superblocco ed i descrittori di file system), ed inoltre contiene una parte del file system: una block bitmap, una inode bitmap, una parte della tabella degli inode (inode table) ed i blocchi dati. La tabella degli inode non viene quindi memorizzata tutta in un particolare settore di memoria, ma è suddivisa nei vari block groups in modo che ogni file si trovi nei limiti del possibile nello stesso gruppo di blocchi del corrispondente inode, così da ridurre al minimo gli spostamenti delle testine del disco durante le richieste d accesso ai contenuti di un file. L utilizzo dei gruppi di blocchi rappresenta un vantaggio anche in termini di affidabilità del sistema, visto che la replicazione delle strutture dati di controllo in ogni block group consente un facile recupero del superblocco nel caso questo risulti essere corrotto o danneggiato. La presenza della copia del superblocco in ogni gruppo può essere impostata attraverso l uso della flag SPARSE_SUPERBLOCK, che a seconda del suo stato notifica o meno la presenza del superblocco all interno di un block group. In questo modo è possibile diminuire lo spreco di memoria evitando di mantenere una copia del superblocco in ogni gruppo, memorizzandola soltanto all interno di alcuni. Il descrittore di gruppo contiene le informazioni riguardanti la struttura del gruppo di blocchi a cui appartiene, ed è una struttura dati formata dai seguenti elementi: Nome campo bg_block_bitmap bg_inode_bitmap tipo di dato ULONG ULONG commento Contiene l indirizzo del blocco in cui è immagazzinata la block bitmap per questo gruppo. Contiene l indirizzo in cui è memorizzata l inode bitmap per questo gruppo. 28

Capitolo 11 -- Silberschatz

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

Dettagli

File system II. Sistemi Operativi Lez. 20

File system II. Sistemi Operativi Lez. 20 File system II Sistemi Operativi Lez. 20 Gestione spazi su disco Esiste un trade-off,tra spreco dello spazio e velocità di trasferimento in base alla dimensione del blocco fisico Gestione spazio su disco

Dettagli

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

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

Dettagli

Il Software. Il software del PC. Il BIOS

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

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

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

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

Dettagli

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

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

Dettagli

Il File System. Il file system

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

Dettagli

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

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

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

Dettagli

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

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

Dettagli

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

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

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

Sistemi Operativi Il Sistema Operativo Windows (parte 3) Sistemi Operativi Il Sistema Operativo Windows (parte 3) Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Architettura di NTFS 1 NTFS file system adottato

Dettagli

Protezione. Protezione. Protezione. Obiettivi della protezione

Protezione. Protezione. Protezione. Obiettivi della protezione Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in

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

Software di base. Corso di Fondamenti di Informatica

Software di base. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Software di base Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

Strutturazione logica dei dati: i file

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

Dettagli

12. Implementazione di un File System. 12.1.1 Struttura a livelli. 12.2.1 Allocazione contigua

12. Implementazione di un File System. 12.1.1 Struttura a livelli. 12.2.1 Allocazione contigua 12. Implementazione di un File System 1 Struttura del file system Metodi di allocazione Gestione dello spazio libero Implementazione delle directory Prestazioni ed efficienza 2 Utente 12.1.1 Struttura

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

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Il Sistema Operativo: il File System

Il Sistema Operativo: il File System Il Sistema Operativo: il File System Il File System è quella parte del S.O. che si occupa di gestire e strutturare le informazioni memorizzate su supporti permanenti (memoria secondaria) I file vengono

Dettagli

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

Dettagli

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA) Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Capitolo 13. Interrogare una base di dati

Capitolo 13. Interrogare una base di dati Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per

Dettagli

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A. 2005-2006

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A. 2005-2006 Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione Corso di Sistemi Operativi A. A. 2005-2006 Link e permessi Link Un riferimento ad un file è detto link Ogni file può avere un numero

Dettagli

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,

Dettagli

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

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

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

Dettagli

Procedura per la configurazione in rete di DMS.

Procedura per la configurazione in rete di DMS. Procedura per la configurazione in rete di DMS. Sommario PREMESSA... 2 Alcuni suggerimenti... 2 Utilizzo di NAS con funzione di server di rete - SCONSIGLIATO:... 2 Reti wireless... 2 Come DMS riconosce

Dettagli

Drivers. Introduzione Tipologie Struttura Interazione con il kernel

Drivers. Introduzione Tipologie Struttura Interazione con il kernel Drivers Introduzione Tipologie Struttura Interazione con il kernel Driver Un driver è un modulo del sistema operativo Esterno al kernel Dedicato alla gestione di una specifica periferica Come altre funzionalità

Dettagli

Sistemi Operativi. Lez. 16 File System: aspetti implementativi

Sistemi Operativi. Lez. 16 File System: aspetti implementativi Sistemi Operativi Lez. 16 File System: aspetti implementativi Layout disco Tutte le informazioni necessarie al file system per poter operare, sono memorizzate sul disco di boot MBR: settore 0 del disco,

Dettagli

Corso di Amministrazione di Reti A.A. 2002/2003

Corso di Amministrazione di Reti A.A. 2002/2003 Struttura di Active Directory Corso di Amministrazione di Reti A.A. 2002/2003 Materiale preparato utilizzando dove possibile materiale AIPA http://www.aipa.it/attivita[2/formazione[6/corsi[2/materiali/reti%20di%20calcolatori/welcome.htm

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

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

Dettagli

Le Infrastrutture Software ed il Sistema Operativo

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

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

Installazione LINUX 10.0

Installazione LINUX 10.0 Installazione LINUX 10.0 1 Principali passi Prima di iniziare con l'installazione è necessario entrare nel menu di configurazione del PC (F2 durante lo start-up) e selezionare nel menu di set-up il boot

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

FPf per Windows 3.1. Guida all uso

FPf per Windows 3.1. Guida all uso FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete

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

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

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

Dettagli

Implementazione del File System

Implementazione del File System Implementazione del file system Implementazione del File System Struttura del file system. Realizzazione del file system. Implementazione delle directory. Metodi di allocazione. Gestione dello spazio libero.

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

1. BASI DI DATI: GENERALITÀ

1. BASI DI DATI: GENERALITÀ 1. BASI DI DATI: GENERALITÀ BASE DI DATI (DATABASE, DB) Raccolta di informazioni o dati strutturati, correlati tra loro in modo da risultare fruibili in maniera ottimale. Una base di dati è usualmente

Dettagli

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

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

Dettagli

Sistemi Operativi. Organizzazione logica ed implementazione di un File System

Sistemi Operativi. Organizzazione logica ed implementazione di un File System Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Organizzazione logica ed implementazione di un File

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 Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate

Dettagli

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia L informatica È la disciplina scientifica che studia INTRODUZIONE I calcolatori, nati in risposta all esigenza di eseguire meccanicamente operazioni ripetitive Gli algoritmi, nati in risposta all esigenza

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

FoLUG Forlì Linux User Group. Partizionamento

FoLUG Forlì Linux User Group. Partizionamento FoLUG Forlì Linux User Group con la partecipazione della Circoscrizione n 3 di Forlì Partizionamento Quello che occorre sapere sul disco fisso per installare UBUNTU 10.10 o altri sistemi operativi. FoLUG

Dettagli

Mac Application Manager 1.3 (SOLO PER TIGER)

Mac Application Manager 1.3 (SOLO PER TIGER) Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i

Dettagli

EXPLOit Content Management Data Base per documenti SGML/XML

EXPLOit Content Management Data Base per documenti SGML/XML EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per

Dettagli

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...

Dettagli

Introduzione al data base

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

Dettagli

MANUALE UTENTE Fiscali Free

MANUALE UTENTE Fiscali Free MANUALE UTENTE Fiscali Free Le informazioni contenute in questa pubblicazione sono soggette a modifiche da parte della ComputerNetRimini. Il software descritto in questa pubblicazione viene rilasciato

Dettagli

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith Configurazione della ricerca desktop di Nepomuk Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith 2 Indice 1 Introduzione 4 1.1 Impostazioni di base....................................

Dettagli

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

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

Dettagli

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

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

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

Dettagli

PORTALE CLIENTI Manuale utente

PORTALE CLIENTI Manuale utente PORTALE CLIENTI Manuale utente Sommario 1. Accesso al portale 2. Home Page e login 3. Area riservata 4. Pagina dettaglio procedura 5. Pagina dettaglio programma 6. Installazione dei programmi Sistema operativo

Dettagli

Struttura del Micro Filesystem (µfs)

Struttura del Micro Filesystem (µfs) Struttura del Micro Filesystem (µfs) Il Micro Filesystem deve essere organizzato all'interno di un unico file regolare Linux (dev_ufs) ed può basato sul filesystem FAT-32 con la gestione dei permessi in

Dettagli

Organizzazione della memoria

Organizzazione della memoria Memorizzazione dati La fase di codifica permette di esprimere qualsiasi informazione (numeri, testo, immagini, ecc) come stringhe di bit: Es: di immagine 00001001100110010010001100110010011001010010100010

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore ARPA Fonte Dati Regione Toscana 1 Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.1 Data emissione 09/10/13 Stato FINAL 2 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 1.1 09/10/2013

Dettagli

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione Il sistema di I/O Hardware di I/O Interfacce di I/O Software di I/O Introduzione 1 Sotto-sistema di I/O Insieme di metodi per controllare i dispositivi di I/O Obiettivo: Fornire ai processi utente un interfaccia

Dettagli

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti) (Esercizi Tratti da Temi d esame degli ordinamenti precedenti) Esercizio 1 L'agenzia viaggi GV - Grandi Viaggi vi commissiona l'implementazione della funzione AssegnaVolo. Tale funzione riceve due liste

Dettagli

Lezione 1. Introduzione e Modellazione Concettuale

Lezione 1. Introduzione e Modellazione Concettuale Lezione 1 Introduzione e Modellazione Concettuale 1 Tipi di Database ed Applicazioni Database Numerici e Testuali Database Multimediali Geographic Information Systems (GIS) Data Warehouses Real-time and

Dettagli

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica Consiglio regionale della Toscana Regole per il corretto funzionamento della posta elettronica A cura dell Ufficio Informatica Maggio 2006 Indice 1. Regole di utilizzo della posta elettronica... 3 2. Controllo

Dettagli

Terza lezione: Directory e File system di Linux

Terza lezione: Directory e File system di Linux Terza lezione: Directory e File system di Linux DIRECTORY E FILE SYSTEM Il file system di Linux e Unix è organizzato in una struttura ad albero gerarchica. Il livello più alto del file system è / o directory

Dettagli

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

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

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

Altri metodi di indicizzazione

Altri metodi di indicizzazione Organizzazione a indici su più livelli Altri metodi di indicizzazione Al crescere della dimensione del file l organizzazione sequenziale a indice diventa inefficiente: in lettura a causa del crescere del

Dettagli

PARTE 4 La Macchina Software

PARTE 4 La Macchina Software PARTE 4 La Macchina Software 94 Macchina Hardware e Macchina Software applicativi sistema operativo macchina hardware Agli albori dell'informatica, si programmava in binario, cioe` in linguaggio macchina,

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

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente

Dettagli

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO IL SOFTWARE L HARDWARE da solo non è sufficiente a far funzionare un computer Servono dei PROGRAMMI (SOFTWARE) per: o Far interagire, mettere in comunicazione, le varie componenti hardware tra loro o Sfruttare

Dettagli

MODULO 5 Appunti ACCESS - Basi di dati

MODULO 5 Appunti ACCESS - Basi di dati MODULO 5 Appunti ACCESS - Basi di dati Lezione 1 www.mondopcnet.com Modulo 5 basi di dati Richiede che il candidato dimostri di possedere la conoscenza relativa ad alcuni concetti fondamentali sui database.

Dettagli

Informatica e Bioinformatica: Sistemi Operativi

Informatica e Bioinformatica: Sistemi Operativi Informatica e Bioinformatica: Sistemi Operativi 11 marzo 2013 Macchina Hardware/Software Sistema Operativo Macchina Hardware La macchina hardware corrisponde alle componenti fisiche del calcolatore (quelle

Dettagli

Introduzione al sistema operativo Il file system: file, directory,...

Introduzione al sistema operativo Il file system: file, directory,... ,OVRIWZDUHGLVLVWHPD cosa vedremo: Introduzione al sistema operativo Il file system: file, directory,...... 223,OVRIWZDUHLQWURGX]LRQH L hardware da solo non è sufficiente per il funzionamento dell elaboratore

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

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

Capitolo 2. Operazione di limite

Capitolo 2. Operazione di limite Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A

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

4.5 CONTROLLO DEI DOCUMENTI E DEI DATI

4.5 CONTROLLO DEI DOCUMENTI E DEI DATI Unione Industriale 35 di 94 4.5 CONTROLLO DEI DOCUMENTI E DEI DATI 4.5.1 Generalità La documentazione, per una filatura conto terzi che opera nell ambito di un Sistema qualità, rappresenta l evidenza oggettiva

Dettagli

Informatica DR KLOE Calcolo

Informatica DR KLOE Calcolo Informatica DR KLOE Calcolo Progettazione e gestione sotto il sistema operativo Unix di un database per un esperimento che produce almeno 1200 Terabyte. Informatica DR KLOE Calcolo Tutore: Giuseppe Fortugno

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

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

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

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli