19.05.2013 Views

Facoltà di Ingegneria Tesi di laurea ANALISI DELLE TECNOLOGIE ...

Facoltà di Ingegneria Tesi di laurea ANALISI DELLE TECNOLOGIE ...

Facoltà di Ingegneria Tesi di laurea ANALISI DELLE TECNOLOGIE ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

memoria virtuale. L’in<strong>di</strong>rizzo dove risiede la PD del processo è chiamato Page Directory<br />

Base (PDB) e questo valore, nel momento in cui il processore si occupa del processo, viene<br />

caricato nel registro CR3, detto anche Page Directory Base Register; ogni volta che si cambia<br />

processo viene caricato un nuovo valore nel CR3 che in<strong>di</strong>ca la PDB del nuovo processo [7].<br />

Gli accessi alla memoria effettuati attraverso in<strong>di</strong>rizzi virtuali possono provocare delle<br />

eccezioni <strong>di</strong> page fault (#PF); questi avvengono per due motivi:<br />

non c’è una traduzione valida per l’in<strong>di</strong>rizzo virtuale;<br />

c’è una traduzione valida ma i <strong>di</strong>ritti <strong>di</strong> privilegio non ne permettono l’accesso [8].<br />

La traduzione degli in<strong>di</strong>rizzi (address translation) è un’operazione molto intensiva, in quanto<br />

il page walker deve accedere alla gerarchia <strong>di</strong> memoria molte volte. Per ridurre questo<br />

overhead e velocizzare l’operazione, si introduce un’ulteriore tabella interna, la translation<br />

look-aside buffer (TLB), in cui il processore memorizza le traduzioni recenti. Ogni volta che<br />

deve accedere alla memoria, la CPU prima controlla la TLB per determinare se la traduzione<br />

richiesta è già stata effettuata <strong>di</strong> recente; se sì, il processore utilizza questa traduzione senza<br />

ricorrere alle page tables e al page walker.<br />

I sistemi operativi devono cooperare con il processore allo scopo <strong>di</strong> mantenere la TLB in uno<br />

stato consistente con le page tables in memoria: per esempio, quando si rimuove una address<br />

translation, il OS deve richiedere al processore <strong>di</strong> invalidare l’ingresso della TLB associato<br />

con quella traduzione.<br />

Sistema operativo e kernel<br />

Un sistema operativo (OS) è un insieme <strong>di</strong> programmi che gestisce e controlla le risorse<br />

hardware <strong>di</strong> un computer e fornisce servizi comuni per il software applicativo.<br />

Le componenti <strong>di</strong> un OS esistono per fare in modo che le <strong>di</strong>verse parti <strong>di</strong> un computer<br />

lavorino insieme: tutti i software per le proprie funzionalità devono attraversare il sistema<br />

operativo per sfruttare qualsiasi funzione dell’hardware [9].<br />

Durante la sua esecuzione, il sistema operativo gestisce ed esegue molteplici compiti (i<br />

cosiddetti processi) attraverso particolari tecniche <strong>di</strong> scheduling: i moderni OS sono detti<br />

multitasking, perché utilizzano particolari tecniche che danno all’utente l’illusione che più<br />

processi vengano eseguiti contemporaneamente: infatti, in realtà, il processore può eseguire<br />

un solo compito alla volta, e la tecnica del multitasking permette alla CPU <strong>di</strong> commutare tra i<br />

13

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!