Está en la página 1de 36

Clase 3 – Memoria Virtual

Gestión de Tareas

• Tarea (proceso): Es una instancia de un


programa en ejecución
• OS dispone de gestor de tareas

Gestor de Tareas

Creación Planificación Comunicación


Creación de Tareas

• Asignación de recursos (principalmente memoria)


Sistema Operativo
• Garantiza la protección y privacidad
de información
– Tareas no acceden a datos de otras
tareas
• Esconde los detalles del Hardware
– Tareas acceden a archivos en lugar
ejecutar comandos al disco duro, sockets
en lugar de acceso a la tarjeta de red
• Administrador de recursos
– Gestión de recursos de hardware en
tareas (CPU, memoria, disco, etc.)
Creación de Tareas

• Asignación de recursos (principalmente memoria)


Jerarquía de Memorias

• Memorias
– Memoria Principal. Unidad de memoria que
se comunica directamente con el CPU
– Memoria Auxiliar. Almacenamiento temporal

– Tareas y datos solo son almacenados en la


memoria principal cuando son requeridos
por el procesador, en otro caso, en memoria
auxiliar
Jerarquía de Memorias

Guarda
contexto

Carga
contexto
Jerarquía de Memorias

– Integración de todos los elementos de


almacenamiento que van desde la memoria
auxiliar hasta a memoria principal

Memoria ⋯ Memoria
Memoria
Auxiliar Auxiliar
Principal
1 N

RAM/ROM
Jerarquía de Memorias
Registros

• Memoria utilizada para ejecutar programas


y operaciones de manera eficiente
• La velocidad de acceso por el procesador
es instantánea
• Pueden definir comportamiento de diversos
periféricos conectados al procesador
Memoria RAM

• Memoria de Acceso Aleatorio MxN


– Acceso a cualquier dirección en cualquier
momento (aleatoriedad)
– Volátil
– Ancho de Dirección (M). Número de direcciones
en una memoria
– Longitud de palabra de datos (N). Número de
bits empleados para definir un dato (registro)
– Mapa (Organización) de memoria. Especifica la
dirección de memoria asignada a cada chip
Memoria RAM

• Ejemplo
– Ancho de dirección: M = 8
– Longitud de palabra de dato: N = 32
– Longitud de palabra de dirección:
log 2 𝑀 = 3
Memoria RAM

• Ejemplo
– Ancho de dirección: ?
– Longitud de palabra de dato: ?
– Longitud de palabra de dirección: ?

Dirección Dato
(Física)
0x00 00011
0x01 10110
0x02 11111
Memoria RAM
Memoria RAM
Memoria RAM
Memoria Caché

• Mayor velocidad de acceso que RAM


Memoria Virtual

• Mecanismo para administración de


memoria basado en hardware y software
– Radica en almacenamiento secundario
– Ayuda a ejecutar múltiples aplicaciones con
poca memoria principal
– Se implementa comúnmente mediante
paginación de demanda.
Memoria Virtual

secondary
memory
Memoria Virtual

– La memoria principal se
divide en bloques de
memoria (4KB típicamente)
– En memoria auxiliar, las
páginas son grupos de
espacios de direcciones
físicas
Mapa de Memoria
Virtual Address

Physical Address
Memoria Virtual - Ejemplo

VA: Virtual Address VPN = ?


PA: Physical Address PPN = ?
VPN: Virtual Page Number
PPN: Physical Page Number
Memoria Virtual - Ejemplo

VA: Virtual Address VPN = 0x2


PA: Physical Address PPN = ?
VPN: Virtual Page Number
PPN: Physical Page Number
Memoria Virtual - Ejemplo

VA: Virtual Address VPN = 0x2


PA: Physical Address PPN = 0x4
VPN: Virtual Page Number
PPN: Physical Page Number
Memoria Virtual - Ejemplo

0x4C8

VA: Virtual Address VPN = 0x2


PA: Physical Address PPN = 0x4
VPN: Virtual Page Number
PPN: Physical Page Number
Ejemplo
Organización de la Memoria
Ejemplo.
Organización de la memoria del
PIC16F887

Mapa de memoria organizado en


0x2000 direcciones

¿Ancho de palabra de dirección?


Organización de la Memoria
Ejemplo.
Organización de la
memoria PIC16F887
Organización de la Memoria

• Acceso a registro por puntero en C/C++:


uint8_t *reg;

reg = (uint8_t *)0x07; // Acceso a PORTC


*reg = 0x33; // Escribir 0x33 a PORTC

1. Tipo de dato del puntero dependiente de la


longitud de palabra del dato
2. Escritura por medio de apuntador

#define PORTC *((uint8_t *) 0x07)


PORTC = 0x33; PORTC ubicado en 0x07
Organización de Memoria en SO

Calendarizador Notepad
Gestor de memoria Office
Drivers Visual Studio
⋮ ⋮
Sistema Operativo
• Modo Usuario
– Software reside en memoria auxiliar
• Modo Kernel
– Software reside en memoria principal
Organización de Memoria en SO

Calendarizador Notepad
Gestor de memoria Office
Drivers Visual Studio
⋮ ⋮
Motor Controller

PORTC: 0x07
Organización de Memoria en SO

Calendarizador Notepad
Gestor de memoria Office
Drivers Visual Studio
⋮ ⋮
Motor Controller

PORTC: 0x07
Organización de Memoria en SO

Calendarizador Notepad
Driver

Gestor de memoria Office


Drivers Visual Studio
⋮ ⋮

Driver
Motor Controller

PORTC: Driver

También podría gustarte