SEARCH
You are in browse mode. You must login to use MEMORY

   Log in to start

level: memoria centrale

Questions and Answers List

level questions: memoria centrale

QuestionAnswer
che cosa è e a che cosa serve un TLB?Il TLB (Translation Lookaside Buffer) è una cache molto veloce che memorizza le traduzioni recenti tra indirizzi logici e indirizzi fisici. utilizzato per : - accelerare il processo di traduzione degli indirizzi riducendo il numero di accessi alle tabelle delle pagine. Quando un processo tenta di accedere a una pagina, il sistema operativo controlla prima il TLB per vedere se la traduzione è memorizzata. Se è presente allora si accede alla memoria fisica, altrimenti si accede alla tabella delle pagine Una TBL può anche memorizzare gli ASID ovvero address space identifier che identifica univocamente ogni processo, questo consente una maggiore protezione degli spazi di memoria riservati ad un processo
quali sono i vantaggi della paginazione?La paginazione offre diversi vantaggi, tra cui: Risoluzione del problema della frammentazione Ottimizzazione della memoria: la paginazione consente di caricare in memoria solo le pagine necessarie per l'esecuzione di un processo, il che consente di liberare memoria per altri processi. Protezione della memoria: la paginazione consente di proteggere le pagine da accessi non autorizzati. Migliore efficienza: la paginazione può migliorare l'efficienza del sistema operativo, riducendo il numero di accessi alla memoria fisica.
come funziona la paginazione?La paginazione funziona - suddividendo la memoria logica in pagine e la memoria fisica in frame. - Ogni pagina viene mappata su un frame specifico, e la posizione fisica di ogni pagina viene memorizzata in una tabella delle pagine. - Quando un processo tenta di accedere a una pagina, il sistema operativo cerca la pagina nella tabella delle pagine e recupera la posizione fisica della pagina. Se la pagina non è in memoria, il sistema operativo la carica dalla memoria virtuale o dal disco.
quali sono i diversi tipi di tabelle delle pagine?Paginazione gerarchica: la tabella delle pagine è a sua volta paginata, anche piu volte (aumenta il numero di accessi per la traduzione di un indirizzo) Tabella con hashing: si applica una funzione di hash al numero della pagina contenuto nell'indirizzo virtuale (le entry sono liste concatenate di elementi) Tabella invertita: una tabella globale che tiene per ogni frame un identificatore per l'indirizzamento, il numero di pagina logica, un bit di protezione (consente di risparmiare memoria)
quali sono i vantaggi e gli svantaggi di ogni tipo di tabella come pagine?- Vantaggi paginazione gerarchica: minore occupazione della memoria per la memorizzazione degli indirizzi - Svantaggi paginazione gerarchica: Aumenta il numero di accessi necessari per la traduzione degli indirizzi - Vantaggi paginazione con hashing: Utili per gli spazi d’indirizzi sparsi, in cui i riferimenti alla memoria non sono contigui ma distribuiti per tutto lo spazio d’indirizzi. - Svantaggi paginazione con hashing: Tutti i difetti che può avere una tabella di hashing(dalle collisioni al necessitare un buon algoritmo di hashing) - Vantaggi paginazione con tabella invertita: risparmio notevole di memoria - Svantaggi paginazione con tabella invertita: vi è una complicazione nella condivisione e può esser necessario scansionare tutta la lista per una sola traduzione
come vengono gestiti gli accessi illegali in memoria?per la protezione dagli accessi illegali in memoria ovvero quelli al di fuori dal loro spazio di indirizzamento esistono due metodi: - la tabella degli indirizzi utilizzata per ogni processo comprende gli indirizzi a cui un processo può accedere. - vengono usati due registri appartenenti al contesto del processo quali: il registro di locazione(il primo indirizzo in memoria del processo) il registro di limite (dimensione in byte dello spazio di indirizzamento) che aiutano quando un processo viene caricato in memoria a utilizzare il giusto spazio di indirizzamento
quali sono le dimensioni tipiche di una pagina e di un frame?Le dimensioni tipiche di una pagina sono 4096 byte (4 kB) e le dimensioni tipiche di un frame sono 4096 byte (4 kB).
quali sono i vantaggi della segmentazione?* Protezione della memoria: la segmentazione consente di proteggere le pagine da accessi non autorizzati. * Tipizzazione della memoria: la segmentazione consente di tipizzare le pagine, il che può essere utile per la debugging e la profiler. * Condivisione della memoria: la segmentazione consente di condividere le pagine tra processi, il che può essere utile per la comunicazione tra processi. * Ottimizzazione della memoria: la segmentazione può essere utilizzata per ottimizzare l'utilizzo della memoria, ad esempio caricando solo le pagine necessarie in memoria.
quali sono i diversi tipi di segmenti?Esistono diversi tipi di segmenti, tra cui: * Segmenti di codice: questi segmenti contengono il codice del programma. * Segmenti di dati: questi segmenti contengono i dati del programma. * Segmenti di stack: questi segmenti contengono lo stack del programma. * Segmenti di heap: questi segmenti contengono l'heap del programma.
come vengono creati gli indirizzi quando un processo inizia?1) il compilatore traduce il codice sorgente in codice binario eseguibile, genera degli indirizzi logici a cui il programma farà riferimento. 2) il linker integra tutte le librerie necessarie al codice eseguibile generato dal compilatore. 3) il caricatore carica il codice sorgente sulla memoria. Quando il caricatore carica il sorgente nella memoria non necessariamente gli indirizzi logici generati dal compilatore corrispondono agli indirizzi fisici in memoria quindi diventa compito della MMU attraverso le tabelle delle pagine, quello di tradurre gli indirizzi logici in indirizzi fisici
vantaggi e svantaggi della segmentazione con paginazione?vantaggi: - Protezione della memoria: consente di proteggere le pagine da accessi non autorizzati. - Tipizzazione della memoria: consente di tipizzare le pagine, il che può essere utile per la debugging e la profiler. - Condivisione della memoria: consente di condividere le pagine tra processi, il che può essere utile per la comunicazione tra processi. - Ottimizzazione della memoria: ad esempio caricando solo le pagine necessarie in memoria. svantaggi: - maggiore complessità, - maggiore consumo della memoria, - maggiore possibilità di errori di pagina
che cosa è e a che cosa serve un TLB?Il TLB (Translation Lookaside Buffer) è una cache che memorizza le traduzioni recenti tra indirizzi logici e indirizzi fisici. Il TLB viene utilizzato per accelerare il processo di traduzione degli indirizzi, riducendo il numero di volte in cui il sistema operativo deve accedere alle tabelle delle pagine. Il TLB è una memoria piccola, ma veloce. Quando un processo tenta di accedere a una pagina, il sistema operativo controlla prima il TLB per vedere se la traduzione è memorizzata. Se la traduzione è memorizzata nel TLB, il sistema operativo può accedere alla pagina direttamente dalla memoria fisica. Se la traduzione non è memorizzata nel TLB, il sistema operativo deve accedere alle tabelle delle pagine per ottenere la traduzione. il TLB è molto utile per ridurre il numero di accessi alla memoria migliorando cosi l prestazioni del sistema
quali sono vantaggi e svantaggi della scelta di dimensioni di pagine grandi o piccole?grandi: - ci stanno meno pagine in memoria - maggiore frammentazione interna - minore risoluzione - possibilità di memoria caricata ma non usata + dimensione della tabella delle pagine minore + minore tempo per il caricamento e scaricamento piccole: - tabella delle pagine piu grande - maggiore tempo di caricamento + ci stanno piu pagine in memoria + minore frammentazione interna + maggiore risoluzione + minore numero di page fault
quanti frame associare ad ogni processo?Allocazione omogenea: Frame del processo = frame totali / numero di processi Allocazione proporzionale alla dimensione del processo: Frame del processo = (frame totali ∗ dimensione del processo)/(somma delle dimensioni dei processi) Allocazione in base alla priorità: Frame del processo= (frame totali ∗ priorità del processo)/(somma delle priorità)
come funziona in poche parole la segmentazione con paginazione?Come è fatta: La memoria centrale viene suddivisa in pagine fisiche. I processi vengono suddivisi in segmenti logici una volta che vengono compilati, se i segmenti sono più grandi di una pagina -> vengono suddivisi in pagine. Per questo meccanismo gli indirizzi dei dati sono formati da: - numero di segmento - numero di pagina - offset
come funziona la segmentazione?La segmentazione funziona suddividendo la memoria logica in segmenti e la memoria fisica in frame. Ogni segmento viene mappato su un frame specifico, e la posizione fisica di ogni segmento viene memorizzata in una tabella dei segmenti. Quando un processo tenta di accedere a una pagina, il sistema operativo cerca la pagina nella tabella delle pagine e recupera la posizione fisica della pagina. Se la pagina non è in memoria, il sistema operativo la carica dalla memoria di swap.
come la paginazione può aumentare la sicurezza del codice?, se due pagine di due programmi diversi risultano uguali?la paginazione aumenta la sicurezza del sistema perchè può implementare una protezione aggiuntiva delle pagine data da un bit di protezione oltre al fatto che le tabelle delle pagine sono dedicate ciascuna ad un processo diverso. le pagine uguali per diversi programmi possono essere referenziate da tabelle di processi diversi
quali sono i vantaggi della paginazione?Migliore utilizzo della memoria: la paginazione consente di caricare solo le pagine di memoria necessarie per un processo, il che può liberare spazio per altri processi. Maggiore efficienza: la paginazione può migliorare le prestazioni del sistema operativo riducendo il numero di accessi al disco necessari per caricare e scaricare le pagine di memoria. Migliore sicurezza: la paginazione può migliorare la sicurezza del sistema operativo consentendo di limitare l'accesso delle applicazioni alle pagine di memoria di altri processi.
quali sono gli svantaggi della paginazione?Più complessità: la paginazione aumenta la complessità del sistema operativo, poiché è necessario gestire le pagine di memoria e le loro traduzioni in indirizzi fisici. Più overhead: la paginazione può aumentare l'overhead del sistema operativo, poiché è necessario eseguire operazioni aggiuntive per caricare e scaricare le pagine di memoria. Frammentazione interna alle pagine nel caso le pagine non siano utilizzate pienamente
che cosa è il bit di blocco?il bit di blocco viene utilizzato quando si tratta di pagine di un processo che al momento è in attesa di una risposta IO, in queso caso le pagine diventano inutili ma bisogna prevenire il loro spostamento poichè la risposta non arriverebbe piu al processo interessato. quindi si usa un bit di blocco per ogni pagina per fare in modo che questa non venga spostata
come vengono gestiti i fallimenti di pagina?I fallimenti di pagine o cosiddetti page fault avvengono quando un processo richiede di accedere ad una pagina che al momento non si trova in memoria In questo caso una volta controllata la tabella delle pagine la emu recupera la pagina in memoria fisica e la sposta nella memoria centrale e nel caso scambia due pagine, viene aggiornata la tabella delle pagine del processo e aggiornata la conversione da indirizzo fisico a logico nella tlb
qualis ono i vantaggi e gli svantaggi di ciascuna struttura di tabella delle pagine?I vantaggi e gli svantaggi di ciascuna struttura di tabella delle pagine sono: Tabelle delle pagine lineari: Vantaggi: semplici da implementare Svantaggi: non efficienti per grandi spazi di indirizzamento Tabelle delle pagine alberi: Vantaggi: efficienti per grandi spazi di indirizzamento Svantaggi: più complesse da implementare Tabelle delle pagine hash: Vantaggi: efficienti per grandi spazi di indirizzamento e per la ricerca di pagine Svantaggi: più complesse da implementare e richiedono più memoria
cosa succede quando in memoria si deve cambiare frame?I conflitti di frame vengono gestiti scegliendo una pagina di memoria da sostituire in memoria fisica. Il processo di scelta di una pagina da sostituire viene chiamato algoritmo di sostituzione di pagine.
come viene gestito lo scambio ?Lo scambio viene gestito memorizzando le pagine di memoria non necessarie in memoria swap. La memoria swap è un tipo di memoria secondaria, come un disco rigido, che viene utilizzata per memorizzare le pagine di memoria che non sono attualmente necessarie.
che cosa è l'overlaying ?è una tecnica di gestione della memoria per fare in modo che si possano tenere in memoria programmi di grosse dimensioni il processo viene suddiviso in piu parti (overlay) che vengono caricate in memoria centrale quando necessarie - gli overlay non necessitano del sistema operativo ma devono essere implementati dal programmatore(il che lo rende molto difficile da applicare)
che cosa è lo swappinglo swapping è una tecnica utilizzata per la turnazione dei processi in memoria quando questi si trovano in stato di attesa in questo caso il sistema operativo si occupa di immagazzinare questi processi per fare spazio a quelli che si trovano in uno stato di pronto o running identificare i processi in stato di attesa 1) salvare sulla memoria temporanea i loro dati sensibili (dati globali, heap, stack) 2) rimuovere dalla memoria centrale tali processi (scaricamento) 3) caricare nello spazio appena liberato quei processi in stato di pronto o running che si 4) trovavano nella memoria temporanea (caricamento). vantaggi: aumento della multiprogrammazione svantaggi: calo delle prestazioni
quali sono i vari metodi per la turnazione dei processi in memoria?overlaying per la diminuzione dello spazio occupato da processi molto grandi in memoria swapping per la turnazione dei processi che si trovano in stato di attesa
quali sono i vincoli che vengono applicati allo swapping?lo swapping non può essere applicato a processi che in generale si trovano in stato di attesa perchè se per esempio si trovassero in attesa di una risposta per una chiamata di sistema questi perderebbero la risposta perciò: - si possono swappare solo i processi in stato di riposo - non si possono spostare quei processi che hanno invocato una chiamata di funzione
come possono essere caricate le librerie di un processo?normalmente quando un processo viene caricato in memoria vengono caricate anche le sue librerie - con il collegamento dinamico e la tecnica delle librerie condivise i processi che condividono una stessa libreria possono caricare una sola copia della libreria in memoria che valga per tutti