seegongsik
Mis palabras
Sistemas operativos

El muro entre lo mío y lo tuyo

En la memoria virtual, cada programa veía su propia memoria (lección 9). Ni siquiera veía la de los otros. Pero en realidad, los datos de todos están mezclados en una memoria real. Entonces, ¿qué impide que lo mío y lo tuyo se toquen? Sorprendentemente, no hay ningún muro que bloquee.

01

Muchos viven mezclados en una memoria

En la vista de mentira cada uno parece usar lo suyo,
pero dentro de la memoria real todos están mezclados.
Los trozos de A y los de B están uno al lado del otro.
Si A pudiera tocar el sitio de B, justo al lado,
un error de A podría arruinar a B, e incluso espiar sus secretos.

Memoria real
A
B
A
B
B
A
A
B
A
B
B
A

Mira la memoria real. Los trozos de A (oro) y B (azul) están mezclados.

Mezclados así en un espacio, parece arriesgado.
Pero en realidad A nunca puede tocar a B.
¿Hay alguna partición sólida que bloquee a los dos?
No. El secreto está en aquel mapa de la lección 9.

02

No es un muro, solo no hay camino

Recuerda el mapa de la lección 9.
El mapa de A apunta solo a los sitios reales de A.
Sencillamente no hay en él ningún camino hacia los sitios de B.
Así que A ni siquiera tiene forma de nombrar 'la dirección de B'.
No es que un muro bloquee a los dos, sino que no hay camino que tomar.

A mapa
A1
B1
sin camino
A2
B2
sin camino
A3

Elige A. El mapa de A lleva solo a los sitios de A; no hay flecha hacia B.

Sin camino en el mapa, no puedes ir allí.
Pero ¿y si algún programa, por error
o a propósito, llama a una dirección fuera de su mapa?
Entonces se activa otra salvaguarda.

03

Si intentas cruzar la línea, te atrapan

Cuando un programa llama a una dirección que no está en su mapa,
no hay sitio real al que mapear, así que la traducción falla.
En ese instante el hardware lo nota y avisa al sistema operativo.
El sistema operativo dice 'tocaste un sitio que no es tuyo'
y detiene solo a ese programa. El acceso malo nunca llega.

Prueba la dirección de A, luego la de B. La tuya pasa (verde); la otra es atrapada y detenida (rojo).

La tuya pasa; la del otro es atrapada ahí mismo.
Un intento de cruzar el límite nunca logra pasar.
Gracias a esto, llega un resultado muy tranquilizador.
Aunque un programa se rompa, no se contagia a los demás.

04

Uno falla, el resto sigue bien

Como cada programa está encerrado en su propio espacio,
un programa que falla solo puede desordenar su sitio.
No puede tocar la memoria de otros, ni el sistema operativo.
El sistema operativo limpia en silencio solo al que se rompió,
y el resto de programas siguen corriendo como si nada.

P1
en marcha
P2
en marcha
P3
en marcha

Haz fallar un programa. Solo ese se detiene; el resto sigue corriendo.

Sin protección, un programa roto arrastraría todo consigo.
Como están separados, el accidente se queda en una caja.
La estabilidad y la seguridad salen de aquí, juntas.
Y debajo no hay un 'muro', sino 'mapas separados'.

05

La separación misma es protección

En resumen, la protección de memoria no es un muro hecho a propósito.
Dar a cada proceso un mapa separado significa que no hay camino entre ellos,
y cruzar la línea es atrapado, deteniendo solo a ese.
Así viven mezclados sin chocar, y un fallo no se propaga.
La separación misma es la protección.

Apaga y enciende la protección. Encendida, el accidente queda en una caja; apagada, se propaga a todos.

Hasta aquí el sistema operativo ha gobernado el interior: la CPU y la memoria.
Dejándolos turnarse (tiempo compartido, planificación), manteniéndolos aparte (memoria virtual, protección).
Pero una computadora también debe hablar con el exterior.
Teclados, pantallas, discos, hasta aparatos nuevos que nunca ha visto.
¿Cómo reconoce el sistema operativo todos esos dispositivos? Esa es la próxima historia.

En una líneaLa protección de memoria no es un muro que bloquea, sino el resultado de que cada proceso tenga un mapa distinto. Mi mapa apunta solo a mis sitios, así que sencillamente no hay camino al de nadie más. Si algo intenta cruzar la línea, es una dirección que no está en su mapa, el hardware lo atrapa, y el sistema operativo detiene solo a ese programa. Así, un fallo deja al resto intacto. La separación misma es la protección.
Sistemas operativos
¿Te fue útil? Apoyar seegongsik