Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Gestore dei processi
Un processo è un programma in esecuzione. Un processo necessita di certe risorse, tra cui tempo di CPU, memoria file, dispositivi di I/O, per portare a termine il suo compito.
Il SO è responsabile delle seguenti attività coinvolte nella gestione dei processi:
- creazione e cancellazione dei processi
- sospensione e riesumazione dei processi
- fornire meccanismi per:
- sincronizzazione dei processi
- comunicazione tra processi
- evitare, prevenire e risolvere i deadlock.
Gestore dei processi
Uno dei compiti principali del sistema operativo riguarda la gestione dei processi.
Per il momento assumiamo di trattare sistemi monoprogrammati (anche detti mono-tasking).
In sistemi di questo tipo è possibile eseguire un solo programma alla volta: i programmi devono essere eseguiti in modo sequenziale e si può mandare in esecuzione un programma solo quando quello precedente ha terminato l'esecuzione (es. MS/DOS).
- Il barista è il corrispondente del processore, i clienti sono l'equivalente dei processi da eseguire
- Esecuzione mono-tasking:
- A.O. = attesa ordine
- Pr.C. = prepara cocktail
- Ris. = riscuoti
- At. = attesa
- Pag. = pagamento
- Ord. = ordina
- Gestore dei processi
- Quello che viene evidenziato dall'esempio precedente è vero in generale: qualunque processo P alterna fasi di esecuzione a fasi in cui è bloccato in attesa di qualche evento esterno
- Un processo può essere in attesa che sia terminata un'operazione di input di dati oppure in attesa di poter usare una risorsa in quel momento occupata
- La velocità di elaborazione di un calcolatore (quindi il tempo in cui un processo è in esecuzione) è dell'ordine del milionesimo di secondo, quindi molto minore dei tempi di lavoro delle periferiche di input/output, a volte
inattività del barista sono eliminati
Gestore dei processi
L'idea illustrata mediante l'esempio precedente è l'idea di base del multi-tasking: più programmi vengono eseguiti contemporaneamente sullo stesso processore.
Il numero di processi attivi viene detto multiprogrammazione del sistema
- Dal punto di vista del processore, in ogni istante vi è un solo processo in esecuzione
- Se l'alternanza tra i processi è frequente (ad esempio ogni 10 millisecondi), l'utente ha l'impressione che l'esecuzione dei programmi sia veramente simultanea
Gestore dei processi
Un processo quindi può trovarsi in tre diversi stati:
- in esecuzione: quando sta utilizzando il processore
- in attesa (bloccato): quando è in attesa del verificarsi di un evento esterno (terminazione di un'operazione di input/output o altro)
- pronto: quando è potenzialmente in condizione di
poter utilizzare il processore che è occupato da un altro processo.
Gestore dei processi multi-tasking
Il funziona efficacemente se il S.O. è in grado di offrire alcune assicurazioni:
- cambio di contesto - Il deve essere invisibile al processo. Nell'esempio del bar i clienti non si accorgono che il barista serve un gruppo di clienti contemporaneamente. Il barista riprende a servire un cliente quando il servizio viene ripreso esattamente nel punto in cui era stato interrotto.
- cronometro n sospende - Il barista ha un e ogni secondi il servizio che sta effettuando e passa a servire un altro cliente.
Gestore dei processi - La politica di gestione in cui il barista divide il suo tempo tra i vari clienti assegnando a ciascuno un certo intervallo di tempo è implementata nei S.O. multi-tasking e prende il nome di Round-Robin.
La politica di gestione in cui il barista serve in modo sequenziale i vari clienti viene chiamata Gestore di memoria principale.
La memoria
Il principale è un grande insieme di parole, ognuna identificata univocamente con un indirizzo, e può considerarsi come un deposito di dati velocemente accessibili da CPU e dispositivi di I/O. Tale memoria è volatile e perde i dati in caso di system failure.
Il SO è responsabile delle seguenti attività:
- tenere traccia delle aree di memoria correntemente utilizzate e dei rispettivi utenti
- decidere quale processo caricare in memoria quando dello spazio si rende disponibile
- allocare o liberare (deallocare) spazio in memoria, a seconda delle richieste.
Gestore di memoria secondaria
Poiché la memoria principale è volatile e troppo piccola per contenere tutti i dati ed i programmi permanentemente, il calcolatore deve prevedere anche una memoria secondaria, di supporto a quella principale. La maggior parte dei calcolatori utilizza dischi come supporti di memoria secondaria, per memorizzare sia dati che programmi.
Il SO è responsabile delle seguenti
attività per gestire i dischi:- Gestione dello spazio libero
- Allocazione dello spazio
- Schedulazione dei dischi
- Un sistema di memoria a buffer (buffer: area di memoria usata per conservare temporaneamente i dati da trasferire ad un dispositivo)
- L'interfaccia per il gestore del dispositivo di I/O (interface driver)
- I driver stessi per ciascun dispositivo di I/O (controller)
- Creazione e cancellazione di files
- Creazione e cancellazione di directory
- Supporto di primitive (semplici funzioni o programmi) per
la gestione di files e directory allocazione di files in memoria secondaria salvataggio di dati su supporti non volatili.
File System
Il File System è quella parte del S.O. che si occupa di gestire e strutturare le informazioni memorizzate su supporti permanenti. Deve fornire una visione astratta dei file su disco e l'utente deve avere la possibilità di:
- identificare ogni file con un nome (filename) astrae completamente dalla sua memorizzazione fisica (blocchi su disco rigido e localizzazione dei blocchi)
- avere un insieme di operazioni per lavorare sui file: creare o rimuovere un file, copiarlo, cambiargli nome, inserire informazioni in un file continua...
File System
effettuare l'accesso alle informazioni mediante operazioni ad alto livello, che non tengono conto del tipo di memorizzazione (accedere ad un file memorizzato sul disco rigido oppure su un CD-ROM allo stesso modo)
avere la possibilità di strutturare un insieme di file, organizzandoli
File System
Un insieme di operazioni minimale, presente in tutti i sistemi, è il seguente:
- creazione di un file
- cancellazione (rimozione) di un file
- copia di un file
- visualizzazione del contenuto di un file ad esempio sul video del terminale o in una finestra sul video
- stampa di un file
- lettura e modifica del contenuto di un file
- ridenominazione di un file, per cambiare il nome ad un file
- visualizzazione delle caratteristiche di un insieme di file (dimensione, data di creazione e dell'ultima modifica, vincoli di protezione, ecc.)
Organizzazione gerarchica
Il numero di file che devono essere memorizzati su un disco può essere
estremamente elevato- si ha quindi la necessità di mantenere i file in una forma ordinata- un unico spazio (contenitore) di file è scomodo perché le operazioni di ricerca di un file e di creazione di un nuovo file diventano onerose (non è possibile avere due file con lo stesso nome)- l'idea è quella di raggruppare i file in sottoinsiemi (seguendo magari dei criteri di tipo logico)
Organizzazione gerarchica
Tutti i sistemi operativi forniscono operazioni per creare delle directory (cartelle)- una directory (cartella) è costituita da un insieme di file- i nomi dei file sono locali alle directory (si possono avere due file con lo stesso nome purché siano in due directory diverse)- in questo modo l'indice conterrà due tipi di oggetti: nomi di file e nomi di directory- senza la strutturazione in directory, tutti i file potrebbero essere identificati semplicemente mediante il loro nome- nel caso di un'organizzazione gerarchica
più livelli si deve specificare l'intera sequenza di directory che lo contengono, a partire dalla radice dell'albero
Organizzazione gerarchica
Organizzazione gerarchica
Ad esempio il file libro1 di narrativa italiana è univocamente identificato dalla sequenza:
A:\Biblioteca\Narrativa-Ita\libro1
La directory Pautasso di Utenti è identificata dalla sequenza:
A:\Utenti\Pautasso
il carattere “\” (slash)