Lezione T10 Implementazione FS

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Lezione T10 Implementazione FS"

Transcript

1 Lezione T10 Implementazione FS Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2013/2014 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio Emilia 1

2 Quote of the day (Meditate, gente, meditate...) Theory and practice sometimes clash. And when that happens, theory loses. Every single time. Linus Torvalds (1969-) Programmatore Autore di Linux e di GIT 2

3 PREPARAZIONE DI UN DISPOSITIVO 3

4 Formattazione a basso livello (Preparazione della superficie magnetica) La formattazione a basso livello è una procedura mediante la quale il dispositivo è preparato al primo uso (solitamente, la creazione di un file system). Operazione oggi svolta in fabbrica, una volta tramite programmi opportuni. La superficie del dispositivo è marcata in settori. Il settore è la più piccola porzione indirizzabile dalla testina del dispositivo (in un disco rigido, è 4 grande 512 byte).

5 Formato di un settore (Preparazione della superficie magnetica) Preambolo: marcatura indicante l'inizio di un settore (usata dalla testina per sincronizzarsi). Error Correcting Code (ECC): Codice per la correzione automatica degli errori. Intersector gap: separazione fra settori. 5

6 Partizionamento (Old school) Il disco rigido può essere suddiviso staticamente in più zone distinte, note con il nome di partizioni. L'operazione di suddivisione prende il nome di partizionamento. Ciascuna delle partizioni può ospitare: un file system. un'area di swap (swap partition). spazio non utilizzato (raw partition). 6

7 Disco rigido Partizioni di un disco (Uno schema rigido) / /home swap 7

8 Pro 1/2 (Perché è consigliato partizionare il disco?) Possibilità di installare più SO sullo stesso disco. Aumentato livello di protezione: una struttura di file system rovinata non ha effetti sui file system in altre partizioni. Aumento dell'efficienza delle operazioni di recupero: è possibile controllare due file system in parallelo. 8

9 Pro 2/2 (Perché è consigliato partizionare il disco?) Limitazione dello spazio a disposizione: ad esempio, si può impedire che i file di log riempiano il file system di root, confinandoli in una partizione separata sufficientemente grande. Memoria virtuale: implementazione di un'area di swap. 9

10 Contro (Perché le partizioni sono un concetto obsoleto?) Una volta create, le partizioni non possono essere modificate facilmente. Le partizioni sono in chiaro, sempre. 10

11 Gestione per volumi logici (Risolve i problemi del partizionamento statico) L'idea alla base dei volumi logici è quella di avere partizioni non rigide. Modificabili (espansione, riduzione). Estendibili su più dischi. Criptabili. 11

12 Volume fisico (Il disco fisico) Un volume fisico è una partizione di un disco rigido usabile per i volumi. Il contenuto del volume fisico è organizzato come una sequenza di blocchi fisici (physical extent). 12

13 Volumi fisici (Uno schema flessibile) Partizione statica Partizione statica Partizione statica Tre volumi fisici su tre partizioni di dischi diversi. Ogni rettangolo è un blocco fisico utilizzabile per un volume logico. 13

14 Gruppo di volumi (Tutti i volumi logici correlati fra loro sono raggruppati insieme) Un gruppo di volumi è la totalità dei blocchi fisici offerti da un certo numero di volumi fisici. Tali blocchi possono essere usati per costruire ed estendere i volumi logici. 14

15 Gruppi di volumi (Uno schema flessibile) Partizione statica Partizione statica Partizione statica Gruppo di volumi PE 1 PE 2 PE 3 PE 4 PE 5 PE

16 Volume logico (L'evoluzione delle partizioni) Un volume logico è un insieme di blocchi logici (logical extent) pescati dal gruppo cui esso appartiene. Per il resto, è usato esattamente come una partizione. 16

17 Volumi logici (Uno schema flessibile) Partizione statica Partizione statica Partizione statica Gruppo di volumi PE 1 PE 2 PE 3 PE 4 PE 5 PE 6... Volume logico LE 1 LE 2 LE 3 Volume logico LE 1 LE 2 LE 3 17

18 Superblocco (Cosa contiene?) Il superblocco è il primo blocco di un file system, contenente informazioni sullo stesso. Tipo, dimensione, stato (file system pulito o da controllare), locazione delle altre strutture. Ogni file system definisce il proprio tipo di superblocco. In EXT4 si usa la struttura dati struct ext4_super_block, definita in: $LINUX/fs/ext4/ext4.h 18

19 Formattazione ad alto livello (Creazione di un file system sulla partizione) La formattazione ad alto livello è una procedura mediante la quale un file system è inizializzato su una partizione o un volume logico. Scrive il superblocco. Crea diverse copia del superblocco (opzionale). Prepara uno spazio per i FCB. Prepara uno spazio per l'elenco dei blocchi liberi. Prepara una sequenza di blocchi liberi. 19

20 Partizione Layout del file system EXT3 (Più semplice rispetto ad EXT4) Boot sector Block Group 0... Block Group n Settori non utilizzati Super blocco Descrittore di gruppi Bitmap dei blocchi (1 blocco) Bitmap degli inode (1 blocco) Tabella degli inode Blocchi di dati Quali FCB sono presenti nel gruppo Blocchi liberi e occupati FCB liberi ed occupati FCB Blocchi del file system (liberi o usati) 20

21 ALLOCAZIONE DEI BLOCCHI 21

22 Lo scenario (A cosa sono soggetti kernel e disco) Solitamente, diversi processi vogliono scrivere sul disco contemporaneamente. Il SO si trova nella situazione di dover allocare blocchi di file system a diversi processi, per le operazioni di scrittura. Come allocare tali blocchi, in modo tale da usare lo spazio libero in maniera efficace? garantire un accesso veloce ai file (record logicamente vicini dovrebbero corrispondere a blocchi su disco fisicamente vicini)? 22

23 Frammentazione interna (Blocco troppo grande può non essere usato tutto) Se il blocco è di dimensione grande, un processo che scrive file piccoli rischia di allocare un blocco e di usarne una minima parte, con enorme spreco di spazio. Si ha frammentazione interna. 23

24 Frammentazione interna (Blocco troppo grande può non essere usato tutto) Se il blocco è di dimensione piccola, un processo che scrive file grandi rischia di richiedere tantissimi blocchi, potenzialmente sparpagliati sul disco. In seguito a creazioni e cancellazioni di file, i blocchi liberi risultano disposti a gruviera. Si ha frammentazione esterna. 24

25 Strategie di assegnazione dei blocchi (Obiettivo: ridurre frammentazione interna ed esterna) Esistono tre distinte strategie di assegnazione dei blocchi. Assegnazione contigua. Assegnazione concatenata. Assegnazione indicizzata. 25

26 Assegnazione contigua: definizione (Un file un insieme di blocchi contigui su disco) Nell'assegnazione contigua un file occupa un insieme di blocchi contigui sul disco. L'ordinamento dei blocchi fisici è dato dagli indirizzi associati ai blocchi fisici. Primo blocco del file indirizzo più basso. Secondo blocco del file indirizzo successivo. Per un file lungo n blocchi, memorizzato a partire dal blocco b, verranno occupati i blocchi b, b+1, b+2,..., b+n-1 sul disco. Usato in: IBM VM/CMS. 26

27 Partizione count Assegnazione contigua: schema (Un diagramma vale più di 1000 parole) f tr mail File Blocco iniziale Lunghezza count 0 2 tr 14 3 mail 19 6 list 28 4 f list 27

28 Assegnazione contigua: pro (Perché conviene adottarla) La lettura sequenziale di un file avviene in modo ottimale. La testina del disco si sposta al più una volta, per posizionarsi all'inizio del file. Grazie alla contiguità dei blocchi. Se un file è grande può essere memorizzato su più tracce contigue. Gli spostamenti richiesti dalla testina sono minimi. Uno per ogni traccia occupata dal file. Spostamento minimo (tracce contigue). 28

29 Assegnazione contigua: contro 1/3 (Perché non conviene adottarla) In caso di creazioni e cancellazioni frequenti di file, il disco tenderà ad alternare sequenze di blocchi occupati a sequenze di blocchi liberi. Alla lunga, si presenta il problema della frammentazione esterna. Un file sufficientemente grande non può essere memorizzato. La somma dei blocchi liberi costituisce spazio sufficiente, ma non esiste alcun singolo insieme contiguo di blocchi sufficientemente grande. Rimedio semplice: deframmentazione del disco. 29

30 Assegnazione contigua: contro 2/3 (Perché non conviene adottarla) In generale, è necessario stimare la dimensione del file che si vuole creare, altrimenti non si è in grado di trovare un insieme di blocchi contigui adatto. Tuttavia, è molto difficile prevedere la futura dimensione di un file. Se si sbaglia la stima della dimensione, un file rischia di essere limitato ad una dimensione errata. Rimedi: Il kernel deve segnalare un messaggio di errore oppure provare a copiare il file in un insieme contiguo più grande. 30

31 Assegnazione contigua: contro 3/3 (Perché non conviene adottarla) In alcuni casi, stimare la dimensione del file è semplicemente impossibile. Un esempio classico è rappresentato da un file cresce lentemente nel tempo. Configurazione. Registro di sistema. Log. In tal caso, si deve prenotare in anticipo un blocco contiguo enorme. 31

32 Estensioni (extent) (Un tentativo disperato di limitare i problemi) Per risolvere i problemi della frammentazione esterna e della variabilità dei file, alcuni file system utilizzano le estensioni (extent). Inizialmente, ad un file è assegnata una porzione di spazio contigua. Quando la porzione è riempita, si assegna un'altra porzione contigua (detta estensione). Il file system registra l'inizio e la lunghezza dell'estensione. 32

33 Estensioni: problemi (Ostacoli sulla via) La scelta della dimensione di un'estensione è critica. Dimensione troppo piccola: a forza di creare e cancellare file si presenta il problema della frammentazione esterna. Dimensione troppo grande: l'estensione rischia di non essere usata interamente; si presenta il problema della frammentazione interna. 33

34 Assegnazione concatenata: definizione (Un file una lista concatenata di blocchi su disco) Nell'assegnazione concatenata un file è composto da una lista concatenata di blocchi. L'elemento della directory contiene un puntatore al primo blocco del file. Il blocco i-mo contiene un puntatore al blocco (i+1)-mo. L'ultimo blocco contiene un puntatore ad un nodo fittizio (solitamente, il blocco -1 ). Usato in: FAT (MS-DOS, Windows). 34

35 Assegnazione concatenata: schema (Un diagramma vale più di 1000 parole) Partizione count File Blocco iniziale Blocco finale jeep

36 Assegnazione concatenata: pro (Perché conviene adottarla) Un blocco libero può essere localizzato ovunque nel disco. Il problema della frammentazione esterna è risolto. La deframmentazione non è più necessaria dal punto di vista funzionale (lo è ancora dal punto di vista prestazionale). Non è più richiesta una stima della dimensione del file. Un file può crescere indefinitamente. 36

37 Assegnazione concatenata: contro 1/2 (Perché non conviene adottarla) Solo l'accesso sequenziale è efficiente. Accesso diretto ad un blocco scansione della lista dal blocco iniziale fino a quello considerato. Se i blocchi del file sono sparpagliati su disco, neanche l'accesso sequenziale è efficiente. Blocchi sparpagliati la testina del disco si muove all'impazzata per ogni blocco letto, accumulando ritardi di diversi ms. 37

38 Assegnazione concatenata: contro 2/2 (Perché non conviene adottarla) L'affidabilità peggiora rispetto all'assegnazione sequenziale. Che cosa succede se un puntatore non è più corretto (Errore del device driver, errore fisico nel dispositivo)? Si perde il resto del file! Parte dello spazio libero del disco va sprecata in puntatori. dimensione blocco 512 byte dimensione puntatore 4 byte lo 0.78% del disco è sprecato in puntatori. 38

39 Cluster (Una soluzione allo spreco di spazio) Per risolvere il problema dello spreco di spazio, alcuni file system utilizzano i cluster. Un cluster è un gruppo contiguo di blocchi. Il file system alloca cluster, non blocchi singoli. In tal modo, il numero di puntatori richiesto per collegare il file diminuisce in ragione della dimensione del cluster. Problema: rischio di frammentazione interna. 39

40 File Allocation Table (Usata in file system estremamente popolari) Variante dell'assegnazione concatenata usata nei SO MS-DOS, OS/2. All'inizio di ciascuna partizione viene riservato uno spazio per contenere una tabella di allocazione dei file (File Allocation Table, FAT). Ciascun blocco del disco è rappresentato da un numero intero univoco, detto indice. La FAT è acceduta attraverso gli indici e contiene indici. 40

41 FAT e assegnazione concatenata (Usata in file system estremamente popolari) L'indice contenuto in un elemento della FAT punta al prossimo blocco del file corrispettivo. L'elemento corrispettivo all'ultimo blocco del file contiene un valore opportuno. Ciascun elemento di una directory contiene l'indice del primo blocco nella FAT. Implementazione in Linux: $LINUX/fs/fat/fatent.c 41

42 FAT: schema (Un diagramma vale più di 1000 parole) Elemento della directory test Nome Metadati Blocco iniziale File Allocation Table fine file Numero blocchi disco 42

43 FAT: contro (Ostacoli, ostacoli, ostacoli) Un accesso in lettura ad un file provoca un accesso alla FAT per ogni blocco considerato. Un accesso in scrittura ad un file provoca: accesso alla FAT per ogni blocco scritto, qualora già allocato. la scansione della FAT alla ricerca di un blocco lilbero, qualora il blocco non sia già allocato. Eccessivo movimento delle testine (la FAT è memorizzata all'inizio del disco). 43

44 FAT cache (Come ridurre lo spostamento della testina del disco) La FAT è mantenuta in memoria centrale. In alcuni kernel (Linux) si implementa una cache degli elementi della FAT più popolari. La cache è implementata come una lista collegata di struct fat_cache, ciascuna delle quali mappa un certo numero di cluster nel file al cluster corrispettivo nel disco. File $LINUX/fs/fat/cache.c. 44

45 Assegnazione indicizzata: definizione (Un file un elenco di puntatori in uno o più blocchi indice) Nell'assegnazione indicizzata ad un file è assegnato un blocco indice. Il blocco indice contiene una sequenza di indirizzi di blocchi sul disco appartenenti al file. L'elemento della directory contiene un puntatore al blocco indice. Non appena creato un file, il blocco indice è pieno di puntatori nulli. Il puntatore i-mo contiene l'indirizzo del blocco i-mo del file. Usato in: file system UNIX (variante combinata). 45

46 Assegnazione concatenata: schema (Un diagramma vale più di 1000 parole) Partizione count File Blocco indice jeep

47 Assegnazione concatenata: pro (Perché conviene adottarla) La frammentazione esterna non si verifica più. Un blocco del file può essere memorizzato in qualunque posizione del disco. La frammentazione interna è sensibilmente ridotta. La dimensione di un blocco è contenuta. L'accesso al blocco avviene in tempo costante. Si accede al vettore i-mo del blocco indice. 47

48 Assegnazione concatenata: contro (Perché non conviene adottarla) La lista dei blocchi del file è inserita all'interno di un solo blocco di disco. La dimensione massima del file è limitata. Necessità di usare più blocchi indice. La dimensione del blocco indice è critica. Dimensione troppo piccola: si rischia di non avere un numero sufficiente di indici per rappresentare un file grande. Dimensione troppo grande: si rischia la frammentazione interna sul blocco indice. 48

49 Blocchi indice multipli (Come implementarli?) Esistono tre schemi principali di implementazione di un indice su più blocchi. Schema concatenato. Indice a più livelli. Schema combinato. 49

50 Schema concatenato (Più blocchi indice concatenati in lista) Il blocco indice ha una piccola intestazione nella quale sono riportati: il nome del file. i primi 100 blocchi del disco. L'ultimo elemento del blocco indice è: NULL (nel caso di file piccolo). un puntatore ad un altro blocco indice (nel caso di file grande). 50

51 Indice a più livelli (Simile alla paginazione a due livelli; le idee giuste son sempre quelle) Si usa un blocco indice di primo livello. Gli elementi del blocco indice di primo livello puntano a blocchi indice di secondo livello. Gli elementi del blocco indice di secondo livello puntano ai blocchi dei file. Per accedere ad un blocco, il sistema operativo: usa l'indice di primo livello per individuare il blocco indice di secondo livello. usa l'indice di secondo livello per individuare il blocco di dati. 51

52 Dimensione massima di un file (Usando un indice a due livelli) Si consideri un disco con le seguenti caratteristiche. Dimensione di un blocco: 4096 byte Dimensione di un puntatore: 4 byte Puntatori per blocco = 4096 / 4 = 1024 Con due livelli di indici si possono memorizzare = blocchi di dati. La dimensione massima di un file è pari a: * 4096 = 4GB. 52

53 Schema concatenato (Unione dei due schemi precedenti; fondamento dei file system UNIX) A ciascun file è assegnato un blocco descrittore, noto con il nome di inode. L'inode è il FCB del file. Nell'inode sono contenuti 15 puntatori a blocchi. Puntatori 1-12: puntatori diretti (blocchi diretti). Puntatore 13: puntatore a puntatore di blocchi (blocco indiretto singolo). Puntatore 14: puntatore a puntatore a puntatore di blocchi (blocco indiretto doppio). Puntatore 15: puntatore a puntatore a puntatore a puntatore di blocchi (blocco indiretto triplo). 53

54 Schema concatenato: diagramma (Espansione ad albero dei blocchi) Modo (permessi) Proprietario Timestamp Dimensione Blocchi diretti Indiretto singolo Indiretto doppio Indiretto triplo dati dati dati... dati dati dati dati dati dati dati 54

55 Schema concatenato: pro (Funziona molto bene) Per file piccoli, l'accesso è O(1) tramite i blocchi diretti. Per file più grandi, l'accesso è O(log(n)) nel numero di blocchi del file. La dimensione massima di un file è notevolmente più grande rispetto ai due schemi precedenti. 55

56 Puntatori nell'inode EXT3 (EXT4 usa un albero binario di extent) Nel file system EXT3 l'inode è definito nella struttura struct ext3_inode. File $LINUX/fs/ext3/ext3.h. Simile alla definizione per EXT4. Il campo i_block contiene l'array di puntatori. La funzione ext3_block_to_path() riceve il numero di un blocco e ritorna il percorso di memorizzazione nell'array di puntatori. File $LINUX/fs/ext3/inode.c. 56

57 Schema concatenato: pro (Funziona molto bene) Per file piccoli, l'accesso è O(1) tramite i blocchi diretti. Per file più grandi, l'accesso è O(log(n)) nel numero di blocchi del file. La dimensione massima di un file è notevolmente più grande rispetto ai due schemi precedenti. 57

58 GESTIONE DELLO SPAZIO LIBERO 58

59 Il problema (Contro cosa si deve combattere) Lo spazio di memorizzazione secondario, seppur presente in misura molto maggiore rispetto alla memoria centrale, è comunque limitato. Come tenere traccia dei blocchi liberi? Gestione (efficiente) di un elenco (grande) di blocchi di liberi. 59

60 Elenco dei blocchi liberi (Come implementarlo?) I seguenti meccanismi possono essere utilizzati per rappresentare un elenco di blocchi liberi. Vettore di bit. Lista concatenata. Raggruppamento. Conteggio. 60

61 Vettore di bit (Semplice ed efficiente) Ciascun blocco del disco viene rappresentato tramite un bit. 0: il blocco è allocato. 1: il blocco è libero. L'insieme di tutti i blocchi del disco è un gigantesco vettore di bit. Come si identifica efficientemente il primo blocco libero? Come si identifica in maniera efficiente il primo bit non nullo nel vettore? 61

62 Alcune definizioni (Utili per le operazioni sul vettore di bit) Costante BIT_PER_PAROLA: dimensione di una parola (solitamente, 32 o 64 bit). Parametro i: indice del bit i-mo. Vettore[n]: vettore di n parole di lunghezza BIT_PER_PAROLA. Bit: il valore effettivo del bit i-mo. 62

63 Operazioni sul vettore di bit (Dovrebbero essere note) L'individuazione del bit i-mo nel vettore richiede le seguenti operazioni. offset_parola = i / BIT_PER_PAROLA; offset_bit = i % BIT_PER_PAROLA; parola_con_bit = *(vector + offset_parola); bit_i = parola_con_bit & (2 offset_bit ); 63

64 vettore[2] Diagramma di esempio (Illustra il calcolo) Parola contenente il bit Si vuole ottenere il valore del bit 70 i= parola da 32 bit 4 8 offset_parola=70/32=2 offset_bit=70 % 32 = 6 parola_con_bit= bit_i= & = Offset (byte) 64

65 Individuazione efficiente (Del primo bit libero) I processori moderni hanno istruzioni per individuare in un colpo di clock il primo bit imposto ad 1 in una parola di 16, 32, 64 bit. ISA x86_64: istruzioni bsf, bsr. Si scandisce il vettore di bit una parola alla volta. Se la parola vale 0, si avanza alla parola successiva. Altrimenti, si usa l'istruzione macchina per individuare il primo bit imposto ad 1. 65

66 Bitmap in EXT3 (Block bitmap, inode bitmap) Nell'area dei metadati di ciascun gruppo EXT3 alloca un intero blocco per la bitmap dei blocchi. 0: blocco libero, 1: blocco occupato. Il blocco della bitmap è puntato da un campo della struttura dati ext3_group_desc, definita nel file $LINUX/fs/ext3/ext3.h. Campo bg_block_bitmap, per la precisione. Vi è una bitmap analoga per gli inode, bg_inode_bitmap. 66

67 Gestione della bitmap (Operazioni di set/get sui bit) La gestione della bitmap è affidata ad alcune funzioni in $LINUX/fs/ext3/ext3.h. ext3_set_bit(): imposta ad 1 un bit. ext3_clear_bit(): imposta a 0 un bit. ext3_test_bit(): ritorna il valore di un bit. ext3_find_next_zero_bit(): trova l'indice del prossimo bit impostato a zero. Tali funzioni sono usate dagli allocatori di blocchi (balloc.c) e inode (ialloc.c). 67

68 Lista concatenata (Più semplice ancora, ma meno efficiente) I blocchi liberi sono tutti collegati fra loro, tramite puntatori posti all'interno di ciascun blocco. Il puntatore al primo blocco libero: viene memorizzato in una locazione speciale, fissa del disco. viene mantenuto in memoria centrale per motivi di efficienza. 68

69 Lista concatenata (Più semplice ancora, ma meno efficiente) I blocchi liberi sono tutti collegati fra loro, tramite puntatori posti all'interno di ciascun blocco. Il puntatore al primo blocco libero: viene memorizzato in una locazione speciale, fissa del disco. viene mantenuto in memoria centrale per motivi di efficienza. 69

70 Lista concatenata: schema (Un diagramma vale più di 1000 parole) Partizione Puntatore al primo blocco libero

71 Lista concatenata: pro e contro (Più contro che pro, a dire il vero) Pro. Soluzione più semplice rispetto al vettore di bit. Contro. Implementazione molto meno efficiente rispetto al vettore di bit. La scansione della lista è O(n) nel numero di blocchi liberi. 71

72 Raggruppamento (Un tentativo disperato di migliorare l'efficienza) Il raggruppamento è una modifica dell'approccio basato su liste. Il primo blocco libero contiene una lista di n blocchi I primi n-1 blocchi sono effettivamente liberi. L'n-esimo blocco contiene un'altra lista di blocchi liberi. Il recupero di un gran numero di blocchi liberi può essere effettuato in maniera più efficiente. Si navigano i blocchi contenenti le liste. 72

73 Conteggio (Può essere implementato anche tramite albero binario) Solitamente, le allocazioni ed i rilasci avvengono per insieme di blocchi contigui, e non per singoli blocchi. L'uso dei puntatori per blocco comporta uno spreco di spazio. Il conteggio è un approccio alternativo alla memorizzazione di n blocchi liberi. Si mantiene una tabella contenente coppie del tipo <indirizzo blocco, conteggio>. conteggio=numero di blocchi contigui liberi. 73

74 CONSIDERAZIONI: EFFICIENZA 74

75 Cosa si intende per efficienza? ( Do more with less ) Il termine efficienza indica in generale la capacità di svolgere compiti con il minimo sforzo. Computazione, tempo di esecuzione, spazio occupato, etc. Nel contesto dei file system, per efficienza si intende: uso compatto dello spazio presente sul disco. rappresentazione di file molto grandi con il minimo dispendio in termini di metadati. 75

76 Piazzamento degli inode su disco (Tutti insieme, preferibilmente all'inizio) Gli inode sono impacchettati tutti insieme all'inizio del disco, vicini al superblocco. In tal modo, una lettura sequenziale da disco porta in memoria un numero consistente di inode. La lettura ricorsive delle directory è veloce. 76

77 Uso di cluster con dimensione diversa (Tecnica adottata da BSD UNIX) Si usano cluster di dimensione diversa in funzione della dimensione del file. File piccoli cluster piccoli. File di dimensione crescente cluster di dimensione crescente. Cluster di chiusura del file dimensione piccola. 77

78 Metadati dei file 1/2 (In particolare, i timestamp di accesso al file) I timestamp di accesso al file sono critici per alcune applicazioni. Il programma GNU Make li usa per capire quando è il caso di ricompilare un sorgente. Ad ogni accesso, questi due metadati cambiano e vanno aggiornati nel modo seguente: lettura blocco FCB da disco. modifica metadati. scrittura blocco FCB. 78

79 Metadati dei file 2/2 (In particolare, i timestamp di accesso al file) Se un file è acceduto frequentemente, si ha una palese inefficienza di uso del disco. Una lettura ed una scrittura aggiuntive. Soluzione: si mantiene una copia del FCB in memoria centrale e si aggiorna il FCB su disco periodicamente. 79

80 Dimensione dei puntatori (16, 32, 48 o 64 bit) La dimensione massima di un file è determinata dalla dimensione del puntatore. 16 bit Dimensione massima 64KB. 32 bit Dimensione massima 4GB. Per superare tale limitazione, alcuni SO hanno introdotto puntatori più grandi. Implicano un maggior numero di strutture di controllo. Un trade-off abbastanza comune è quello di usare dimensioni dei puntatori a 48 bit. 80

81 Strutture statiche o dinamiche (Solaris docet) SunOS (il papà di Solaris 2) aveva tutte le principali strutture dati allocate staticamente (tabella dei file aperti, tabella dei processi). Con il miglioramento delle periferiche e con l'uso più intenso da parte degli utenti, i limiti delle strutture dati sono stati raggiunti. Solaris 2 è stato riscritto in termini di allocazione dinamica delle strutture dati. Massima efficienza di memoria a scapito delle prestazioni. 81

82 CONSIDERAZIONI: PRESTAZIONI 82

83 Cosa si intende per prestazione? ( Be as fast as possible ) Il termine prestazione indica in generale la capacità di svolgere compiti al massimo della propria capacità. Massima velocità, massimo ritmo, etc. Nel contesto dei file system, per prestazione si intende: aumento della velocità delle operazioni di I/O. applicazione del concetto di gerarchia di memoria. 83

84 Scritture sincrone e asincrone (Asincrono è più veloce, ma rischioso) Scritture sincrone. Avvengono nell'ordine in cui il gestore del file system le riceve. La scrittura avviene il più presto possibile, senza alcun buffering intermedio. Scritture asincrone. I dati sono memorizzati in un buffer intermedio. Si ritorna subito al processo chiamante. Il SO decide quando svuotare i buffer su disco. L'aggiornamento dei metadati può essere sincrono. 84

85 Pro e contro delle scritture asincrone (Asincrono è più veloce, ma rischioso) Pro. Il SO sceglie il momento della scrittura più adatto per ridurre i movimenti della testina del disco. La chiamata di sistema write() diventa velocissima (ritorna subito al processo chiamante). Contro. Se la macchina va in crash, si perdono i dati (il SO fornisce meccanismi per forzare scritture sincrone transazioni delle basi di dati). Se i metadati sono già stati aggiornati, si verifica una grave inconsistenza nel file. 85

86 Assegnazione ritardata (Usata da EXT4) Scenario: meccanismo di scrittura asincrona, con diversi buffer in attesa di essere riversati sul disco. Con l'assegnazione ritardata dei blocchi, la selezione di un blocco libero viene posticipata fino all'ultimo momento utile. Il SO decide di scrivere i blocchi su disco. L'utente comanda un flush dei buffer. I metadati del file affetto dalla scrittura possono essere mantenuti aggiornati in maniera sincrona. 86

87 Assegnazione ritardata: pro e contro (Performante, ma rischiosa) Pro. La probabilità di scrivere file contigui è decisamente più alta. Aumento di prestazioni su file grandi. Contro. Se la macchina va in crash prima della scrittura, la perdita di dati può essere catastrofica. 87

88 Lettura anticipata (Linux et alia) La lettura anticipata (read ahead) è il prelievo di un certo numero di blocchi contigui a quello appena letto. In uno scenario di lettura sequenziale, l'applicazione tenderà a leggere, nell'immediato futuro, proprio tali blocchi! Netto miglioramento delle prestazioni in lettura. 88

89 Caching delle principali strutture dati (Gerarchia di memoria) Per migliorare le prestazioni del file system è necessario avvicinare le strutture dati più popolari ai dispositivi di memoria più veloci. Gerarchia di memoria. Disco memoria centrale cache CPU registri. Tutte le strutture dati sono su disco. Le più popolari hanno una copia in RAM, aggiornata di frequente. 89

90 CONSIDERAZIONI: SICUREZZA 90

91 Cosa si intende per sicurezza? ( Don't harm others; keep things consistent ) Il termine sicurezza indica due capacità: mantenere un sistema in uno stato consistente. impedire agli utenti un uso malizioso del sistema. In questa presentazione ci si riferisce al primo contesto: controllo di consistenza del file system. journaling. 91

92 Controllo di consistenza (AKA File system check ) Ciascun file system ha un applicativo per il controllo ed il mantenimento della consistenza dei metadati e dei blocchi. In Linux: suite di programmi fsck.nome_fs. fsck.ext4, fsck.vfat, Avvio (GNU/Linux): automatico, al boot, a file system montato in sola lettura, per il controllo della struttura in caso di problemi (segnalati dalla presenza di un file). manuale, da linea di comando (a file system smontato), con possibilità di riparazione. 92

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

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

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

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

Sistemi Operativi (modulo di Informatica II)

Sistemi Operativi (modulo di Informatica II) Sistemi Operativi (modulo di Informatica II) Implementazione del file system Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Implementazione del File System Sommario Realizzazione del

Dettagli

Controllo I/O Costituito dai driver dei dispositivi e dai gestori dei segnali d interruzione.

Controllo I/O Costituito dai driver dei dispositivi e dai gestori dei segnali d interruzione. C6. REALIZZAZIONE DEL FILE SYSTEM Struttura del file system Un file è analizzabile da diversi punti di vista. Dal punto di vista del sistema è un contenitore di dati collegati tra di loro, mentre dal punto

Dettagli

Sistemi Operativi. ugoerr+so@dia.unisa.it 12 LEZIONE REALIZZAZIONE DEL FILE SYSTEM CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Sistemi Operativi. ugoerr+so@dia.unisa.it 12 LEZIONE REALIZZAZIONE DEL FILE SYSTEM CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08 Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 12 LEZIONE REALIZZAZIONE DEL FILE SYSTEM CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione

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

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

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. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

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

Dettagli

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

Sistemi Operativi (modulo di Informatica II)

Sistemi Operativi (modulo di Informatica II) Sistemi Operativi (modulo di Informatica II) Implementazione del file system Patrizia Scandurra Università degli Studi di Bergamo a.a. 2011-12 Implementazione del File System Sommario Realizzazione del

Dettagli

11 Realizzazione del File System. 11.1.1 Struttura a livelli (fig. 11.1) 11.4 Allocazione dei file

11 Realizzazione del File System. 11.1.1 Struttura a livelli (fig. 11.1) 11.4 Allocazione dei file 11 Realizzazione del File System 1 Metodi di allocazione Allocazione contigua Allocazione concatenata e varianti Allocazione indicizzata e varianti Gestione dello spazio libero 11.1.1 Struttura a livelli

Dettagli

Realizzazione del file system

Realizzazione del file system Realizzazione del file system Struttura del file system Metodi di allocazione: Contigua Concatenata Indicizzata Gestione dello spazio libero Realizzazione delle directory Efficienza e prestazioni Ripristino

Dettagli

File system. Realizzazione del file system. Struttura del file system. Struttura del file system. Realizzazione del file system

File system. Realizzazione del file system. Struttura del file system. Struttura del file system. Realizzazione del file system Realizzazione del file system Struttura del file system Metodi di allocazione: Contigua Concatenata Indicizzata Gestione dello spazio libero Realizzazione delle directory Efficienza e prestazioni Ripristino

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

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

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

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

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

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1 GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Dettagli

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

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

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

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

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

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

Sistemi Operativi. Implementazione del File System

Sistemi Operativi. Implementazione del File System Sistemi Operativi (modulo di Informatica II) Implementazione del file system Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Implementazione del File System Sommario Realizzazione del

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

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

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Dettagli

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera CPU Memoria principale Il Sistema Operativo Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura A.A. 2009/2010 ALU Unità di controllo Registri A indirizzi

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

File system. Chiamate di sistema POSIX Esempi: Chiamate di sistema Windows Esempio: Esercizi. 4.3 BSD Linux NTFS. Sistemi Operativi mod B 12.

File system. Chiamate di sistema POSIX Esempi: Chiamate di sistema Windows Esempio: Esercizi. 4.3 BSD Linux NTFS. Sistemi Operativi mod B 12. File system Chiamate di sistema POSIX Esempi: 4.3 BSD Linux Chiamate di sistema Windows Esempio: NTFS Esercizi 12.1 Le chiamate di sistema di UNIX per file UNIX mette a disposizione sia chiamate di sistema

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

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

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

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo 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 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

Varie tipologie di memoria

Varie tipologie di memoria Varie tipologie di memoria velocita` capacita` registri CPU memoria cache memoria secondaria (Hard Disk) Gestione della memoria Una parte della viene riservata per il SO I programmi per poter essere eseguiti

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

PROGETTAZIONE FISICA

PROGETTAZIONE FISICA PROGETTAZIONE FISICA Memorizzazione su disco, organizzazione di file e tecniche hash 2 Introduzione La collezione di dati che costituisce una BDD deve essere fisicamente organizzata su qualche supporto

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

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

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

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

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria

Dettagli

Tecnologia di un Database Server (centralizzato) Gestione del buffer

Tecnologia di un Database Server (centralizzato) Gestione del buffer Buffer Basi di Dati / Complementi di Basi di Dati 1 Tecnologia di un Database Server (centralizzato) Gestione del buffer Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Buffer

Dettagli

Il software: Istruzioni per il computer. I tre tipi di software di sistema. Compiti del sistema operativo

Il software: Istruzioni per il computer. I tre tipi di software di sistema. Compiti del sistema operativo Il software: Istruzioni per il computer I tre tipi di software di sistema Software applicativo aiuta a svolgere operazioni utili in vari campi programmi di videoscrittura, fogli elettronici, videogiochi

Dettagli

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1 GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno

Dettagli

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

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

Dettagli

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale Funzioni principali del sistema operativo Il software la parte contro cui si può solo imprecare Avvio dell elaboratore Gestione del processore e dei processi in Gestione della memoria principale Gestione

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

Il sistema operativo: interazione con l utente

Il sistema operativo: interazione con l utente interazione con l utente S.O fornisce un meccanismo per specificare le attività da eseguire (es. copiare un file) L interazione avviene mediante un linguaggio testuale (DOS) o grafico (Windows) linguaggio

Dettagli

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Appunti di Sistemi Operativi Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Indice 1 Cenni su alcuni algoritmi del Kernel di Unix 1 1.1 Elementi di Unix Internals.................................

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

GESTIONE DELLA MEMORIA CENTRALE

GESTIONE DELLA MEMORIA CENTRALE GESTIONE DELLA MEMORIA CENTRALE E MEMORIA VIRTUALE 7.1 Gestione della memoria Segmentazione Segmentazione con paginazione Memoria Virtuale Paginazione su richiesta Sostituzione delle pagine Trashing Esempi:

Dettagli

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Materiali per il modulo 1 ECDL. Autore: M. Lanino Materiali per il modulo 1 ECDL Autore: M. Lanino RAM, l'acronimo per "random access memory", ovvero "memoria ad acceso casuale", è la memoria in cui vengono caricati i dati che devono essere utilizzati

Dettagli

Lezione 12. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata

Lezione 12. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata Lezione 12 Sistemi operativi 19 maggio 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 12.1 Di cosa parliamo in questa lezione? Organizzazione e realizzazione dei

Dettagli

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine. Quinto Homework 1) Si vuole progettare una cache a mappatura diretta per un sistema a 32 bit per una memoria da 2 GB (quindi sono solo 31 i bit utili per gli indirizzi) e blocchi di 64 byte. Rispondere

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

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

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

Gestione della Memoria

Gestione della Memoria Gestione della Memoria Idealmente la memoria dovrebbe essere grande veloce non volatile Gerarchia di memorie Disco: capiente, lento, non volatile ed economico Memoria principale: volatile, mediamente grande,

Dettagli

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

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale) Memoria Virtuale Anche la memoria principale ha una dimensione limitata. Possiamo pensare di superare questo limite utilizzando memorie secondarie (essenzialmente dischi) e vedendo la memoria principale

Dettagli

La struttura dati ad albero binario

La struttura dati ad albero binario La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,

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

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

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

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09 SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore (CPU) la memoria principale (RAM) la memoria secondaria i dispositivi di input/output Il processore

Dettagli

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque? NOSQL Data Model HBase si ispira a BigTable di Google e perciò rientra nella categoria dei column store; tuttavia da un punto di vista logico i dati sono ancora organizzati in forma di tabelle, in cui

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

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

Struttura del calcolatore

Struttura del calcolatore Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione

Dettagli

La memoria centrale (RAM)

La memoria centrale (RAM) La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso casuale Tecnologia elettronica: Veloce ma volatile e costosa Due eccezioni R.O.M.

Dettagli

1.4b: Hardware. (Memoria Centrale)

1.4b: Hardware. (Memoria Centrale) 1.4b: Hardware (Memoria Centrale) Bibliografia Curtin, Foley, Sen, Morin Informatica di base, Mc Graw Hill Ediz. Fino alla III : cap. 3.11, 3.13 IV ediz.: cap. 2.8, 2.9 Questi lucidi Memoria Centrale Un

Dettagli

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione Gestione della memoria Paginazione Segmentazione Segmentazione con paginazione Modello di paginazione Il numero di pagina serve come indice per la tabella delle pagine. Questa contiene l indirizzo di base

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

Interfaccia del file system

Interfaccia del file system Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory Montaggio di un file system Condivisione di file Protezione 9.1 File E un insieme di informazioni correlate e

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing Informatica 3 LEZIONE 21: Ricerca su liste e tecniche di hashing Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing Informatica 3 Lezione 21 - Modulo 1 Algoritmi sequenziali e basati su

Dettagli

Memoria secondaria. Struttura del disco. Scheduling del disco. Gestione dell unità a disco. Affidabilità dei dischi: RAID

Memoria secondaria. Struttura del disco. Scheduling del disco. Gestione dell unità a disco. Affidabilità dei dischi: RAID Memoria secondaria Struttura del disco Scheduling del disco Gestione dell unità a disco Affidabilità dei dischi: RAID Sistemi Operativi 13.1 Struttura del disco I dischi vengono indirizzati come grandi

Dettagli

Tipi classici di memoria. Obiettivo. Principi di localita. Gerarchia di memoria. Fornire illimitata memoria veloce. Static RAM. Problemi: Dynamic RAM

Tipi classici di memoria. Obiettivo. Principi di localita. Gerarchia di memoria. Fornire illimitata memoria veloce. Static RAM. Problemi: Dynamic RAM Obiettivo Tipi classici di memoria Fornire illimitata memoria veloce Problemi: costo tecnologia Soluzioni: utilizzare diversi tipi di memoria... Static RAM access times are 2-25ns at cost of $100 to $250

Dettagli

La Gestione delle risorse Renato Agati

La Gestione delle risorse Renato Agati Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File

Dettagli

Manuale Terminal Manager 2.0

Manuale Terminal Manager 2.0 Manuale Terminal Manager 2.0 CREAZIONE / MODIFICA / CANCELLAZIONE TERMINALI Tramite il pulsante NUOVO possiamo aggiungere un terminale alla lista del nostro impianto. Comparirà una finestra che permette

Dettagli

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni Sistemi operativi real time basati su Linux: gestione delle risorse e dei processi. Tesina per l esame di Sistemi Operativi a cura di. Prof. Aldo Franco Dragoni Corso di laurea in Ingegneria Informatica

Dettagli

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. La nozione di multiprogrammazione prevede la possibilità di

Dettagli

Il computer: primi elementi

Il computer: primi elementi Il computer: primi elementi Tommaso Motta T. Motta Il computer: primi elementi 1 Informazioni Computer = mezzo per memorizzare, elaborare, comunicare e trasmettere le informazioni Tutte le informazioni

Dettagli

Sistemi operativi. Esempi di sistemi operativi

Sistemi operativi. Esempi di sistemi operativi Sistemi operativi Un sistema operativo è un programma che facilita la gestione di un computer Si occupa della gestione di tutto il sistema permettendo l interazione con l utente In particolare un sistema

Dettagli

Access. P a r t e p r i m a

Access. P a r t e p r i m a Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di

Dettagli

Redundant Array of Inexpensive (Independent) Disks. Disco magnetico

Redundant Array of Inexpensive (Independent) Disks. Disco magnetico 26/5/25 RAID Redundant Array of Inexpensive (Independent) Disks Disco magnetico Costituito da un insieme di piatti rotanti (da a 5) Piatti rivestiti di una superficie magnetica Esiste una testina (bobina)

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

Infrastrutture Software

Infrastrutture Software Infrastrutture Software I componenti fisici di un sistema informatico sono resi accessibili agli utenti attraverso un complesso di strumenti software finalizzati all utilizzo dell architettura. Si tratta

Dettagli

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

Dettagli