Sistema Operativo Architettura degli elaboratori 1 - A. Memo 373 6.3 La gestione dei processi stallo 9 soluzione corretta si utilizzano un semaforo per.

Slides:



Advertisements
Presentazioni simili
Memoria Virtuale in Linux
Advertisements

Meccanismi di IPC Problemi classici di IPC
Introduzione Cosa è un Sistema Operativo? Una breve storia
Gestione della memoria centrale
Classe III A A.s – 2011 Sistemi di Elaborazione e Trasmissione dell’Informazione 4 ore settimanali (2 laboratorio) Docenti Prof. Alberto Ferrari.
Dalla scrittura all’esecuzione
Gestione della memoria
TEORIA DEI SISTEMI OPERATIVI
File System Cos’è un File System File e Directory
Elaboratore e Sistemi Operativo
Massa Laura Mela Enrica
Gestione della Memoria
Prova di completamento: selezione di domande
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
1 Strutture dati nel supporto a run time. 2 Entità presenti quando un programma va in esecuzione §programmi dutente (compilati) §routines del supporto.
12. Il Sistema Operativo Ing. Simona Colucci
5. Codifica degli algoritmi in un linguaggio di alto livello
Memoria virtuale Memoria virtuale – separazione della memoria logica dell’utente dalla memoria fisica. Solo alcune parti di un programma devono trovarsi.
Gestione della memoria
Interfaccia del file system
Programmazione Concorrente
Gestione della memoria
Deadlock Modello del sistema Caratterizzazione dei deadlock
TRADUZIONE DEL PROGRAMMA Una volta che un programma sia stato scritto in C, esso non può essere eseguito senza unulteriore traduzione. Ciò perché qualsiasi.
PROGRAMMAZIONE Introduzione
File.
Sistema Operativo e Compilatore
Struttura dei sistemi operativi (panoramica)
I Thread.
Gestione della memoria principale
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
1 Obiettivi di Windows 2000 Portabilita: scritto in C le chiamate al processore sono isolate codice dipendente dalla piattaforma isolato Estensibilita:
Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.
Sincronizzazione fra thread
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE.
Il sistema operativo Vito Perrone
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
Espressioni condizionali
Fondamenti di informatica Linguaggio C Main Program: Architettura di un PC Diagrammi di flusso Linguaggio C.
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Architettura degli Elaboratori II (canale P-Z) Linguaggi e moduli
La Gestione della Memoria
LOGICA DI FUNZIONAMENTO
C. Gaibisso Programmazione di Calcolatori Lezione XVI Allocazione dinamica della memoria Programmazione di Calcolatori: allocazione dinamica della memoria.
Sincronizzazione dei processi
Memoria Centrale.
Memoria La memoria è un vettore di stringhe di bit (word/parole) In memoria è allocato il Sistema Operativo. In memoria sono allocati i programmi per poter.
I processi.
SISITEMI MONOPROGRAMMATI E MULTI PROGRAMMATI
Calcolatori Elettronici Assemblatore, Linker e Loader
1 Esercitazione Sistemi distribuiti: sistemi che risisedono su più calcolatori interconnessi da una rete di comunicazione Algoritmi distribuiti: programmi.
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
Foglio 1 Di cosa si occupa il gestore della memoria?
1 Processi e Thread Meccanismi di IPC (2) Problemi classici di IPC.
Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma “La Sapienza”
Processi e Thread Processi Thread
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
1 Migrazione dei processi: Mosix. 2 Cosa è Mosix/OpenMOSIX ? OpenMOSIX è un è una patch del kernel di Linux che aggiunge funzionalit à avanzate di clustering.
Gestione della Memoria
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
FUNZIONI: IL MODELLO A RUN-TIME 1) creazione di una nuova attivazione (istanza) del servitore 2) allocazione di memoria per i parametri e per le variabili.
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l’ambiente e il territorio Il software di base Stefano Cagnoni e Monica Mordonini.
1 Scambio Messaggi (1) Primitive base –send(destination,&msg) –receive(source, &msg) Decine di varianti, nel nostro caso : –la receive blocca automaticamente.
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
Le basi di dati.
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
10. Il Sistema Operativo Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
Transcript della presentazione:

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione dei processi stallo 9 soluzione corretta si utilizzano un semaforo per ogni forchetta (f[1..5]) per evitare che venga utilizzata da più filosofi, ed un semaforo per la mutua esclusione (mutex) al momento del prelievo delle forchette void filosofo_i_esimo(){ while (1) { // medita wait(mutex); wait(f[i]); wait(f[(i+1)%5]); signal(mutex); // mangia signal(f[i]); signal(f[(i+1)%5]); }

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria generalità l nei SO multitasking dobbiamo far coesistere più processi nella memoria principale l il SO deve gestire la memoria –virtualizzando la dimensione della memoria fisica ed adeguandola allo spazio logico di più processi –caricando i programmi in memoria (loader) –assegnando e recuperando la memoria ai vari processi (allocation e de-allocation) –rimpiazzando gli spazi opportuni in base alle richieste (replacement) –realizzando opportuni schemi di protezione

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria manipolazione degli indirizzi... ; char x = 0;... ; file sorgente xxxx3A COMPILER 12B5 LINKER identificatore indirizzo rilocabile indirizzo assoluto rilocabile C3B5 LOADER indirizzo logico 890E indirizzo fisico CPU/MMU file obj file exe variabile swap C:8 P:1 S:2 S.O. indirizzo memoria secondaria

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria loader 1 l caricamento dinamico –al fine di minimizzare loccupazione di memoria, si carica solo la parte necessaria del programma, e poi si attivano swap opportuni l linking dinamico –caricamento dinamico delle librerie alla loro occorrenza (Dynamic Link Libraries o Shared Object)

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria loader 2 l overlay –divisione del programma tra moduli che devono risiedere sempre in memoria e moduli autonomi che svolgono funzioni specifiche –caricamento stabile dei moduli fissi e caricamento alternato dei moduli specifici –adottato nei SO che non adottano il principio della memoria virtuale, la gestione è a carico dellapplicazione

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria allocazione della memoria 1 l a singola partizione –la memoria è condivisa tra lunico programma utente ed il SO –per evitare conflitti si utilizzano due registri: base, utilizzato anche per la rilocazione, che punta allinizio dellarea di memoria del proceso utente, e limite, che contiene la dimensione massima dello spazio utente

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria allocazione della memoria 2 S.O. utente CPU IL<limite ? base limite + Indirizzo Logico Indirizzo Fisico NO SI indirizzo illegale

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria allocazione della memoria 3 l a partizioni multiple –la memoria è condivisa da più programmi utente e dal SO –ad ogni processo viene assegnata una partizione fissa, di dimensione prestabilita (molto poco efficiente) o in base alle esigenze del processo –si inducono problemi analoghi a quelli della paginazione (tecniche di allocazione e fram- mentazione interna) (compattazione)

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria allocazione della memoria 4 l paginazione –tecnica già affrontata nellanalisi delle CPU perché la tendenza è di gestirne il meccanismo sempre più con modalità hardware (più veloci) –si divide la memoria in blocchi di dimensioni uguali (frame in memoria fisica, page in memoria logica) –ai processi vengono assegnate le pagine necessarie, anche non consecutive

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria allocazione della memoria 5 l paginazione (segue) –lindirizzo si scompone in due campi, e la traduzione da PageL a PageF avviene mediante una page table, normalmente implementata tramite TLB –nella page table si possono aggiungere anche bit per la protezione –la paginazione permette anche la condivisione in sola lettura (programmi condivisi e dati distinti)

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria allocazione della memoria 6 l segmentazione –la memoria è vista come un insieme di segmenti di diverse dimensioni –un indirizzo è composto dallindirizzo di inizio del segmento (o da un indice che lo identifica) e dalloffset del dato dentro al segmento –la traduzione da indirizzo logico (segmento più offset) in indirizzo fisico avviene mediante tabelle, normalmente complete di bit di protezione –si induce frammentazione esterna

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria memoria virtuale 1 l già trattata nellanalisi delle CPU –consente di eseguire programmi più grandi della memoria fisica a disposizione –consente di caricare in memoria solo le parti più utilizzate del programma –è più facile da programmare rispetto agli overlay o tecniche analoghe perché indipendente dal sistema –aumenta il tasso di multitasking della CPU

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria memoria virtuale 2 l può essere implementata sia tramite demand paging che con demand segmentation l demand paging –un processo è costituito da un insieme di pagine poste in memoria secondaria e solo quella necessaria è presente anche in memoria principale –si può anche tentare di prevedere quali saranno le prossime pagine ed anticiparne il caricamento

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria memoria virtuale 3 l demand paging (sequenza operativa) –dato lindirizzo logico, mediante funzione di traduzione si perviene allindirizzo fisico –si controlla il bit di validità nella tabella: l se bit=1 vuol dire che la pagina è in memoria principale, e quindi si procede al recupero del dato l se bit=0 la pagina è su disco, e si produce page fault –si controlla se loperazione richiesta è consentita l in caso contrario viene ancora prodotto un page fault

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria memoria virtuale 4 l demand paging (page fault) –se è dovuto ad accesso illegale, il processo viene fatto terminare e le sue pagine rilasciate –altrimenti si cerca un frame libero l se cè lo si alloca l se non cè, si rimpiazza uno già utilizzato (replacement) eventualòmente salvando le pagine modificate (dirty bit) –si aggiorna la page table in base al nuovo stato –si riparte dallistruzione che ha causato il page fault

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria memoria virtuale 5 l demand paging (politiche di rimpiazzo 1) –FIFO, First In First Out, implementata con una lista degli ingressi o con lorario di arrivo (?), facile ma poco efficiente –LRU, Least Recently Used, si sostituisce la pagina che è rimastata inutilizzata da più tempo, richiede lorario dellultimo impiego (?); si adottano tecniche più semplici quali il contatore di accessi alla pagina (LFU) o tramite stack

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria memoria virtuale 6 l demand paging (politiche di rimpiazzo 2) –LRU a bit di accesso, ad ogni accesso si setta il bit relativo alla pagina, e periodicamente si azzerano tutti i bit, semplice ma inefficace –LRU a bit multipli di accesso, invece di azzerarli, i bit di accesso vengono memorizzati in un byte shiftando il contenuto preesistente (rappresenta una storia della pagina negli ultimi 8 cicli di clock)

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria memoria virtuale 7 l demand paging (assegnazione dei frame) –allavvio di un processo vanno attribuiti allo stesso un certo numero di frame –il numero di frame posseduti influenza la probabilità di page fault –vengono attribuiti in base alla priorità del processo ed alla sua dimensione –il rimpiazzo di una pagina è bene venga limitato ai frame posseduti da quel processo

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione della memoria memoria virtuale 8 l demand paging (working-set model) –se le pagine richieste in una certa attività sono note a priori (working-set). possono essere caricate preventivamente, al fine di eliminare o minimizzare i page fault –è il SO che memorizza i working-set delle applicazioni in uso e li riutilizza alla prossima esecuzione

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione dellI/O generalità 1 l la gestione dellI/O è la parte più monotona, meno impegnativa e più consistente dei SO l i dispositivi di I/O sono molto diversi tra di loro come modalità duso e prestazioni: dischi (a livello logico, come estensione della me- moria principale, sono anche una risorsa) terminali video (testuali o grafici) dispositivi dingresso (tastiera, mouse, bar reader) stampanti nastri magnetici schede di rete

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione dellI/O generalità 2 l lobiettivo dei moderni SO è di gestire con le medesime modalità, ove possibile, tutti i dispositivi di I/O l lorganizzazione generale prevede almeno tre componenti: –il gestore della risorsa –il controllore della risorsa –la risorsa

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione dellI/O generalità 3 risorsa processi utente richiesta utilizzo verifica accesso Gestore della risorsa azioni elementari device driver controllore della risorsa risultato utilizzo accesso negato

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione dellI/O gestore della risorsa l i compiti del gestore della risorsa sono: –verificare se il processo richiedente ha i diritti necessari per effettuare loperazione richiesta –accodare la richiesta nella coda delle richieste e predisporre gli eventuali ed opportuni buffer –scomporre le richieste pervenute nelle singole attività necessarie, passando dalla visione astratta e generalizzata della risorsa a quella reale –utilizzare il driver della risorsa per accedervi –intercettare e gestire le interruzioni della risorsa

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione dellI/O controllore della risorsa l il controllore della risorsa, il più delle volte implementato con dispositivi hardware programmabili, deve –pilotare direttamente linterfaccia della risorsa, accedendovi a livello fisico –è quasi sempre dipendente dal particolare tipo di dispositivo di I/O gestito e qundi totalmente privo di standard

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione dellI/O esempio: lo spooling l la stampante è una delle periferiche di uscita più lente e con tempi di risposta altamente variabili l fa normalmente uso di un buffer di stampa, ma inevitabilmente presenta un comporta- mento a burst l Simultaneous Peripherical Operation On Line (SPOOL) sostituisce il buffer con un file in memoria secondaria

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione dellI/O esempio: il disco magnetico l ammettendo una coda di richieste, è utile schedularle secondo politiche appropriate: l FCFS, First Come First Served, esegue le richieste così come sono arrivate l SSTF, Shortest Seek Time First, si esegue prima la richiesta più vicina l SCAN, si eseguono le richieste più vicine, mantenendo la direzione di scansione

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione dellI/O disco: politica FCFS T FCFS = = 75 molto semplice ma poco efficiente

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione dellI/O disco: politica SSTF T SSTF = = 58 efficiente, ma usura maggiormente i cilindri centrali

Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione dellI/O disco: politica SCAN T SCAN = = 52 efficiente e con trattamento paritetico

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione generalità l Il File System (FS) garantisce laccesso e lorganizzazione della memoria secondaria l il FS permette di vedere più dischi fisici come lo stesso volume logico oppure più volumi logici sullo tsesso disco fisico l la sua gestione si integra facilmente con quella della protezione e della sicurezza

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione file l un file è uninsieme di informazioni caratterizzate da un nome comune e memo-rizzate in memoria secondaria l è una struttura logica mappata in un dispositivo fisico l il formato viene scelto alla sua creazione l le caratteristiche dei file sono: attributistruttura operazioni ammesse

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione attributi 1 l gli attributi che caratterizzano un file sono –nome (da 8 a 256 caratteri, case sensitive o no) –estensione o tipo (eseguibile, oggetto, sorgente) –dimensione –istanti di creazione e modifica –parentela (processo padre ed eventuali figli) –schemi di protezione (lettura, scrittura, modifica)

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione attributi 2 ProtezioneChi e come può accedere ad un file PasswordCodice necessario per accedere al file CreatorID dellutente che ha creato il file Ownerutilizzatore corrente del file Read-only flag0 - lettura/scrittura1 - sola lettura Hidden flag0 - normale1 - non visibile System flag0 - normal e1 - file di sistema Archive flag0 - salvato (back up)1 - non salvato ASCII/binary flag0 - ASCII1 - binario Random access flag 0 - sequenziale1 - casuale Temporary flag0 - normale1 - eliminare al termine Lock flags0 -liberon - bloccato Record lengthNumero di byte in un record

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione struttura 1 l Un file ha una struttura fisica composta da blocchi di dati (cluster), mentre a livello logico è visto come uninsieme di byte o di record. Il SO le mette in relazione. l le possibili strutture logiche di un FS sono: –a flusso di byte –a record di lunghezza fissa –a record di lunghezza variabile

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione struttura 2 l a flusso di byte (byte stream) –il SO non sa come interpretare il contenuto del file, lo sa solo lutente –il SO utilizza un puntatore relativo allinizio del file per accedere ai dati cercati –massima flessibilità per il SO

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione struttura 3 l a record di lunghezza variabile –delimitati da indicatori di fine record –ogni record è contraddistinto univocamente da una chiave –tutte le chiavi sono raccolte in una tabella a parte, ordinata secondo la chiave, contenente anche i puntatori allinizio del record nel file

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione struttura 4 l a record di lunghezza fissa –gli spazi vuoti sono riempiti da caratteri NULL o SPACE –il SO conosce la struttura del file –puntatore al record corrente –meno utilizzati dei precedenti

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione operazioni ammesse 1 l altre operazioni più complesse si ottengono con opportune combinazioni delle precedenti l creare un file l scrivere un file l leggere un file l rinominare un file l posizionamento interno l eliminare un file l troncare un file l spostare un file

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione operazioni ammesse 2 l apertura file –per accedere ad un file, bisogna prima aprirlo, cioè far si che il SO predisponga unopportuno strumento di accesso a quel file (handle) –al termine delluso di un file, questo dovrà essere chiuso –il SO multiutente UNIX ha una tabella dei file aperti a due livelli, nel primo ci sono le informazioni del file comuni a tutti i processi, nel secondo i dati specifici del particolare processo

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione metodi di accesso ai file 1 l accesso sequenziale –viene gestito un record (o un byte) alla volta –il SO utilizza un puntatore al record/byte corrente, e ad ogni lettura lo fa avanzare –il file può essere letto solo in ordine crescente, una rilettura richiede la ripartenza dallinizio –ad ogni scrittura il record/byte viene aggiunto in coda e si aggiorna il puntatore

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione metodi di accesso ai file 2 l accesso diretto –si può leggere un record/byte posto in posizione qualsiasi –la posizione del record nel file è calcolata rispetto al suo inizio (offset = 0) l accesso indicizzato (ISAM) –un file di chiavi ordinate contenente gli offset dei rispettivi record nel file, posto in RAM –ricerca binaria sul file chiavi e poi accesso diretto

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione esempio duso di un file in C #include #define BUF_SIZE 4096 #define MODE 0666 void main(int argc, char *argv[]){ FILE *fp; char dato; if (argc != 2) { printf( Manca il nome del file.); exit (1); } if ((fp=fopen(argv[1],w))==NULL){ printf(Impossibile aprire file); exit(1); } do { dato = getchar(); if (EOF == putc (dato, fp)) { printf(Errore nel file.\n); break; } } while (dato!=ESCAPE); fclose(fp); }

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione file mappati in memoria l il SO può mappare in memoria virtuale un file, cioè attribuire a quel file una data area di memoria (meglio un segmento perché preserva loffset) e poi gestirne gli accessi come se fossero indirizzi di memoria l quando il file viene chiuso tutte le modifiche apportate nellarea di memoria vengono riportate sul file

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione struttura della directory 1 l Ogni volume logico contiene uno o più file ed una o più directory di file l le directory possono essere classificate in –directory a livello singolo –directory a due livelli –directory ad albero –directory a grafo aperto –directory a grafo generalizzato

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione struttura della directory 2 l directory a livello singolo –tutti i file sono organizzati in ununica grande lista, ognuno con un nome diverso –semplice da capire ed implementare, ma difficile da gestire per il gran numero di file NomeFileattributipuntatoredati FILE 1FILE 2FILE 3FILE 4FILE 5FILE 6

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione struttura della directory 3 l directory a due livelli –una Master File Directory contenente tante User File Directory quanti sono gli utenti –quando un utente entra (log-in) vede solo la sua UFD –utile nei SO multiuser perché isola gli utenti –il SO per accedere ai file usa il path name –i programmi di sistema possono o essere copiati su tutte le UFD (pessimo), o si introduce il concetto di search path e directory di sistema

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione struttura della directory 4 l directory ad albero –numero arbitrario di livelli –il livello superiore viene detto root level –ogni directory può contenere file o sottodirectory –ogni utente ha la sua directory corrente, che può essere cambiata con comandi di sistema –se non si specifica il path name, è quello corrente –il path name può essere assoluto o relativo

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione struttura della directory 5 / radice studenti docenti RossiBianchi doc prg A2A1 misc odb D1D2 Esempi: directory corrente: Rossi directory padre:. directory figlio:.. il file A1 può essere chiamato doc/A1 (relativo) /studenti/Rossi/doc/A1 il file D1 di un altro ramo (purchè abilitato):../studenti/Bianchi/odb/D1 (relativo) /studenti/Bianchi/odb/D1 (assoluto)

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione struttura della directory 6 l directory a grafo aperto –rappresenta la generalizzazione dellalbero, in cui un file può essere condiviso da più directory –in UNIX si utilizzano dei collegamenti simbolici tra nome locale e quello reale; il SO potrà avere collegamenti ciclici (riferimenti circolari) studenti RossiBianchi prg –in altri SO si duplicano gli identificatori (handle) dei file: coerenza difficile da assicurare

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione operazioni con le directory l create dir crea una nuova sottodirectory l delete dir elimina una sottodirectory l change dir cambia la directory corrente l rename dir cambia nome alla sottodirectory l link /unlink crea/annulla collegamenti simbolici

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione implementazione del file system 1 l i dischi vengono letti e scritti a blocchi (cluster) l ogni blocco è composto da uno o più settori l caricamento del File System (mounting) –il SO inserisce il dispositivo specificato nel punto indicato della directory corrente –in UNIX può avvenire in run time

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione implementazione del file system 2 File System logico organizzazione dei file File System fisico Device driver Disk driver e controller tabella dei file aperti dai comandi di alto livello (API del SO) a quelli di basso livello (hardware) dalle informazioni simboliche allallocazione logica dai blocchi logici di un file a quelli fisici lettura/scrittura dei blocchi fisici hardware controllabile e programmabile mappa allocazione buffer daccesso parametri config.

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione implementazione dei file 1 l allocazione contigua –memorizzazione dei file in blocchi fisici consecutivi –un file è identificato dallindirizzo del primo blocco e dal numero di blocchi utilizzati –supporta laccesso sequenziale e diretto, ha ottime prestazioni (una sola operazione di I/O) –induce frammentazione interna ed esterna (eliminabile con la compattazione), richiede la conoscenza anticipata della dimensione massima

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione implementazione dei file 2 l allocazione a lista concatenata –un file è rappresentato da una lista concatenata di blocchi fisici –nella directory il file è caratterizzato dal puntatore al primo blocco ed in alcuni SO anche allultimo –i blocchi dei file contengono il puntatore al blocco successivo (o NULL) e poi i dati –la lettura sequenziale è semplice, quella diretta più complessa –si induce frammentazione interna e laffidabilità della lista rappresenta un problema

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione implementazione dei file 3 l File Allocation Table (MS DOS e successivi) l tabella ordinata di puntatori, uno per ogni blocco del disco 0blocco libero Nblocco successivo del file EOF ultimo blocco del file l tutta o parte della FAT deve essere copiata in RAM l permete laccesso diretto EOF FILE_1 2 vuoti FAT

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione implementazione dei file 4 l allocazione a lista indicizzata –una lista di puntatori ai blocchi affianca la directory –quando si crea un file si aggiunge il descrittore relativo nella directory e si crea un blocco indice, con tutti i puntatori a NULL –tutti gli accessi contemplano unoperazione di ricerca su blocco indice e poi un accesso diretto al blocco contenente i dati cercati

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione implementazione dei file 5 l allocazione a lista indicizzata (segue) –non cè frammentazione esterna, non è richiesta la dimensione massima, implementa accessi sequenziali e diretti –per file molto piccoli un blocco indice è sprecato –per file molto grandi si possono concatenare più blocchi indice, o organizzarli a più livelli gerarchici

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione implementazione dei file 6 l allocazione a nodi indice (i-node) –ad ogni file viene associata una tabellina contenuta in un blocco, detta i-node, che contiene gli attributi del file ed i puntatori ai blocchi del file relativo –file piccoli: gli indirizzi dei blocchi contenenti i dati sono memorizzati direttamente in un numero contenuto di campi delli-node –file medi: oltre agli indirizzi precedenti, cè un campo che punta ad un single indirect node posto in un blocco

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione implementazione dei file 7 % segue –file grandi: oltre a quanto visto, un campo punta a un livello di blocchi intermedio che a loro volta puntano ai blocchi diretti dei dati –file molto grandi; si può arrivare a tre livello di reindirizzamento –la struttura di i-node deve essere salvata inizialmente in memoria, per una più rapida consultazione –viene utilizzata in UNIX

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione implementazione dei file 8 l gestione dei blocchi vuoti –vettore di bit, ogni bit indica lo stato del blocco relativo, 0 = libero, 1 = occupato –lista concatenata, sfruttando i campi puntatore al successivo

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione implementazione delle directory 1 l la funzione delle directory è quella di suddividere lo spazio fisico della memoria secondaria in più aree logiche distinte, e lobiettivo della loro implementazione è quello di correlare la stringa ASCII del nome del file alle informazioni necessarie al recupero di quel file l le directory possono essere implementate con –liste lineari ad uno o più livelli –ricorrendo a tabelle di hash

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione implementazione delle directory 2 l lista lineare –ogni elemento della directory rappresenta un file (o una sottodirectory) caratterizzato dal suo nome e dai relativi attributi –non cè un ordine specifico, ed i tempi di ricerca sono elevati l tabella di hash –cè ancora una lista lineare, ma mediante una tabella dei nomi e dei puntatori ai relativi elementi della lista, laccesso è velocizzato

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione implementazione delle directory 3 Directory gerarchica a più livelli. campi della directory a 32 bit: 1 Nome file:8 bytes 5 Orario:2 bytes 2 Estensione file3 bytes 6 Data:2 bytes 3 Attributi:1 byte 7 Primo blocco:2 bytes 4 riservati:10 bytes 8 Dimensione:4 bytes Orario (unsigned a 16 bit):Data (unsigned a 16 bit): 2048*Ore[2048*24=41.184]512*(anno-1980) = *minuti [32*60=1920]32*mese[32*12=384] 0,5*secondi[60/2=30]1*giorno[31] Riservato per sviluppi futuri MS-DOS

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione UNIX - file system 1 Il file system di UNIX è composto da 4 elementi: l boot block (blocco 0) –non sempre usato, contiene il programma di boot l superblock (blocco 1) –informazioni sulla struttura del file system (numero di i-node, numero di blocchi sul disco, inizio della free list, flag di modifica e di bloccaggio...)

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione UNIX - file system 2 l lista degli i-node (a partire dal blocco 2) –contiene un i-node per ogni file –ogni i-node occupa 64 Byte e la lista ne può contenere –un i-node contiene informazioni sul file relativo (processo utilizzatore, protezioni, orario dellultimo accesso e modifica, dimensione, indirizzi per localizzare i blocchi contenenti i dati del file,...)

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione UNIX - file system 3 l blocchi di dati, contenenti –la directory radice –tutte le sottodirectory e la loro organizzazione –la lista dei blocchi liberi su disco –i blocchi di primo, secondo e terzo livello di reindirizzamento dei vari file presenti –un file può occupare anche blocchi non contigui

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione UNIX - elemento di directory l un elemento di directory è composto da: –numero delli-node relativo al file (2 byte) –nome del file (stringa ASCII da 14 byte max) l una directory viene memorizzata in un blocco del disco, e contiene i nomi dei suoi file ed i puntatori ai relativi i-node l in un blocco da 1Kbyte si possono inserire 64 elementi di directory (da 16 byte ciascuno)

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione affidabilità del file system 1 l gestione dei blocchi danneggiati –hardware, creando in un settore del disco un elenco di blocchi danneggiati ed i loro sostituti –software, ricorrendo ad un falso file che utilizza tutti i blocchi danneggiati l salvataggio del file system –su nastro, tempi lunghi, possibilità incrementale –su disco, con partizione di backup o RAID, Redundant Array of Inexpensive Disks

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione affidabilità del file system 2 l consistenza del file system –un file viene aperto, modificato e poi salvato; se il sistema cade tra la modifica ed il salvataggio, il file risulta essere inconsistente –consistenza dei blocchi: si producono due liste, un contatore per ogni blocco; la lista dei blocchi in uso dei file e la lista dei blocchi liberi. l consistenza: ciascun blocco appartiene ad una sola lista l perdita: il blocco non appartiene ad alcuna lista l duplicazione: il contatore del blocco è maggiore di 1 in una delle due liste –consistenza dei file: analogo per i file

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione prestazioni del file system 1 l data la lentezza dellaccesso ai dischi, si interpone tra memoria principale e secondaria un buffer (organizzato come una cache) della dimensione di alcuni blocchi l quando il buffer è pieno si possono adottare politiche di rimpiazzo analoghe alla paginazione (LRU) l cè il problema della scrittura e della consistenza dei dati: per i blocchi i-nodes o di indirizzamento indiretto si aggiorna il disco molto frequentemente

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione prestazioni del file system 2 l UNIX adotta la chiamata automatica di SYNC ogni 30 secondi circa l MS-DOS adotta la politica write-through (più lenta, meno efficace, si può togliere un FD in qualsiasi momento)

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione sicurezza: generalità l la multiutenza e la multiprogrammazione condividono le risorse: occorre evitare utilizzi non autorizzati l protezione –meccanismi di salvaguardia delle risorse dai malfunzionamenti l sicurezza –impedire luso non autorizzato (volontario o meno) di risorse

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione sicurezza: intrusioni l intrusi passivi, leggono file a loro negati l intrusi attivi, apportano modifiche non consentite a file l classificabili in –intrusi di passaggio, casuali –intrusi a scopo di curiosità (interni al sistema) –intrusi a scopo di lucro –intrusi a scopo di spionaggio

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione sicurezza: esempio di difetto l lpr (UNIX) –il comando lpr stampa un file e, se attivata lopzione -r, il file viene successivamente rimosso: si poteva lanciare la stampa del file delle password e poi farlo eliminare, rendendo accessibile lintero sistema

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione sicurezza: esempi di attacchi l richiedere pagine di memoria, aree di dati o blocchi di disco: molti SO non le cancellano prima di riutilizzarle l effettuare chiamate di sistema con parametri errati o incoerenti: molti SO non prevedono tutti i casi possibili l digitare DEL, BREAK o simili allinterno della password: il SO potrebbe chiudere il programma di test e considerare valido il login

Sistema Operativo Architettura degli elaboratori 1 - A. Memo File system e protezione sicurezza: virus l segmento di codice aggiunto ad un programma con lobiettivo di replicarsi su altri programmi l virus di boot, attivati durante la fase di avvio si collegano alle chiamate di sistema ed infettano tutto il sistema l virus di file, presenti in fle eseguibili l virus di macro l virus polimorfi