Una buona analogia per la memoria del computer? [chiuso]

2

Quindi, sono un esperto di informatica e sono anche un grande fan dello show No-longer-on-TV, Numb3rs.

Ora, ogni volta che parlo con i miei amici mi fanno anche alcune domande sulla programmazione e sui computer (e su come funzionano). Ora, su Numb3rs, loro (Charlie, e occasionalmente Amita o Larry) spesso andavano a breve, ma ben spiegato e ben parlato riassunti del tema matematico. Mentre avevano i benefici della grafica, spesso le loro voci erano molte da spiegare. Fondamentalmente, hanno preso concetti complessi e li hanno presentati in termini laici. Era breve, conciso, facile da capire e molto interessante.

Fondamentalmente, sto cercando qualcosa di simile. Un'analogia davvero fantastica, breve e interessante per la memoria del computer. Quindi, grazie a chiunque riesca a trovare una breve, interessante, accattivante, divertente, ma educativa e corretta analogia / sintesi per la memoria del computer!

    
posta Bob 04.12.2011 - 04:44
fonte

3 risposte

1

La memoria del computer mi ricorda molto Caselle postali :

  • Ogni casella può memorizzare un elemento.
  • Ogni casella può essere identificata e utilizzata in modo discreto utilizzando il suo indirizzo univoco.
  • Si può mettere un oggetto nella scatola o rimuovere un oggetto dalla scatola, o semplicemente sbirciare dentro per vedere cosa è memorizzato lì.
  • Tutte le scatole sono di dimensioni standard, sono intercambiabili, l'unica cosa unica è l'indirizzo. Aggiungere capacità extra significa aggiungere più unità di scaffalature.
  • In alcuni casi un proprietario può accedere direttamente alla casella, ma a volte solo tramite un membro dello staff (memoria gestita).

Dove la metafora si rompe:

  • P.O.B. può contenere più di un elemento.
  • Quando la memoria viene letta, il valore memorizzato non viene consumato, mentre prendere una lettera dalla P.O.B la lascia vuota.
  • Memoria su un indirizzo non pieno né vuoto, contiene sempre un valore.
  • Memorizzare un pacco più grande significherebbe dividerlo su più caselle adiacenti. Forse questo potrebbe essere spiegato usando l'analogia di rimuovere le partizioni tra P.O. scatole con il pacco che occupano più indirizzi.
risposta data 04.12.2011 - 05:50
fonte
1

La memoria del computer funziona esattamente come la scrittura su carta a matita- torni indietro e legga in seguito, oppure cancella e scrivi qualcosa di nuovo. C'è solo un sacco di carta, letto e scritto in tempi osceni.

    
risposta data 04.12.2011 - 05:04
fonte
1

Mi piace pensarlo come un muro gigante di cassette di sicurezza numerate come in una banca e ogni scatola contiene un pezzo di carta con un numero sopra.

Funziona per descrivere molte circostanze. Come spieghi cosa sono i caratteri ASCII "A" e "B"? Tutti concordano sul fatto che un pezzo di carta con il numero 65 significa "A" e 66 significa "B". La stessa cosa vale per la codifica di foto / film.

Come immagazziniamo cose più grandi come la String "AB". Abbiamo bisogno di 2 scatole. Uno per memorizzare 65 e uno per memorizzare 66. Avrebbe senso che queste scatole fossero l'una accanto all'altra. Forse la 'A' viene memorizzata nel riquadro numero 1000 e poi 'B' viene memorizzato nella casella 1001. Come facciamo a sapere che la stringa ha solo 2 caratteri al suo interno? Forse memorizziamo il numero 0 nella casella 1002 per segnalare che è la fine della stringa e si scopre che in questo modo in realtà servono 3 caselle per memorizzare 2 caratteri.

Ci sono altri modi in cui posso memorizzare la stringa? Come faccio a sapere quanto è lunga la stringa [65, 66, 0] ? Devo iniziare alla casella 1000 e continuare ad aprire le caselle fino a quando ne ottengo una con 0 in essa. C'è un altro modo per memorizzare la mia stringa? Cosa succede se la prima scatola ha la lunghezza della mia stringa? Potrei memorizzare [2 65 66] e quindi se ho bisogno di conoscere la lunghezza della mia stringa ho solo bisogno di aprire la prima casella. Fintanto che io e tutti gli altri sappiamo quale sistema sto usando non ha molta importanza in quale direzione scegliamo.

Come facciamo a sapere dove è la nostra stringa? In qualche modo abbiamo bisogno di sapere che inizia nel punto 1000. O lo abbiamo scritto nel nostro codice o in qualche modo abbiamo accesso ad un'altra casella (un puntatore) e all'interno di quella casella sul suo foglio di carta scriviamo 1000 in modo che sappiamo che la nostra stringa inizia a posizione 1000.

Forse pensi che sia stupido che 65 significhi "A". Potresti dire 1 = 'A' e 2 = 'B' ecc. Quel sistema è perfetto anche se quando li condividi con altre persone quelle persone sanno qual è il tuo sistema.

Potremmo andare sempre più a fondo, ma alla fine dovremo renderci conto che il significato di ciò che è scritto sui pezzi di carta è qualsiasi cosa che noi umani decidiamo è il significato. Noi programmatori decidiamo se un numero in una casella è un numero intero, una frazione, un carattere, un puntatore in un'altra casella, un'istruzione per la macchina, un colore pixel per un'immagine. Solo le persone che hanno scritto i numeri sulla carta possono capire se 65 significa 65, 'A', -99, Rosso, Infinito o un Secchio d'Arancio.

È come scrivere. Qual è il significato di una linea verticale? È un minuscolo L? È il numero 1? Fa parte di una sorta di disegno? Sta per una parola in un'altra lingua? È quella cosa sopra \ sulla mia tastiera? L'unico modo per sapere il significato della linea è se la persona che lo ha disegnato te lo dice.

    
risposta data 04.12.2011 - 05:58
fonte

Leggi altre domande sui tag