sistema operativo architettura degli elaboratori 1 - a. memo 373 6.3 la gestione dei processi stallo...

76
Sistema Operativo Architettura degli elabor atori 1 - A. Memo 1 6.3 La gestione dei 6.3 La gestione dei processi processi stallo 9 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]); } }

Upload: eula-marchetti

Post on 01-May-2015

219 views

Category:

Documents


0 download

TRANSCRIPT

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

1

6.3 La gestione dei processi 6.3 La gestione dei processi stallo 9stallo 9

soluzione correttasi 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]); }}

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

2

6.4 La gestione della memoria 6.4 La gestione della memoria generalitàgeneralità

nei SO multitasking dobbiamo far coesistere più processi nella memoria principale

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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

3

6.4 La gestione della memoria 6.4 La gestione della memoria manipolazione degli indirizzimanipolazione degli indirizzi

... ;char x = 0;... ;

filesorgente

xxxx3A

COMPILER

12B5LINKER

identificatore

indirizzorilocabile

indirizzoassolutorilocabile

C3B5

LOADER

indirizzo logico

890Eindirizzofisico

CPU/MMU

file obj

file exe

variabile swap

C:8P:1S:2

S.O.

indirizzomemoria

secondaria

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

4

6.4 La gestione della memoria 6.4 La gestione della memoria loader 1loader 1

caricamento dinamico– al fine di minimizzare l’occupazione di

memoria, si carica solo la parte necessaria del programma, e poi si attivano swap opportuni

linking dinamico– caricamento dinamico delle librerie alla loro

occorrenza (Dynamic Link Libraries o Shared Object)

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

5

6.4 La gestione della memoria 6.4 La gestione della memoria loader 2loader 2

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 dell’applicazione

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

6

6.4 La gestione della memoria 6.4 La gestione della memoria allocazione della memoria 1allocazione della memoria 1

a singola partizione– la memoria è condivisa tra l’unico programma

utente ed il SO– per evitare conflitti si utilizzano due registri:

base, utilizzato anche per la rilocazione, che punta all’inizio dell’area di memoria del proceso utente, e limite, che contiene la dimensione massima dello spazio utente

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

7

6.4 La gestione della memoria 6.4 La gestione della memoria allocazione della memoria 2allocazione della memoria 2

S.O.

utente

CPU

IL<limite?

base

limite

+

Indirizzo Logico

Indirizzo Fisico

NO

SI

indirizzoillegale

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

8

6.4 La gestione della memoria 6.4 La gestione della memoria allocazione della memoria 3allocazione della memoria 3

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)

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

9

6.4 La gestione della memoria 6.4 La gestione della memoria allocazione della memoria 4allocazione della memoria 4

paginazione– tecnica già affrontata nell’analisi 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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

10

6.4 La gestione della memoria 6.4 La gestione della memoria allocazione della memoria 5allocazione della memoria 5

paginazione (segue)– l’indirizzo 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)

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

11

6.4 La gestione della memoria 6.4 La gestione della memoria allocazione della memoria 6allocazione della memoria 6

segmentazione– la memoria è vista come un insieme di segmenti di

diverse dimensioni– un indirizzo è composto dall’indirizzo di inizio del

segmento (o da un indice che lo identifica) e dall’offset 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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

12

6.4 La gestione della memoria 6.4 La gestione della memoria memoria virtuale 1memoria virtuale 1

già trattata nell’analisi 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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

13

6.4 La gestione della memoria 6.4 La gestione della memoria memoria virtuale 2memoria virtuale 2

può essere implementata sia tramite demand paging che con demand segmentation

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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

14

6.4 La gestione della memoria 6.4 La gestione della memoria memoria virtuale 3memoria virtuale 3

demand paging (sequenza operativa)– dato l’indirizzo logico, mediante funzione di

traduzione si perviene all’indirizzo fisico– si controlla il bit di validità nella tabella:

se bit=1 vuol dire che la pagina è in memoria principale, e quindi si procede al recupero del dato

se bit=0 la pagina è su disco, e si produce page fault

– si controlla se l’operazione richiesta è consentita in caso contrario viene ancora prodotto un page fault

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

15

6.4 La gestione della memoria 6.4 La gestione della memoria memoria virtuale 4memoria virtuale 4

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

se cè’ lo si alloca 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 dall’istruzione che ha causato il page fault

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

16

6.4 La gestione della memoria 6.4 La gestione della memoria memoria virtuale 5memoria virtuale 5

demand paging (politiche di rimpiazzo 1)– FIFO, First In First Out, implementata con una

lista degli ingressi o con l’orario di arrivo (?), facile ma poco efficiente

– LRU, Least Recently Used, si sostituisce la pagina che è rimastata inutilizzata da più tempo, richiede l’orario dell’ultimo impiego (?); si adottano tecniche più semplici quali il contatore di accessi alla pagina (LFU) o tramite stack

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

17

6.4 La gestione della memoria 6.4 La gestione della memoria memoria virtuale 6memoria virtuale 6

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)

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

18

6.4 La gestione della memoria 6.4 La gestione della memoria memoria virtuale 7memoria virtuale 7

demand paging (assegnazione dei frame)– all’avvio 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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

19

6.4 La gestione della memoria 6.4 La gestione della memoria memoria virtuale 8memoria virtuale 8

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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

20

6.5 La gestione dell’I/O 6.5 La gestione dell’I/O generalità 1generalità 1

la gestione dell’I/O è la parte più monotona, meno impegnativa e più consistente dei SO

i dispositivi di I/O sono molto diversi tra di loro come modalità d’uso e prestazioni:

dischi (a livello logico, come estensione della me- moria principale, sono anche una risorsa)terminali video (testuali o grafici)dispositivi d’ingresso (tastiera, mouse, bar reader)stampanti nastri magnetici schede di rete

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

21

6.5 La gestione dell’I/O 6.5 La gestione dell’I/O generalità 2generalità 2

l’obiettivo dei moderni SO è di gestire con le medesime modalità, ove possibile, tutti i dispositivi di I/O

l’organizzazione generale prevede almeno tre componenti:– il gestore della risorsa– il controllore della risorsa– la risorsa

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

22

6.5 La gestione dell’I/O 6.5 La gestione dell’I/O generalità 3generalità 3

risorsa

processiutente

richiestautilizzo verifica

accesso

Gestore della risorsa

azionielementari

devicedriver

controlloredella risorsa

risultatoutilizzo

accessonegato

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

23

6.5 La gestione dell’I/O 6.5 La gestione dell’I/O gestore della risorsagestore della risorsa

i compiti del gestore della risorsa sono:– verificare se il processo richiedente ha i diritti

necessari per effettuare l’operazione 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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

24

6.5 La gestione dell’I/O 6.5 La gestione dell’I/O controllore della risorsacontrollore della risorsa

il controllore della risorsa, il più delle volte implementato con dispositivi hardware programmabili, deve– pilotare direttamente l’interfaccia della risorsa,

accedendovi a livello fisico– è quasi sempre dipendente dal particolare tipo

di dispositivo di I/O gestito e qundi totalmente privo di standard

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

25

6.5 La gestione dell’I/O 6.5 La gestione dell’I/O esempio: lo spoolingesempio: lo spooling

la stampante è una delle periferiche di uscita più lente e con tempi di risposta altamente variabili

fa normalmente uso di un buffer di stampa, ma inevitabilmente presenta un comporta-mento a burst

Simultaneous Peripherical Operation On Line (SPOOL) sostituisce il buffer con un file in memoria secondaria

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

26

6.5 La gestione dell’I/O 6.5 La gestione dell’I/O esempio: il disco magneticoesempio: il disco magnetico

ammettendo una coda di richieste, è utile schedularle secondo politiche appropriate:

FCFS, First Come First Served, esegue le richieste così come sono arrivate

SSTF, Shortest Seek Time First, si esegue prima la richiesta più vicina

SCAN, si eseguono le richieste più vicine, mantenendo la direzione di scansione

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

27

6.5 La gestione dell’I/O 6.5 La gestione dell’I/O disco: politica FCFSdisco: politica FCFS

0 5 10 15 20 25 30 35 40

TFCFS = 4 + 2 + 22 + 32 + 15 = 75

molto semplice ma poco efficiente

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

28

6.5 La gestione dell’I/O 6.5 La gestione dell’I/O disco: politica SSTFdisco: politica SSTF

0 5 10 15 20 25 30 35 40

TSSTF = 2 + 2 + 7 + 15 + 32 = 58

efficiente, ma usura maggiormente i cilindri centrali

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

29

6.5 La gestione dell’I/O 6.5 La gestione dell’I/O disco: politica SCANdisco: politica SCAN

0 5 10 15 20 25 30 35 40

TSCAN = 3 + 17 + 22 + 2 + 8 = 52

efficiente e con trattamento paritetico

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

30

6.6 File system e protezione 6.6 File system e protezione generalitàgeneralità

Il File System (FS) garantisce l’accesso e l’organizzazione della memoria secondaria

il FS permette di vedere più dischi fisici come lo stesso volume logico oppure più volumi logici sullo tsesso disco fisico

la sua gestione si integra facilmente con quella della protezione e della sicurezza

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

31

6.6 File system e protezione 6.6 File system e protezione filefile

un file è un’insieme di informazioni caratterizzate da un nome comune e memo-rizzate in memoria secondaria

è una struttura logica mappata in un dispositivo fisico

il formato viene scelto alla sua creazione le caratteristiche dei file sono:

attributi strutturaoperazioni ammesse

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

32

6.6 File system e protezione 6.6 File system e protezione attributi 1attributi 1

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)

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

33

6.6 File system e protezione 6.6 File system e protezione attributi 2attributi 2

Protezione Chi e come può accedere ad un file

Password Codice necessario per accedere al file

Creator ID dell’utente che ha creato il file

Owner utilizzatore corrente del file

Read-only flag 0 - lettura/scrittura 1 - sola lettura

Hidden flag 0 - normale 1 - non visibile

System flag 0 - normal e 1 - file di sistema

Archive flag 0 - salvato (back up) 1 - non salvato

ASCII/binary flag 0 - ASCII 1 - binario

Random access flag 0 - sequenziale 1 - casuale

Temporary flag 0 - normale 1 - eliminare al termine

Lock flags 0 -libero n - bloccato

Record length Numero di byte in un record

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

34

6.6 File system e protezione 6.6 File system e protezione struttura 1struttura 1

Un file ha una struttura fisica composta da blocchi di dati (cluster), mentre a livello logico è visto come un’insieme di byte o di record. Il SO le mette in relazione.

le possibili strutture logiche di un FS sono:– a flusso di byte– a record di lunghezza fissa– a record di lunghezza variabile

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

35

6.6 File system e protezione 6.6 File system e protezione struttura 2struttura 2

a flusso di byte (byte stream)– il SO non sa come interpretare il contenuto del

file, lo sa solo l’utente– il SO utilizza un puntatore relativo all’inizio del

file per accedere ai dati cercati– massima flessibilità per il SO

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

36

6.6 File system e protezione 6.6 File system e protezione struttura 3struttura 3

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 all’inizio del record nel file

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

37

6.6 File system e protezione 6.6 File system e protezione struttura 4struttura 4

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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

38

6.6 File system e protezione 6.6 File system e protezione operazioni ammesse 1operazioni ammesse 1

altre operazioni più complesse si ottengono con opportune combinazioni delle precedenti

creare un file scrivere un file leggere un file rinominare un file

posizionamento interno eliminare un file troncare un file spostare un file

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

39

6.6 File system e protezione 6.6 File system e protezione operazioni ammesse 2operazioni ammesse 2

apertura file– per accedere ad un file, bisogna prima aprirlo,

cioè far si che il SO predisponga un’opportuno strumento di accesso a quel file (handle)

– al termine dell’uso 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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

40

6.6 File system e protezione 6.6 File system e protezione metodi di accesso ai file 1metodi di accesso ai file 1

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 dall’inizio– ad ogni scrittura il record/byte viene aggiunto

in coda e si aggiorna il puntatore

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

41

6.6 File system e protezione 6.6 File system e protezione metodi di accesso ai file 2metodi di accesso ai file 2

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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

42

6.6 File system e protezione 6.6 File system e protezione esempio d’uso di un file in Cesempio d’uso di un file in C

#include <stdio.h>#include <stdlib.h>

#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);

}

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

43

6.6 File system e protezione 6.6 File system e protezione file mappati in memoriafile mappati in memoria

il SO può mappare in memoria virtuale un file, cioè attribuire a quel file una data area di memoria (meglio un segmento perché preserva l’offset) e poi gestirne gli accessi come se fossero indirizzi di memoria

quando il file viene chiuso tutte le modifiche apportate nell’area di memoria vengono riportate sul file

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

44

6.6 File system e protezione 6.6 File system e protezione struttura della directory 1struttura della directory 1

Ogni volume logico contiene uno o più file ed una o più directory di file

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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

45

6.6 File system e protezione 6.6 File system e protezione struttura della directory 2struttura della directory 2

directory a livello singolo– tutti i file sono organizzati in un’unica grande

lista, ognuno con un nome diverso– semplice da capire ed implementare, ma

difficile da gestire per il gran numero di file

NomeFile attributi puntatore dati

FILE 1 FILE 2 FILE 3 FILE 4 FILE 5 FILE 6

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

46

6.6 File system e protezione 6.6 File system e protezione struttura della directory 3struttura della directory 3

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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

47

6.6 File system e protezione 6.6 File system e protezione struttura della directory 4struttura della directory 4

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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

48

6.6 File system e protezione 6.6 File system e protezione struttura della directory 5struttura della directory 5

/ radice

studenti docenti

Rossi Bianchi

doc prg

A2A1

misc odb

D1 D2

Esempi:directory corrente: Rossidirectory padre: ‘.’directory figlio: ‘..’il file A1 può essere chiamatodoc/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)

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

49

6.6 File system e protezione 6.6 File system e protezione struttura della directory 6struttura della directory 6

directory a grafo aperto– rappresenta la generalizzazione dell’albero, 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

Rossi Bianchi

prgprg prg

– in altri SO si duplicano gli identificatori (handle) dei file: coerenza difficile da assicurare

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

50

6.6 File system e protezione 6.6 File system e protezione operazioni con le directoryoperazioni con le directory

create dir crea una nuova sottodirectory delete dir elimina una sottodirectory change dir cambia la directory corrente rename dir cambia nome alla sottodirectory link /unlink crea/annulla collegamenti

simbolici

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

51

6.6 File system e protezione 6.6 File system e protezione implementazione del file system 1implementazione del file system 1

i dischi vengono letti e scritti a blocchi (cluster)

ogni blocco è composto da uno o più settori caricamento del File System (mounting)

– il SO inserisce il dispositivo specificato nel punto indicato della directory corrente

– in UNIX può avvenire in run time

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

52

6.6 File system e protezione 6.6 File system e protezione implementazione del file system 2implementazione del file system 2

File System logico

organizzazione dei file

File System fisico

Device driver

Disk driver e controller

tabella deifile aperti

dai comandi di altolivello (API del SO) a quellidi basso livello (hardware)

dalle informazionisimboliche

all’allocazione logicadai blocchi logici diun file a quelli fisici

lettura/scritturadei blocchi fisici

hardware controllabilee programmabile

mappaallocazione

bufferd’accesso

parametriconfig.

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

53

6.6 File system e protezione 6.6 File system e protezione implementazione dei file 1implementazione dei file 1

allocazione contigua– memorizzazione dei file in blocchi fisici consecutivi

– un file è identificato dall’indirizzo del primo blocco e dal numero di blocchi utilizzati

– supporta l’accesso 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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

54

6.6 File system e protezione 6.6 File system e protezione implementazione dei file 2implementazione dei file 2

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 all’ultimo – 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 l’affidabilità della

lista rappresenta un problema

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

55

6.6 File system e protezione 6.6 File system e protezione implementazione dei file 3implementazione dei file 3

File Allocation Table (MS DOS e successivi)

tabella ordinata di puntatori, uno per ogni blocco del disco0 blocco libero N blocco successivo

del fileEOF ultimo blocco del

file tutta o parte della FAT deve

essere copiata in RAM permete l’accesso diretto

00

01

42

03

54

65EOF6

07

FILE_1

2

vuoti

456

FAT

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

56

6.6 File system e protezione 6.6 File system e protezione implementazione dei file 4implementazione dei file 4

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 un’operazione di ricerca su blocco indice e poi un accesso diretto al blocco contenente i dati cercati

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

57

6.6 File system e protezione 6.6 File system e protezione implementazione dei file 5implementazione dei file 5

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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

58

6.6 File system e protezione 6.6 File system e protezione implementazione dei file 6implementazione dei file 6

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 dell’i-node

– file medi: oltre agli indirizzi precedenti, c’è un campo che punta ad un single indirect node posto in un blocco

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

59

6.6 File system e protezione 6.6 File system e protezione implementazione dei file 7implementazione 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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

60

6.6 File system e protezione 6.6 File system e protezione implementazione dei file 8implementazione dei file 8

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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

61

6.6 File system e protezione 6.6 File system e protezione implementazione delle directory 1implementazione delle directory 1

la funzione delle directory è quella di suddividere lo spazio fisico della memoria secondaria in più aree logiche distinte, e l’obiettivo della loro implementazione è quello di correlare la stringa ASCII del nome del file alle informazioni necessarie al recupero di quel file

le directory possono essere implementate con– liste lineari ad uno o più livelli– ricorrendo a tabelle di hash

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

62

6.6 File system e protezione 6.6 File system e protezione implementazione delle directory 2implementazione delle directory 2

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

tabella di hash– c’è ancora una lista lineare, ma mediante una

tabella dei nomi e dei puntatori ai relativi elementi della lista, l’accesso è velocizzato

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

63

6.6 File system e protezione 6.6 File system e protezione implementazione delle directory 3implementazione delle directory 3

• Directory gerarchica a più livelli.• campi della directory a 32 bit:

1 Nome file: 8 bytes 5 Orario: 2 bytes2 Estensione file 3 bytes 6 Data: 2 bytes3 Attributi: 1 byte 7 Primo blocco: 2 bytes4 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) = 1980-210832*minuti [32*60=1920]32*mese [32*12=384]0,5*secondi [60/2=30] 1*giorno [31]

1 2 3 4 5 6 7 8

Riservato per sviluppi futuri

MS-DOS

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

64

6.6 File system e protezione 6.6 File system e protezione UNIX - file system 1UNIX - file system 1

Il file system di UNIX è composto da 4 elementi: boot block (blocco 0)

– non sempre usato, contiene il programma di boot 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 ...)

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

65

6.6 File system e protezione 6.6 File system e protezione UNIX - file system 2UNIX - file system 2

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 65.535

– un i-node contiene informazioni sul file relativo (processo utilizzatore, protezioni, orario dell’ultimo accesso e modifica, dimensione, indirizzi per localizzare i blocchi contenenti i dati del file, ...)

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

66

6.6 File system e protezione 6.6 File system e protezione UNIX - file system 3UNIX - file system 3

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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

67

6.6 File system e protezione 6.6 File system e protezione UNIX - elemento di directoryUNIX - elemento di directory

un elemento di directory è composto da:

– numero dell’i-node relativo al file (2 byte)– nome del file (stringa ASCII da 14 byte max)

una directory viene memorizzata in un blocco del disco, e contiene i nomi dei suoi file ed i puntatori ai relativi i-node

in un blocco da 1Kbyte si possono inserire 64 elementi di directory (da 16 byte ciascuno)

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

68

6.6 File system e protezione 6.6 File system e protezione affidabilità del file system 1affidabilità del file system 1

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 salvataggio del file system

– su nastro, tempi lunghi, possibilità incrementale– su disco, con partizione di backup o RAID,

Redundant Array of Inexpensive Disks

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

69

6.6 File system e protezione 6.6 File system e protezione affidabilità del file system 2affidabilità del file system 2

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. consistenza: ciascun blocco appartiene ad una sola lista perdita: il blocco non appartiene ad alcuna lista duplicazione: il contatore del blocco è maggiore di 1 in

una delle due liste– consistenza dei file: analogo per i file

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

70

6.6 File system e protezione 6.6 File system e protezione prestazioni del file system 1prestazioni del file system 1

data la lentezza dell’accesso ai dischi, si interpone tra memoria principale e secondaria un buffer (organizzato come una cache) della dimensione di alcuni blocchi

quando il buffer è pieno si possono adottare politiche di rimpiazzo analoghe alla paginazione (LRU)

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

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

71

6.6 File system e protezione 6.6 File system e protezione prestazioni del file system 2prestazioni del file system 2

UNIX adotta la chiamata automatica di SYNC ogni 30 secondi circa

MS-DOS adotta la politica write-through (più lenta, meno efficace, si può togliere un FD in qualsiasi momento)

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

72

6.6 File system e protezione 6.6 File system e protezione sicurezza: generalitàsicurezza: generalità

la multiutenza e la multiprogrammazione condividono le risorse: occorre evitare utilizzi non autorizzati

protezione– meccanismi di salvaguardia delle risorse dai

malfunzionamenti sicurezza

– impedire l’uso non autorizzato (volontario o meno) di risorse

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

73

6.6 File system e protezione 6.6 File system e protezione sicurezza: intrusionisicurezza: intrusioni

intrusi passivi, leggono file a loro negati intrusi attivi, apportano modifiche non

consentite a file classificabili in

– intrusi di passaggio, casuali– intrusi a scopo di curiosità (interni al sistema)– intrusi a scopo di lucro– intrusi a scopo di spionaggio

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

74

6.6 File system e protezione 6.6 File system e protezione sicurezza: esempio di difettosicurezza: esempio di difetto

lpr (UNIX)– il comando lpr stampa un file e, se attivata

l’opzione -r, il file viene successivamente rimosso: si poteva lanciare la stampa del file delle password e poi farlo eliminare, rendendo accessibile l’intero sistema

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

75

6.6 File system e protezione 6.6 File system e protezione sicurezza: esempi di attacchisicurezza: esempi di attacchi

richiedere pagine di memoria, aree di dati o blocchi di disco: molti SO non le cancellano prima di riutilizzarle

effettuare chiamate di sistema con parametri errati o incoerenti: molti SO non prevedono tutti i casi possibili

digitare DEL, BREAK o simili all’interno della password: il SO potrebbe chiudere il programma di test e considerare valido il login

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

Sistema Operativo Architettura degli elaboratori 1 - A. Memo

76

6.6 File system e protezione 6.6 File system e protezione sicurezza: virussicurezza: virus

segmento di codice aggiunto ad un programma con l’obiettivo di replicarsi su altri programmi

virus di boot, attivati durante la fase di avvio si collegano alle chiamate di sistema ed infettano tutto il sistema

virus di file, presenti in fle eseguibili virus di macro virus polimorfi