ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Un gran Alojamiento de memoria en sistemas operativos


Enviado por   •  20 de Enero de 2018  •  Documentos de Investigación  •  753 Palabras (4 Páginas)  •  136 Visitas

Página 1 de 4

Alojamiento de memoria, y memoria en general (parte 1: conceptos):

(06/12/2017)

1: El concepto:

La memoria podría ser considerada la sangre de un ordenador, por esto mismo, el manejo de la memoria primaria del sistema es una tarea fundamental para cualquier kernel. Dar una manera rápida, sencilla y estandarizada de alojar y liberar memoria, por funciones como malloc(memoria) o free(void) es uno de los 3 pilares del desarrollo de un sistema.

[pic 1]

Hay varios tipos de alojamiento que trataremos más adelante, pero de momento, vamos a indagar en qué es la memoria primaria.

2: La memoria primaria:

No creo que sea necesario decir que es la memoria primaria, así que indagaremos en lo que nos importa al desarrollar un SO.

2.1: El mapa de memoria:

La memoria se organiza en un stack que crece hacia arriba.

Cuando el bootloader o proceso X nos da el poder sobre el ordenador, no encontramos la memoria vacía, sino una memoria fragmentada y irregular, sin esquema fijo (esta dependerá del hardware por ejemplo) ya que al que creó la RAM no le apetecía hacernos la vida fácil.

Podemos dividir la memoria en 2 grandes fragmentos que analizaremos:

[pic 2]

  • Low memory (Todo lo que hay por debajo de 1 MiB):

Cuando un ordenador típico arranca con una BIOS activa, el ordenador se vuelve medio loco, y los IRQ del sistema (IRQ0) y los que pone el hardware empiezan a spamear (18 veces por segundo).

Esta memoria tiene de tamaño 0x00100000 (1 MiB) y está supuesta a siempre estar presente, excepto alguna que otra sección.

El bootloader toma posesión y luego este nos entrega el mando, dándonos un mapa de memoria parecido al siguiente:

Convenciones:

        RAM tipo 0: Totalmente inusable.

RAM tipo 1: Parcialmente inusable para nuestros fines.

        RAM tipo 2: Garantizada a estar libre.

        RAM tipo 3: Libre si existe.

        

La memoria baja:

Principio

Fin

Tamaño

Tipo

Descripción

0x00000000

0x000003FF

1 KiB

RAM tipo 1

La IVT de real mode

0x00000400

0x000004FF

256 bytes

RAM tipo 1

La BDA (mirar siguiente tabla)

0x00000500

0x00007BFF

Casi 30 KiB

RAM tipo 2

Mem. convencional

0x00007C00 (usualmente)

0x00007DFF

512 bytes

RAM tipo 1

El boot sector

0x00007E00

0x0007FFFF

480.5 KiB

RAM tipo 2

Mem. convencional

0x00080000

0x0009FBFF

Más o menos 120 KiB (depende)

RAM tipo 3

Mem. convencional

0x0009FC00 (usualmente)

0x0009FFFF

1 KiB

RAM tipo 0

EBDA (extended BIOS data area)

0x000A0000

0x000FFFFF

384 KiB

varios, tipo 0

Video y ROM

La BDA:

0x0400 (4 words)

Los puertos IO del COM1-COM4 (cada dirección es 1 word, cero si no hay)

0x0408 (3 words)

Los puertos IO del paralelo LPT1-LPT3 (cada dirección es 1 word, cero si no hay)

0x040E (word)

La base address de la EBDA >> 4 (normalmente)

0x0410 (word)

Packed bit flags para detectar hardware

0x0417 (word)

Flags para el estado del teclado

0x041E (32 bytes)

El buffer del teclado

0x0449 (byte)

El Display Mode

0x044A (word)

Número de columnas en el modo de texto

0x0463 (2 bytes, taken as a word)

El puerto base IO para el video

0x046C (word)

número X de veces que ha tocado el IRQ0 (timer)

0x0475 (byte)

número X de discos duros detectados

0x0480 (word)

El principio del buffer del teclado

0x0482 (word)

El final del buffer del teclado

0x0497 (byte)

El estado del último SHIFT-LED del teclado

...

Descargar como (para miembros actualizados) txt (6 Kb) pdf (138 Kb) docx (17 Kb)
Leer 3 páginas más »
Disponible sólo en Clubensayos.com