Domanda

Sto leggendo Sistemi Operativi Concetto e io sono l'8 capitolo! Tuttavia ho potuto usare qualche chiarimento, o rassicurazione che la mia comprensione è corretta.

Indirizzi logici: indirizzi logici vengono generati dalla CPU, secondo il libro. Che cosa fa esattamente questa media? (In un sistema indirizzo eseguire generati ..) Suppongo quando il codice è compilato per un programma, il programma ha non idea di dove il codice verrà caricato in memoria. Tutto il compilatore non è impostato uno schizzo generale del layout di programma e come l'immagine deve essere disposto, ma non assegna alcun indirizzi reali ad esso. Quando viene eseguito il programma della CPU richiede questa immagine Disposizione che il compilatore fatta e distribuisce alcuni indirizzi (quelli logici) a quelli generati dal codice.

Indirizzi fisici: Gli indirizzi fisici non vengono generati solo dopo la CPU genera un insieme di indirizzi logici (costituiti da un indirizzo di base e un offset). Gli indirizzi logici passare attraverso la MMU o altro dispositivo e da qualche parte lungo la linea gli indirizzi logici sono mappati in indirizzi fisici RAM.

Qual è allora la differenza reale? Posso vedere un beneficio. Utilizzando gli indirizzi logici dà più libertà alle applicazioni. Se gli indirizzi fisici sono state codificate duro, allora il successo del programma dipenderà pesantemente sulla macchina computer fisico, gli indirizzi di RAM disponibile, ecc

non l'uso di indirizzi logici convertito in indirizzo fisico imporre due fasi invece di uno a uno, e quindi più sopra la testa?

Dove poi fare gli indirizzi logici risiedono in generazione? Essi possono esistere in un registro della CPU, mentre la CPU è la manutenzione di un processo, ma prima e dopo, dove vanno? Capisco che questo è carico di attuazione. Presumo essi possono essere conservati in uno spazio apposito registro o tampone nella CPU come un TLB, corretta? Se no, allora la tabella può esistere nella RAM vera e propria, e la CPU contiene solo un puntatore / indirizzo all'indirizzo di base della tabella di RAM, corretta?

Sembra tenendo gli indirizzi in RAM è controproducente allo scopo di indirizzi di memoria logici. Posso solo supporre la mia comprensione non è corretto.

È stato utile?

Soluzione

Questa risposta è affatto esauriente ma possono spiegare quanto basta per rendere le cose cliccare.

Nei sistemi di memoria virtuale, c'è uno scollamento tra gli indirizzi logici e fisici.

Una domanda può essere dato uno spazio di indirizzi virtuale di (diciamo del let) 4G. Questa è la sua memoria utilizzabile ed è libero di usarlo come meglio ritiene opportuno. E 'un bel blocco contiguo di memoria (dal punto di vista dell'applicazione).

Tuttavia, non è il solo applicazione in esecuzione, e il sistema operativo deve mediare tra tutti loro. Sotto quel bel modello contigui, c'è un sacco di mappatura in corso per convertire logico indirizzi fisici.

Con questa mappatura, il sistema operativo e l'hardware (mi limiterò a chiamare questi strati più bassi da qui in poi) è libero di mettere le pagine dell'applicazione ovunque che vuole (sia nella memoria fisica o scambiato per storage secondario).

Quando i tentativi di richiesta a memoria ad accesso a indirizzo logico 50, i livelli più bassi in grado di tradurre che a un indirizzo fisico utilizzando tabelle di conversione. E, se si tenta di accedere memoria logica che è stato scambiato su disco, un errore di pagina si solleva e livelli più bassi può portare la parte posteriore dati rilevanti nella memoria, a qualunque fisico l'indirizzo che vuole.

Nei brutti vecchi tempi, quando gli indirizzi fisici erano tutto quello che doveva, il codice doveva essere mobile (o fisso sul carico) dal momento che è riuscito a caricare ovunque. Con la memoria virtuale, che il codice (e dati) possono essere in posizione di memoria logica 50 in una dozzina di diversi processi allo stesso tempo -. È reale fisico indirizzo sarà diverso però

Si può anche essere condivisa in modo che un fisico copia esiste nello spazio degli indirizzi di molti processi in una sola volta. Questo è il punto cruciale del codice condiviso (in modo da non usiamo più memoria fisica di cui abbiamo bisogno) e la memoria condivisa per permettere una facile comunicazione tra processi).

E ', ovviamente, meno efficiente di un ambiente fisico indirizzo puro, ma i produttori di CPU cercano di rendere il più follemente efficiente possibile, dal momento che è usato pesantemente. I vantaggi molto superano gli svantaggi.

Altri suggerimenti

indirizzo logico è l'indirizzo relativo al programma. Racconta la quantità di memoria di un particolare processo prenderà, non dicono quale sarà la posizione esatta del processo e questa ubicazione esatta verrà abbiamo generato usando un po 'di mappatura, ed è noto come indirizzo fisico.

Indirizzo logico: - Indirizzo logico generato dalla CPU. quando siamo dare il problema al computer, quindi il nostro computer passare il problema al processore tramite indirizzo logico, che non si vedono questo indirizzo chiamato indirizzo logico.

Indirizzo fisico: - quando il nostro processore creare processi e risolvere il nostro problema, allora abbiamo memorizzare i dati in memoria secondaria attraverso l'indirizzo chiamato indirizzo fisico

  1. Un indirizzo generato dalla CPU è comunemente indicato come un indirizzo logico. L'insieme di tutti gli indirizzi logici generati da un programma è noto come spazio degli indirizzi logici. Considerando, un indirizzo visto dalla memoria unit cioè quello caricato nel registro di indirizzo di memoria della memoria-è comunemente indicato come indirizzo fisico. L'insieme di tutti gli indirizzi fisici corrispondenti agli indirizzi logici è noto come spazio di indirizzamento fisico.
  2. La fase di compilazione e metodi indirizzo vincolante load-time generano indirizzi logici e fisici identici. Tuttavia, nel tempo di esecuzione schema di indirizzo vincolante, gli spazi logico e fisico-indirizzi differiscono.
  3. Il programma utente non vede mai gli indirizzi fisici. Il programma crea un puntatore a un indirizzo logico, dire 346, lo memorizza nella memoria, manipolarla, lo confronta con altri indirizzi- logica tutti come il numero 346. Solo quando un indirizzo logico viene usato come indirizzo di memoria, viene trasferito rispetto al registro di base / trasferimento. Il dispositivo di memoria hardware mappatura detta unità di gestione memoria-(MMU) converte gli indirizzi logici in indirizzi fisici.
  4. indirizzi logici vanno da 0 a max. Programma utente che genera indirizzo logico pensa che il processo viene eseguito in luoghi 0 a max. indirizzi logici devono essere mappati in indirizzi fisici prima di essere utilizzate. indirizzi fisici vanno da (R + 0) a (R + max) per una base / delocalizzazione valore registro R.
  5. Esempio: entrare descrizione dell'immagine qui Mappatura da indirizzi logici in indirizzi fisici utilizzando unità di gestione della memoria (MMU) e trasferimento / registro di base Il valore nel registro rilocazione / base viene aggiunto ad ogni indirizzo logico generato da un processo utente, nel momento in cui viene inviato alla memoria, per generare corrispondente indirizzo fisico. Nella figura sopra, valore di base / delocalizzazione è 14000, quindi un tentativo da parte dell'utente per accedere alla posizione 346 viene mappata 14346.

logico spazio Indirizzo Vs fisico

Un indirizzo generato dalla CPU è comunemente arbitrato come indirizzo logico, mentre l'indirizzo visto dall'unità di memoria, che è uno caricata nel registro di indirizzo di memoria della memoria viene comunemente denominati come il tempo di compilazione address.The fisica e carico indirizzo tempo legame genera l'addresses.However logico e fisico identici, l'indirizzo tempo di esecuzione vincolanti risultati schema in diversi indirizzi logici e fisici.

L'insieme di tutti gli indirizzi logici generati da un programma è conosciuto come logico Spazio indirizzo, mentre l'insieme di tutti gli indirizzi fisici corrispondenti a questi indirizzi logici è Physical Address Space.Now, la mappatura fase di esecuzione da indirizzo virtuale a indirizzo fisico è svolto da un dispositivo hardware denominato Memory Management Unit.Here nel caso di mappare registro base è noto come delocalizzazione valore registrarsi.Le nel registro rilocazione viene aggiunto al indirizzo generato da un processo utente al momento in cui viene inviato alla memoria di .let capire questa situazione con l'aiuto di esempio: se il registro base contiene il valore 1000, quindi un tentativo da parte dell'utente di indirizzo di posizione 0 è dinamicamente trasferito a posizione 1000, un accesso alla posizione 346 è mappato posizione 1346

Il programma utente non vede mai il vero spazio di indirizzamento fisico, si tratta sempre con le logiche addresses.As abbiamo due diversi tipi di indirizzi Indirizzo logico nella gamma (da 0 a max) e indirizzi fisiche nella gamma (R a R + max), dove R è il valore di utente delocalizzazione registrarsi.Le genera solo indirizzi logici e pensa che viene eseguito il processo in posizione a 0 a max.As è chiaro dal testo di cui sopra che le forniture programma utente solo indirizzi logici, questi indirizzi logici deve essere mappato indirizzo fisico prima di essere utilizzati.

Un indirizzo logico è un riferimento alla locazione di memoria indipendente l'assegnazione corrente dei dati in memoria. Un indirizzo fisico o indirizzo assoluto è una posizione attuale nella memoria principale.

E 'nel capitolo 7.2 del Stallings.

Al meglio della mia memoria, un indirizzo fisico è un esplicito e set in indirizzo pietra in memoria, mentre un indirizzo logico è costituito da un puntatore base e offset.

La ragione è come avete fondamentalmente specificato. Esso consente non solo la segmentazione dei programmi e processi in fili e dati, ma anche per il caricamento dinamico di tali programmi, e il fondo almeno pseudo-parallelismo, senza intreccio effettivo di istruzioni in memoria che devono avvenire.

Ho trovato un articolo su Logical Indirizzo vs fisico nel sistema operativo, che spiega in modo chiaro su questo.

Logical Indirizzo è generato da CPU mentre un programma è in esecuzione. L'indirizzo logico è l'indirizzo virtuale in quanto non esiste fisicamente, pertanto è anche noto come Virtual Address. Questo indirizzo viene utilizzato come riferimento per accedere alla memoria fisica CPU. Il logico Spazio indirizzo termine è usato per l'insieme di tutti gli indirizzi logici generati da un punto di vista dei programmi. Il dispositivo hardware chiamato Memory Unit-Management viene utilizzata per la mappatura indirizzo logico al suo corrispondente indirizzo fisico.

Indirizzo fisico identifica una posizione fisica dei dati richiesti in un ricordo. L'utente si occupa mai direttamente con l'indirizzo fisico, ma può accedere dal suo corrispondente indirizzo logico. Il programma utente genera l'indirizzo logico e pensa che il programma è in esecuzione in questo indirizzo logico ma il programma ha bisogno di memoria fisica per la sua esecuzione, pertanto l'indirizzo logico deve essere associato all'indirizzo fisico bu MMU prima del loro utilizzo. Il termine Physical Address Lo spazio è usato per tutti gli indirizzi fisici corrispondenti agli indirizzi logici in uno spazio di indirizzamento logico.

logici e fisici Indirizzo confronto

Fonte: www.geeksforgeeks.org

Un indirizzo logico è l'indirizzo a cui un elemento (cella di memoria, elemento di memoria, host di rete) sembra risiedere dalla prospettiva di un programma applicativo di esecuzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top