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

INDIRIZZI LOGICI E FISICI

Spazio di indirizzamento logico

  1. Ogni processo è associato ad uno spazio di indirizzamento logico
  2. Gli indirizzi usati in un processo sono indirizzi logici, ovvero riferimenti a questo spazio di indirizzamento

Spazio di indirizzamento fisico

  1. Ad ogni indirizzo logico corrisponde un indirizzo fisico
  2. La MMU opera come una funzione di traduzione da indirizzi logici a indirizzi fisici

ALLOCAZIONE DELLA MEMORIA

È una delle funzioni principali del gestore di memoria

Consiste nel reperire ed assegnare uno spazio di memoria fisica, a un programma che viene attivato oppure per soddisfare ulteriori richieste effettuate dai programmi durante la loro esecuzione

Allocazione contigua→tutto lo spazio assegnato ad un programma deve essere formato da celle consecutive

Allocazione non contigua→è possibile assegnare a un programma aree di memoria separate

Nota→la MMU deve essere in grado di gestire la conversione degli indirizzi in modo coerente

alla allocazione Statica→un programma deve mantenere la propria aerea di memoria dal caricamento allaterminazione,non è possibile rilocare il programma durante l'esecuzione

Dinamica→durante l'esecuzione, un programma può essere spostato all'interno dellamemoria

ALLOCAZIONE A PARTIZIONI FISSE

la memoria disponibile (quella non occupata dal s.o.) viene suddivisa in partizioniogni processo viene caricato in una delle partizioni libere che ha dimensione sufficiente acontenerlostatica e contigua

Vantaggi: molto semplice

Svantaggi: spreco di memoriase un processo occupa una dimensione inferiore a quella della partizione che lo contiene,lo spazio non utilizzato è sprecato la presenza di spazio inutilizzato all'interno di un'unità diallocazione si chiama frammentazione interna

ALLOCAZIONE A PARTIZIONI DINAMICHE

la memoria disponibile (nella quantità richiesta) viene assegnata ai processi che ne fannorichiestanella memoria possono

Best Fit seleziona il blocco libero più piccolo, ma sufficientemente grande, presente in memoria. È più lento di First Fit e Next Fit, ma riduce la frammentazione.

genera + frammentazione

Worst fit seleziona il più grande fra i blocchi liberi presenti in memoria→difficilel'allocazione di processi di grosse dimensioni

PAGINAZIONE

i meccanismi visti (partizioni fisse, partizioni dinamiche) non sono efficienti nell'uso dellamemoria, la paginazione è l’approccio contemporaneo

  1. riduce il fenomeno di frammentazione interna
  2. minimizza (elimina) il fenomeno della frammentazione esterna

Lo spazio di indirizzamento logico di un processo viene suddiviso in un insieme di blocchidi dimensione fissa chiamati pagine

La memoria fisica viene suddivisa in un insieme di blocchi della stessa dimensione dellepagine, chiamati frame

Quando un processo viene allocato in memoria: vengono reperiti ovunque inmemoria un numero sufficiente di frame per contenere le pagine del processo 39la dimensione delle pagine deve essere una potenza di due, per semplificare latrasformazione da indirizzi logici a indirizzi fisici es 1KB, 2KB, 4KB,

4MBTranslation lookaside buffer (TLB) un TLB è costituito da un insieme di registri associativiad alta velocità ogni registro è suddiviso in due parti, una chiave e un valorela TLB agisce come memoria cache per le tabelle delle pagine, il meccanismo della TLB(come tutti i meccanismi di caching) si basa sul principio di località,l'hardware per la TLB ècostoso

In un sistema con segmentazione la memoria associata ad un programma è suddivisa inaree differenti dal punto di vista funzionale

  1. uno spazio di indirizzamento logico è dato da un insieme di segmenti
  2. un segmento è un'area di memoria (logicamente continua) contenente elementi traloro affini
  3. ogni segmento è caratterizzato da un nome (normalmente un indice) e da unalunghezza
  4. ogni riferimento di memoria è dato da una coppia <nome segmento, offset>

Spetta al programmatore o al compilatore la suddivisione di un programma insegmenti 40Memoria

Virtuale è la tecnica che permette l'esecuzione di processi che non sono completamente in memoria, permette di eseguire in concorrenza processi che nel loro complesso (o anche singolarmente) hanno necessità di memoria maggiore di quella disponibile.

La memoria virtuale può diminuire le prestazioni di un sistema se implementata (e usata) nel modo sbagliato. I processi non utilizzano tutto il loro spazio di indirizzamento contemporaneamente. Ogni processo ha accesso ad uno spazio di indirizzamento virtuale che può essere più grande di quello fisico.

Gli indirizzi virtuali possono essere mappati su indirizzi fisici della memoria principale, oppure possono essere mappati su memoria secondaria (spazio su disco).

In caso di accesso ad indirizzi virtuali mappati in memoria secondaria, i dati associati vengono trasferiti in memoria principale. Se la memoria è piena, si sposta in memoria secondaria i dati contenuti in memoria principale che sono considerati meno importanti.

Utilizzando la tecnica della paginazione, si adotta il demand paging, che permette di avere alcune pagine in memoria secondaria.

  1. Quando il sistema operativo carica l'indirizzo della prima istruzione nel program counter, si verifica un primo page fault.
  2. Una volta che la prima pagina viene portata in memoria, le altre vengono caricate solo quando vengono indirizzate perché contengono dati o codice.

Lo swap indica l'azione di copiare l'intera area di memoria utilizzata da un processo:

  1. Dalla memoria secondaria alla memoria principale (swap-in).
  2. Dalla memoria principale alla memoria secondaria (swap-out).

In alcuni sistemi operativi, il pager viene indicato con il nome di swapper.

L'area di swap indica l'area del disco utilizzata per ospitare le pagine in memoria secondaria:

  1. Individuazione della locazione richiesta.
  2. Individuazione del frame libero.
  3. La pagina richiesta viene caricata e vengono opportunamente aggiornate le tabelle.
  4. Viene riavviato il processo.

processo utente

Lo scaricamento può essere evitato se la pagina da scaricare non è stata modificata. Per verificare questa condizione occorre aggiungere alla pagina un bit di modifica (dirty bit) che viene gestito via hardware

Page fault

  1. Supponiamo che una istruzione macchina del codice in pagina 0 faccia riferimento alla pagina 1
  2. La MMU scopre che la pagina 1 non è in memoria principale
  3. Viene generato una eccezione di tipo fault "page fault", che viene catturato dal s.o.
  4. Il s.o. cerca in memoria secondaria la pagina da caricare
  5. Il s.o. carica la memoria principale con il contenuto della pagina
  6. Il s.o. aggiorna la page table in modo opportuno e riavvia l'esecuzione dell'istruzione

Cosa succede in mancanza di frame liberi? Occorre "liberarne" uno, la pagina vittima deve essere la meno "utile"

Quando il processo richiede un indirizzo:

  1. Se tenta di accedere a un indirizzo con bit di validità 1 → indirizzo logico
  2. si trasformain fisico2) Se tenta di accedere a un indirizzo con bit di validità 0, viene generato un trap denominato page fault. Il trap interrompe l’esecuzione del processo e produce l’esecuzione del gestore delle interruzioni.

    Gestione del page fault

    1. Viene controllata la tabella interna del processo per stabilire se l’indirizzo logico è valido.
    2. Se il riferimento non era valido il processo viene terminato. Altrimenti se il riferimento è valido viene iniziato il trasferimento della pagina.
    3. Viene individuato un frame libero.
    4. Viene caricata la pagina mancante, dal disco al frame scelto.
    5. Viene modificata la tabella interna del processo e la tabella generale delle pagine.
    6. Viene riavviata l’esecuzione interrotta con il trap di page fault. A questo punto il programma può accedere all’indirizzo che è in memoria centrale.

    Hardware richiesto

    L’hardware richiesto per la gestione della memoria virtuale tramite demand

    Paging è dunque sostanzialmente lo stesso necessario per la paginazione e lo swapping:

    1. Tabella delle pagine, per il reperimento delle pagine, a cui è aggiunto il bit di validità.
    2. Backing store, realizzato su supporti di memoria secondaria, per la memorizzazione stabile delle pagine.
    3. Apposita MMU.

    I programmi tendono ad avere località di riferimento, ovvero ad allocare in posizioni vicine, riferimenti "vicini".

    In un sistema con memoria virtuale basata su paginazione su richiesta è importante tenere basso il numero dei page fault e scegliere bene il meccanismo di sostituzione.

    Copiatura su scrittura (copy on write) basata sulla iniziale condivisione delle pagine da parte del processo padre e del processo figlio, quando il figlio tenta di modificare la pagina ne ottiene la copia reale.

    TECNICHE DI SOSTITUZIONI DELLE PAGINE

    L'algoritmo per la sostituzione delle pagine che decide quale pagina debba essere scaricata se non ci sono frame liberi.

    ù tempo. Per fare ciò, tiene traccia dell'ultimo accesso a ciascuna pagina e, quando è necessario liberare un frame, seleziona la pagina che è stata acceduta meno di recente. L'algoritmo LRU è considerato uno dei più efficienti in termini di prestazioni, ma richiede una maggiore complessità computazionale rispetto ad altri algoritmi come FIFO. Anomalia di Belady: l'algoritmo LRU può soffrire dell'anomalia di Belady, che si verifica quando aumentando il numero di frame allocati, le prestazioni peggiorano anziché migliorare. Tuttavia, l'anomalia di Belady è meno comune con LRU rispetto a FIFO. L'algoritmo ottimale, noto anche come algoritmo di rimpiazzamento ottimo, è l'algoritmo teoricamente perfetto che seleziona sempre la pagina che verrà acceduta più tardi nel futuro. Tuttavia, è impossibile implementare l'algoritmo ottimale nella pratica poiché richiede di conoscere il futuro. Questi sono solo alcuni degli algoritmi di rimpiazzamento dei frame utilizzati per l'allocazione della memoria in un sistema operativo. Ogni algoritmo ha i suoi vantaggi e svantaggi e la scelta dell'algoritmo dipende dalle specifiche esigenze del sistema.
Dettagli
Publisher
A.A. 2021-2022
78 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher MatCan98 di informazioni apprese con la frequenza delle lezioni di Elementi 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 Ghini Vittorio.