Estratto del documento

Gestione memoria

Problema

Se un sistema è multiprogrammato è necessario:

  • Suddividere la memoria per consentire a più processi di essere tenuti in coda ready e schedulati, assegnando un po' di memoria a ciascuno.
  • Fare in modo che i processi abbiano memoria separata per sicurezza, evitando che un processo acceda a memoria di un altro.

Binding e indirizzi

Binding: associazione di indirizzi logici a fisici.

Indirizzo logico: generato dal programma, cambia col binding.

Indirizzo fisico: posizione esatta nel vettore della memoria.

  • Compilazione: se il range esatto nel quale risiederà il programma nella memoria fisica è noto, il compilatore può associare direttamente le locazioni del sua vez indirizzi. Se range cambia > non va più.
  • Caricamento (loadtime): tutti gli indirizzi logici vengono determinati quando il programma viene caricato in memoria e generati indirizzi fisici.
  • Esecuzione (exectime): indirizzi logici vengono determinati quando il processo è eseguito, necessario se il processo viene spostato tra segmenti.

Spazio degli indirizzi logici: tutti gli indirizzi logici di un processo.

MMU (memory management unit): componente hw converte indirizzi logici generati dai programmi con execution time binding (quindi che generano ind. logici) a ind. fisica mediante la somma con registri come il base register. Consente al programmatore di usare solo indirizzi "logici".

Caricamento e collegamento dinamico

Caricamento dinamico: vengono caricate in memoria solo poche porzioni del processo, lasciando le più pesanti e meno comuni su disco. La gestione è affidata al developer e implementata del linguaggio che usa: C.

Collegamento dinamico: si afferisce il collegamento funzioni necessarie (librerie). Per librerie comuni (come quelle del sis.op.) si inseriscono collegamenti nell'eseguibile che recuperano le lib di sistema, che spesso è già in memoria. Tutti i processi eseguono la stessa libreria, si alleggerisce il codice e la dimensione dell'eseguibile in memoria e permette l'aggiornamento facile delle librerie.

Gestione memoria

Problema

Se un sistema è multiprogrammato è necessario:

  • Suddividere la memoria per consentire a più processi di essere tenuti in coda ready e schedulati, assegnando un po' di memoria a ciascuno.
  • Fare in modo che i processi abbiano memoria separata per sicurezza, evitare che un processo acceda a memoria di un altro.

Binding e indirizzi

Binding: associazione di indirizzi logici a fisici.

Indirizzo logico: generato dal programma, cambia col binding.

Indirizzo fisico: posizione esatta nel vettore della memoria.

  • Compilazione: se il range esatto nel quale risiederà il programma nella memoria fisica è noto il compilatore può associare direttamente le locazioni del suo vez indirizzi. Se range cambia no nn più.
  • Caricamento (loadtime): tutti gli indirizzi logici vengono determinati, quando il programma viene caricato in memoria, generati indirizzi fisici.
  • Esecuzione (exectime): indirizzi logici vengono determinati quando il processo è eseguito, necessario se il processo viene spostato tra segmenti.

Spazio degli indirizzi logici: tutti gli indirizzi logici di un processo.

MMU (memory management unit): componente hw converte indirizzi logici generati dai programmi con execution time binding (quindi che generano ind logici) a ind. fisici mediante la somma con registri come il base register. Consente al programmatore di usare solo indirizzi "logici".

Caricamento e collegamento dinamico

Caricamento dinamico: vengono caricati in memoria solo pezzi proc. durante del processo, lasciando le più pesanti e meno comuni su disco. La gestione è affidata al developer e implementata del linguaggio che usa: C.

Collegamento dinamico: si differisce il collegamento finché non necessario (celle libere). Per librerie comuni (come quelle std del so) si inseriscono collegamenti nell'eseguibile che recuperano le lib di sistema, che spesso è già in memoria. Tutti i processi esegono la stessa libreria, si alleggerisce il codice e la dimensione dell'eseguibile in memoria e permette l'aggiornamento facile delle librerie.

Swapping

È una tecnica che consiste nello scaricare in memoria secondaria processi che sono in attesa di esecuzione, e gestita dallo scheduler di breve termine. Viene spostato il completo spazio di indirizzi del processo e deve essere ricaricato esattamente nelle stesse locazioni, se non c'è binding in esecuzione.

Roll in - roll out

Processi a bassa priorità vengono swappati per fare spazio a processi a "più alta priorità".

Problema: operazione assolutamente troppo lenta.

Allocazione contigua

Lo spazio indirizzi di un processo comprende locazioni fisicamente conseguenti, anche se hanno indirizzi logici diversi dai fisici.

Partizionamento statico: il sistema operativo assegna al processo uno dei blocchi di dimensione fissa in cui è divisa la memoria.

È molto semplice, implementato nei sistemi se

Anteprima
Vedrai una selezione di 10 pagine su 53
Sistemi operativi - Appunti Pag. 1 Sistemi operativi - Appunti Pag. 2
Anteprima di 10 pagg. su 53.
Scarica il documento per vederlo tutto.
Sistemi operativi - Appunti Pag. 6
Anteprima di 10 pagg. su 53.
Scarica il documento per vederlo tutto.
Sistemi operativi - Appunti Pag. 11
Anteprima di 10 pagg. su 53.
Scarica il documento per vederlo tutto.
Sistemi operativi - Appunti Pag. 16
Anteprima di 10 pagg. su 53.
Scarica il documento per vederlo tutto.
Sistemi operativi - Appunti Pag. 21
Anteprima di 10 pagg. su 53.
Scarica il documento per vederlo tutto.
Sistemi operativi - Appunti Pag. 26
Anteprima di 10 pagg. su 53.
Scarica il documento per vederlo tutto.
Sistemi operativi - Appunti Pag. 31
Anteprima di 10 pagg. su 53.
Scarica il documento per vederlo tutto.
Sistemi operativi - Appunti Pag. 36
Anteprima di 10 pagg. su 53.
Scarica il documento per vederlo tutto.
Sistemi operativi - Appunti Pag. 41
1 su 53
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher lore9625 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 Udine o del prof Scagnetto Ivan.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community