Anteprima
Vedrai una selezione di 14 pagine su 64
Sistemi operativi Pag. 1 Sistemi operativi Pag. 2
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Sistemi operativi Pag. 6
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Sistemi operativi Pag. 11
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Sistemi operativi Pag. 16
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Sistemi operativi Pag. 21
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Sistemi operativi Pag. 26
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Sistemi operativi Pag. 31
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Sistemi operativi Pag. 36
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Sistemi operativi Pag. 41
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Sistemi operativi Pag. 46
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Sistemi operativi Pag. 51
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Sistemi operativi Pag. 56
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Sistemi operativi Pag. 61
1 su 64
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Algoritmo di sostituzione delle pagine con seconda chance

Il numero dei bit può ovviamente essere variato: si stabilisce secondo l'architettura disponibile per accelerarne al massimo la modifica. Nel caso limite tale numero si riduce a zero, lasciando soltanto il bit di riferimento e definendo un algoritmo noto come algoritmo di sostituzione delle pagine con seconda chance.

Algoritmo con seconda chance (approssimazione LRU)

L'algoritmo di base per la sostituzione con seconda chance è un algoritmo di sostituzione di tipo FIFO. Dopo aver selezionato una pagina si controlla il bit di riferimento, se il suo valore è 0, si sostituisce la pagina; se il bit di riferimento è impostato a 1, si dà una seconda chance alla pagina e la selezione passa alla successiva pagina FIFO. Quando una pagina riceve la seconda chance, si azzera il suo bit di riferimento e si aggiorna il suo istante d'arrivo al momento attuale. In questo modo, una pagina cui si offre una seconda chance non viene mai sostituita.

finché tutte le altre pagine non siano state sostituite, oppure non sia stata offerta loro una seconda chance. Inoltre, se una pagina è usata abbastanza spesso, in modo che il suo bit di riferimento sia sempre impostato a 1, non viene mai sostituita.

Un metodo per realizzare l'algoritmo con seconda chance, detto anche a orologio (clock), è basato sull'uso di una coda circolare, in cui un puntatore indica quale è la prima pagina da sostituire. Quando serve un frame, si fa avanzare il puntatore finché non si trovi in corrispondenza di una pagina con il bit di riferimento 0; a ogni passo si azzera il bit di riferimento appena esaminato (Figura). Una volta trovata una pagina "vittima", la si sostituisce e si inserisce la nuova pagina nella coda circolare nella posizione corrispondente. Si noti che nel caso peggiore, quando tutti i bit sono impostati a 1, il puntatore percorre un ciclo su tutta la coda, dando a ogni pagina una seconda chance.

Prima di selezionare la pagina da sostituire, azzera tutti i bit di riferimento. Se tutti i bit sono a 1, la sostituzione con seconda chance si riduce a una sostituzione FIFO.

Allocazione dei frame

Esiste un numero minimo di frame assegnati ad un processo, questo riguarda le istruzioni che una macchina può eseguire. Esistono due schemi di allocazione delle risorse: allocazione fissa e allocazione prioritaria.

In uno schema a locazione fissa abbiamo un numero di frame assegnato ad un processo che è costante nel tempo e viene stabilito all'inizio. Il più semplice è l'equal allocation, dove assegniamo lo stesso numero di risorse ad ogni processo. Per esempio, se abbiamo 5 processi e 100 frame, ogni processo avrà 20 frame. Se modifichiamo il livello di multiprogrammazione introducendo dei processi, varierà l'allocazione al fine di ottenere un'allocazione delle risorse equa. Un altro sistema è il sistema ad allocazione proporzionale.

Si parte dall'idea che i processi di taglia più grande abbiano bisogno di maggiori pagine (o frame) o di processi che hanno un ruolo importante e quindi necessitano di stare sulla macchina per un tempo più lungo. Data la loro taglia si giustifica un numero di frame più alto.

Una possibile implementazione:

Allocazione prioritaria

Usa una distribuzione proporzionale delle risorse in base alla priorità o della taglia del processo, nel caso in cui un processo genera un page fault, il processo userà una propria pagina vittima oppure ruberà una pagina a un processo con priorità più bassa. Questa scelta prevede un inconveniente, cioè va a togliere le risorse ai processi che hanno priorità più bassa.

Global vs Local Allocation

Con il termine global replacement si fa riferimento ad applicare gli algoritmi di page replacement su tutti i processi che sono in esecuzione ad eccezione di quelli che riguardano il sistema operativo.

Quando uno dei nostri processi produce un page fault si guarda nell'insieme di tutti i processi per andare a cercare un processo vittima sul quale appliceremo uno degli algoritmi visti in precedenza per scegliere una pagina vittima. Con il termine local replacement, gli algoritmi di page replacement vengono applicati localmente sul processo che è andato in contro a un page fault e la scelta della pagina vittima viene effettuata sul nostro processo, non posso andare a rubare pagine ad altri processi. Thrashing Un processo in thrashing è un processo che spende più tempo per la paginazione che per l'esecuzione dei processi. Come è immaginabile, il thrashing causa gravi problemi alle prestazioni. Il thrashing ha luogo quando il numero di pagine diventa molto alto e il processore si ritrova con un'utilizzazione molto scarsa. Se il sistema operativo si trova in una situazione in cui ci sono molti page fault e quindi un basso utilizzo della CPU, cerca...

Il sistema operativo potrebbe monitorare il numero di page fault causato da un determinato processo (working set) su un certo intervallo di tempo, se tale numero è molto basso significa che il processo potrebbe fare a meno di alcune risorse che possono essere ridistribuite in modo da avere una migliore allocazione delle risorse. Mentre se il processo si trova ad avere un numero elevato di page fault vuole dire che tale processo sta cercando di accedere a pagine che sono state swap out sulla memoria secondaria. In questo caso il sistema operativo potrebbe decidere di diminuire il livello di multiprogrammazione facendo swap out di un processo sulla memoria secondaria, in modo da liberare risorse per il processo che sta causando il thrashing.

Il processo si ritrova ad avere una località che è più grande di quella che poteva essere prima e a quel processo occorre assegnare qualche frame. Questo sistema permette di calibrare l'assegnazione delle risorse in base al working set di quel relativo processo e alla sua località che varia nel tempo. Tutto ciò ci permette di evitare di cadere in una situazione di thrashing.

System call

Le sistema call sono le operazioni che il sistema operativo mette a disposizione a livello superiore, sono operazioni che possono essere effettuate dal sistema operativo e ci permettono la creazione di fork() oppure i/o o altre operazioni che possiamo fare solo attraverso il sistema operativo.

Sicurezza a livello hardware

Dual mode operation: bit che definisce se l'operazione che viene eseguità è compita dal sistema operativo oppure se il bit è in user mode vuol dire che il codice eseguito è codice utente e quindi il bit cambia il suo stato.

ogni volta che viene eseguita una system call. Istruzioni privilegiate; istruzioni disponibili solo al sistema operativo. Indirizzi di sicurezza; indirizzi di protezione della memoria e sono degli indirizzi che fanno parte del sistema operativo e quindi non posso caricare dei processi in quell' area. Time: la dimensione viene definita dal sistema operativo e l'hardware definisce quando il tempo può utilizzare la cpu. La lunghezza di questo timer viene settata lato software e setta il tempo di utilizzo massimo della CPU da parte di un processo. Gestione del file system. Per la maggior parte degli utenti il file system è l'aspetto più visibile di un sistema operativo. Esso fornisce il meccanismo per la registrazione e l'accesso in linea a dati e programmi appartenenti al sistema operativo e a tutti gli utenti del sistema di calcolo. Il file system consiste di due parti distinte: un insieme di file, ciascuno dei quali contenente dati correlati, e una

La struttura della directory organizza tutti i file nel sistema e fornisce le informazioni relative. I file system basano la loro esistenza su dispositivi. Si analizza inoltre la semantica dei file condivisi da più processi, utenti e calcolatori. In questo capitolo, infine, si considerano i vari aspetti dei file e i principali tipi di strutture della directory. Si esamina inoltre la gestione della protezione dei file, necessaria in un ambiente in cui più utenti hanno accesso ai file, e dove si vuole controllare chi e in che modo vi ha accesso.

Un file è un insieme di informazioni, correlate e registrate in memoria secondaria, cui è stato assegnato un nome. Dal punto di vista dell'utente, un file è la più piccola porzione di memoria secondaria logica; i dati si possono cioè scrivere in memoria secondaria soltanto all'interno di un file. Di solito i file rappresentano programmi, in forma sorgente e oggetto, e dati. I file di

dati che identificano univocamente il file all'interno del sistema operativo, come ad esempio un numero di inode o un GUID. Dimensione. Indica la dimensione del file in byte. Data di creazione. Indica la data e l'ora in cui il file è stato creato. Data di modifica. Indica la data e l'ora dell'ultima modifica apportata al file. Permessi di accesso. Indicano i diritti di accesso al file per gli utenti del sistema, come ad esempio la possibilità di leggere, scrivere o eseguire il file. Proprietario. Indica l'utente che ha creato il file e che ne ha i diritti di proprietà. Gruppo. Indica il gruppo di utenti a cui appartiene il file e che ne ha i diritti di accesso. Estensione. Indica il tipo di file o il formato dei dati contenuti nel file, solitamente rappresentato da una o più lettere dopo il punto nel nome del file. Questi sono solo alcuni degli attributi comuni dei file, ma possono variare a seconda del sistema operativo utilizzato.
  1. Etichetta: un’etichetta unica, di solito un numero, che identifica il file all’interno del file system; è il nome impiegato dal sistema per il file.
  2. Tipo: Questa informazione è necessaria ai sistemi che gestiscono tipi di file diversi.
  3. Locazione: Si tratta di un puntatore al dispositivo e alla locazione del file in tale dispositivo.
  4. Dimensione: Si tratta della dimensione corrente del file (in byte, parole o blocchi) ed eventualmente della massima dimensione consentita.
  5. Protezione: Le informazioni di controllo degli accessi controllano chi può leggere, scrivere o fare eseguire il file.
  6. Ora, data e identificazione dell’utente: Queste informazioni possono essere relative alla creazione, l’ultima modifica e l’ultimo uso. Questi dati possono essere utili ai fini della protezione e per controllarne l’uso.

Operazioni svolgibili sui file:

Esiste un modulo che mi determina le operazioni che posso eseguire su un file e la sintassi di queste operazioni, chiamate

Anche System Call. Un file è un tipo di dato astratto. Per definire adeguatamente un file è necessario considerare le operazioni.

Dettagli
Publisher
A.A. 2021-2022
64 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher gegeball di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bologna o del prof Sangiorgi Davide.