Vous êtes sur la page 1sur 20

Sistemas Operativos

Clase 6

El nico espacio de almacenamiento que el


procesador puede utilizar directamente, ms
all de los registros (que si bien le son internos y
sumamente rpidos, pero de capacidad muy
escasa) es la memoria fsica.
Hoy en da, adems, casi todos los sistemas
operativos emplean implementaciones que
requieren de hardware especializado
La Unidad de Manejo de Memoria (MMU).

Para optimizar el uso del CPU y de la memoria, el sistema


operativo debe de tener varios procesos a la vez en la
memoria principal, para lo cual dispone de varias opciones
de administracin tanto del procesador como de la
memoria. La seleccin de uno de ellos depende
principalmente del diseo del hardware para el sistema.
La parte del sistema operativo que administra la memoria
se llama administrador de memoria y su labor consiste en
llevar un registro de las partes de memoria que se estn
utilizando y aquellas que no, con el fin de asignar espacio
en memoria a los procesos cuando stos la necesiten y
liberndola cuando terminen, as como administrar el
intercambio entre la memoria principal y el disco en los
casos en los que la memoria principal no le pueda dar
capacidad a todos los procesos que tienen necesidad de
ella.

Jerarqua de memoria:

Registros CPU del procesador


Cach (memoria rpida)
Memoria principal RAM
Almacenamiento secundario (memoria virtual)

Al bajar en la jerarqua ms capacidad pero ms lento es el


dispositivo y ms barato.
Administrador de memoria:
Parte del S.O. que gestiona la memoria:
Control de que partes de la memoria estn utilizadas o libres.
Asignar memoria a procesos y liberarla cuando terminan.
Administrar intercambio entre memoria y disco (Memoria
Virtual)

Ejemplo :
Proceso de compilacin y carga de un programa.

Ejemplo: (enlace de direcciones) Programa


ensamblador con salto a una etiqueta:
ETIQ --jmp ETIQ

Jerarqua de memoria:

Registros CPU del procesador


Cach (memoria rpida)
Memoria principal RAM
Almacenamiento secundario (memoria virtual)

Al bajar en la jerarqua ms capacidad pero ms lento es el


dispositivo y ms barato.
Administrador de memoria:
Parte del S.O. que gestiona la memoria:
Control de que partes de la memoria estn utilizadas o libres.
Asignar memoria a procesos y liberarla cuando terminan.
Administrar intercambio entre memoria y disco (Memoria
Virtual)

Direccionamiento de memoria .
La memoria est estructurada como un arreglo
direccionable de bytes. Esto es, al solicitar los contenidos
de una direccin especfica de memoria, el hardware nos
entregar un byte (8 bits), y no menos.
Para acceder a una direccin especifica la CPU manda
seales en el bus de direccin el cual tiene un tamao
aproximado de 32bits, y estos nos permiten especificar a
la CPU 4,296,967,296 (232 ) direcciones diferentes de la
memoria.
Hoy en da, un procesador con una arquitectura de 32 bits
sin extensiones adicionales no puede emplear ms de 4GB
RAM; a travs de un mecanismo llamado PAE (Extensin
de Direccines Fsicas,Physical Address Extension) .

Investigar direccionamiento de memoria.

Unidad de manejo de memoria MMU.


El MMU es tambin el encargado de verificar que
un proceso no tenga acceso a leer o modificar los
datos de otro Si el sistema operativo tuviera
que verificar que ninguna de las instrucciones
ejecutadas por un programa resulta en una
violacin de seguridad, la penalizacin en
velocidad sera demasiado severa.

Una primer aproximacin a la proteccin de


acceso es a travs de un registro base y
un registro lmite.

MMU.
Por ejemplo, si a un proceso le fue asignado un espacio de memoria
de 64K (65535 bytes) a partir de la direccin 504214 (492K),
el registro base contendra 504214, y el registro lmite65535. Si
hubiera una instruccin por parte de dicho proceso que solicitara
una direccin menor a 504214 o mayor a 569749 (556K), el MMU
lanzara una excepcin o trampa interrumpiendo el procesamiento,
e indicando al sistema operativo que ocurri una violacin de
segmento.

Memoria Cache.
Conforme el procesador va avanzando sobre las instrucciones
de un programa (avanzando el registro de conteo de
instruccin), se van produciendo accesos a memoria. Por un
lado, tiene que buscar en memoria la siguiente instruccin a
ejecutar. Por otro lado, estas instrucciones pueden requerirle
uno o ms operadores adicionales que deben ser trados de la
memoria. Por ltimo, la instruccin puede requerir guardar su
resultado en cierta direccin de memoria.
La respuesta para reducir esa espera es la memoria cach. Esta
es memoria de alta velocidad, situada entre la memoria
principal y el procesador propiamente, que guarda copias de
las pginas que van siendo accesadas, partiendo del principio
de la localidad de referencia.
Lectura . Cache de primer y segundo nivel .

Memoria de un proceso.
Cuando un sistema operativo inicia un proceso, no se limita a volcar el archivo
ejecutable a memoria, sino que tiene que proveer la estructura para que ste
vaya guardando la informacin de estado relativa a su ejecucin.
Seccin de texto . Es el nombre que recibe la imagen en memoria de las
instrucciones a ser ejecutadas. Tpicamente, la seccin de texto ocupa las
direcciones ms bajas del espacio en memoria.
Seccin de datos. Espacio fijo preasignado para las variables globales. Este
espacio es fijado en tiempo de compilacin, y no puede cambiar (aunque los
datos que carga s cambian en el tiempo de vida del proceso)
Espacio de libres(Heap). Espacio de memoria que se emplea para la asignacin
dinmica de memoria durante la ejecucin del proceso. Este espacio se ubica
por encima de la seccin de datos, y crece hacia arriba. Cuando el programa es
escrito en lenguajes que requieren manejo manual de la memoria (como C),
esta rea es la que se maneja a travs de las llamadas de la familia de malloc y
free; en lenguajes con gestin automtica, esta rea es monitoreada por
los recolectores de basura (volveremos a estos conceptos ms adelante).
Pila de llamadas(Stack). Estructuras representando a la serie de funciones que
han sido llamadas dentro del proceso, con sus parmetros, direcciones
de retorno, variables locales, etc. La pila ocupa la parte ms alta del espacio en
memoria, y crece hacia abajo.

Segmentacin.
El uso que damos a la memoria sigue una lgica de
distintos segmentos: En vez de dar una direccin lineal,
damos al procesador una direccin de segmento y
un desplazamiento dentro de dicho segmento. Podemos tener
segmentos de distintos tamaos presentes en memoria, y la
resolucin de direcciones de cada uno de ellos se realizar por
mecanismos anlogos al descrito en el apartado anterior
(registro base y desplazamiento). Claro est, esto debe
tambin hacerse con apoyo del MMU.

La segmentacin tambin ayuda a incrementar


la modularidad de un programa: Es muy comn que las
bibliotecas ligadas dinmicamente estn representadas en
segmentos independientes.

Paginacin.
Esta consiste en que cada proceso est compuesto por una serie
de pginas, dejando de requerir que la asignacin sea de un
rea contigua de memoria.
No nos basta ya con indicar dnde inicia y dnde termina el rea
de memoria de cada proceso, sino que debemos hacer
un mapeo entre la ubicacin real (fsica) y la presentada a cada uno
de los procesos (lgica). La memoria se presentar a cada proceso
como si fuera de su uso exclusivo.
La memoria fsica se divide en una serie de marcos (frames), todos
ellos del mismo tamao, y el espacio cada proceso se divide en una
serie de pginas (pages), del mismo tamao que los marcos. El
MMU se se encarga del mapeo entre pginas y marcos a travs
de tablas de pginas. Las direcciones que maneja el CPU ya no son
presentadas de forma absoluta, sino que como la combinacin de
un identificador de pgina y un desplazamiento

Para poder realizar este mapeo, el MMU requiere de una tabla de


pginas (page table), que resuelve la relacin entre pginas y
marcos, convirtiendo la direccin lgica (aquella que conoce el
proceso) en la direccin fsica (la ubicacin en que realmente se
encuentra en la memoria del sistema).

Memoria Compartida.
Hay muchos escenarios en que diferentes procesos pueden
beneficiarse de compartir reas de su memoria. Uno de ellos es
como mecanismo de comunicacin entre procesos (IPC, Inter
Process Communication), en que dos o ms procesos pueden
intercambiar estructuras de datos complejas sin incurrir en el costo
de copiado que implicara copiarlas a travs del sistema operativo.
Otro caso, mucho ms frecuente, es el de compartir cdigo.
Y si bien es muy comn compartir los segmentos de texto de los
diversos programas que estn en un momento dado en ejecucin
en la computadora, este mecanismo es todava ms til cuando
hablamos de bibliotecas del sistema: Hay bibliotecas que son
empleadas por una gran cantidad de programas.

Memoria Virtual.
Varios de los aspectos mencionados en la seccin de
paginacin van conformando a lo que conocemos como memoria
virtual: Vimos ya que en un sistema que emplea paginacin, un
proceso no conoce su direccin en memoria relativa a otros
procesos, sino que trabajan con una idealizacin de la memoria, en
la cual ocupan el espacio completo de direccionamiento, desde el
cero hasta el lmite lgico de la arquitectura, independientemente
del tamao fsico de la memoria disponible.

Y si bien el modelo mencionado de paginacin nos llev a que los


diferentes procesos pueden compartir regiones de memoria
y direccionar ms memoria de la fsicamente disponible, no
abordamos qu estrategia se empleara cuando el total de pginas
solicitadas por todos los procesos activos en el sistema superara el
total de espacio fsico. Es ah donde entra en juego lamemoria
virtual: Para ofrecer a los procesos mayor espacio en memoria del
que existe fsicamente, el sistema emplea espacio
en almacenamiento secundario (tpicamente, disco duro), a travs
de un esquema de intercambio (swap).

Vous aimerez peut-être aussi