memoria principal - cursos.delaf.cl · operating system concepts – 8th edition 8.4 silberschatz,...

46
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Memoria Principal

Upload: others

Post on 24-Feb-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Memoria Principal

Page 2: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.2 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Administración de Memoria

Antecedentes

Intercambio

Asignación de memoria contigua

Paginación

Estructura de la tabla de páginas

Segmentación

Page 3: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.3 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Objetivos

Proveer de distintas descripciones de formas de organizar la memoria física

Discutir técnicas de administración de memoria, incluyendo paginación y segmentación

Page 4: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.4 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Antecedentes

Programa debe ser traído (desde el disco) a la memoria y ser ubicado como proceso para su ejecución

Memoria principal y registros son solo de almacenamiento, la CPU puede accederlas directamente

La unidad de memoria solo ve un flujo de direcciones y solicitudes de lectura, o bien direcciones, datos y solicitudes de escritura

Registros se accesan en un ciclo de CPU (o menos)

La memoria principal puede tomar varios ciclos para ser accedida

Cache se sitúa entre la memoria principal y los registros de la CPU

Protección de la memoria es requerida para asegurar una correcta operación

Page 5: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.5 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Registro Base y Límite

Un par de registros de base y límite definen el espacio de direcciones lógicos

Page 6: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.6 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Protección usando Registros Base y Límite

Page 7: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.7 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Enlace de direcciones

Existe Inconveniente de tener como primera dirección física de un programa de usuario la dirección 0000

¿Cómo esto puede ser un problema?

Además, las direcciones son representadas de diferentes maneras en diferentes etapas de la vida del programa

Las direcciones en el código fuente usualmente son simbólicas

Direcciones del código compilado se enlazan a direcciones reubicables

i.e. “14 bytes desde el comienzo de este módulo”

Enlazador (linker) o cargador (loader) enlazarán direcciones reubicables a direcciones absolutas

i.e. 74014

Capa mapa enlaza un espacio de direcciones a otro

Page 8: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.8 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Enlace de Instrucciones y Datos a Memoria

El enlace de instrucciones y datos a direcciones de memoria puede suceder en 3 etapas diferentes

Tiempo de compilación: Si la posición de la memoria es conocida a priori, código absoluto puede ser generado; se deberá recompilar si la locación cambia

Tiempo de carga: Debe generar código reubicable si la locación de la memoria no es conocida en tiempo de ejecución

Tiempo de ejecución: enlace postergado hasta que se ejecuta el proceso, esto si el proceso puede ser movido durante su ejecución desde un segmento de memoria a otro

Necesita suporte del hardware para hacer el mapeo de las direcciones (e.g., registro base y límite)

Page 9: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.9 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Pasos de procesamiento de un programa

Page 10: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.10 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Direcciones Lógicas vs Físicas

El concepto de espacio de direcciones lógicas vinculado a un espacio de direcciones físicas es fundamental para la gestión adecuada de la memoria

Direcciones lógicas – generadas por la CPU; también conocidas como direcciones virtuales

Direcciones físicas – direcciones que son vistas por la unidad de memoria

Direcciones lógicas y físicas son las mismas en tiempo de compilación y tiempo de carga; difieren en tiempo de ejecución

Espacio de direcciones lógicas es el conjunto de todas las direcciones lógicas generadas por un programa

Espacio de direcciones físicas es el conjunto de todas las direcciones físicas generadas por un programa

Page 11: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.11 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Unidad de administración de memoria

“Memory Management Unit (MMU)” es el dispositivo de hardware que durante el tiempo de ejecución mapea las direcciones virtuales a físicas

Existen diferentes métodos, los cuales serán vistos en este capítulo

Considerar un esquema simple donde el valor del registro de reubicación es añadido a cada una de las direcciones generadas por el proceso del usuario cuando es enviado a la memoria

Registro base ahora se llama registro de reubicación (relocation register)

MS-DOS en Intel 80x86 usaba registros de reubicación

El programa de usuario trabaja con direcciones lógicas; este nunca ve la dirección física

Enlace en tiempo de ejecución ocurre cuando una referencia es hecha a una locación en la memoria

Direcciones lógicas están enlazadas a direcciones físicas

Page 12: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.12 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Usando el registro de reubicación

Page 13: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.13 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Carga dinámica

Rutinas no son cargadas hasta que son llamadas

Mejor uso del espacio de memoria; rutinas no usadas nunca serán cargadas

Todas las rutinas se mantienen en disco

Útil cuando grandes cantidades de código es necesario para manejar casos poco frecuentes

No se requiere soporte especial de parte del Sistema Operativo

Implementado a través del diseño del programa

Sistema operativo ayuda entregando las bibliotecas para implementar la carga dinámica

Page 14: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.14 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Enlace dinámico

Enlace estático – bibliotecas del sistema y el código del programa son combinados por el cargador en una imágen binaria del programa

Enlace dinámico – enlace es pospuesto hasta el tiempo de ejecución

Pequeñas piezas de código, colilla (stub), usadas para ubicar las rutinas de las librerías en la memoria

Stub se reemplaza con la dirección de la rutina, y la ejecuta

Sistema operativo verifica si la rutina esta en el espacio de memoria del proceso

Si no esta en el espacio de memoria, la agrega al espacio

Enlace dinámico es particularmente útil para bibliotecas

Sistema también conocido como bibliotecas compartidas

Page 15: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.15 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Intercambio

Un proceso puede ser intercambiado temporalmente fuera de memoria a un almacén de respaldo, y luego puesto nuevamente en memoria para continuar su ejecución

Espacio total de memoria de los procesos puede exceder la memoria física Almacen de respaldo – disco lo suficientemente rápido y grande como para aceptar copias de

todas las imagenes de memoria de los usuarios; debe proveer acceso directo a dichas imagenes de la memoria

Roll out, roll in – variante de intercambio usada por el algoritmo de planificación basado en prioridad; procesos de baja prioridad son intercambiados fuera de la memoria de tal forma que procesos con prioridad superior puedan ser cargados y ejecutados

La mayor parte del tiempo de intercambio es tiempo de transferencia; el tiempo total de transferencia es directamente proporcional a la cantidad de memoria intercambiada

Sistema mantiene una cola de procesos listos que tienen una imagen de memoria en disco ¿Es necesario que el proceso de intercambio vuelva a colocar la imagen de la memoria en las

mismas direcciones físicas? Depende del método de enlace utilizado

Enlace en tiempo de ejecución se comportará diferente a enlace en tiempo de compilación Versiones modificadas de intercambio encontradas en los diferentes sistemas (i.e., UNIX, Linux,

and Windows)

Intercambio normalmente desactivado

Se inicia si se alcanza el umbral de memoria asignada

Desactivado una vez la demanda de memoria disminuye el umbral

Page 16: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.16 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Vista esquemática del intercambio

Page 17: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.17 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Tiempo involucrado para hacer intercambio

Si el siguiente proceso a poner en la CPU no esta en memoria se necesita hacer un intercambio hacia memoria principal

El contexto involucrado en el cambio puede ser alto

Proceso de 100MB que requiere ser intercambiado desde un disco a 50MB/s

Más la latencia del disco de 8 ms

Tiempo de intercambio desde el disco a memoria principal 2008 ms

Más el intercambio de un proceso del mismo tamaño hacia el disco

Tiempo total de 4016ms (> 4 segundos)

Puede ser reducido si se reduce la memoria intercambiada – esto conociendo cuanta memoria realmente será utilizada

Llamadas al sistema utilizadas para informar de uso de memoria al sistema operativo son request memory y release memory

Page 18: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.18 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Asignación contigua

La memoria principal suele estar en dos particiones:

La que contiene al sistema operativo, usualmente mantenida en las direcciones bajas de la memoria (al inicio)

Procesos de usuarios son mantenidos en la zona alta de la memoria

Cada proceso contiene una sola sección contigua de memoria

Los registros de reubicación son usados para proteger un proceso de usuario de los otros, y para evitar cambiar código o datos del espacio de memoria del sistema operativo

Registro base contiene el valor de la dirección física más baja

Registro límite contiene el rango de direcciones lógicas – cada dirección lógica debe ser menor al límite del registro

La MMU mapea direcciones lógicas de forma dinámica

Page 19: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.19 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Soporte de HW para reubicación

Page 20: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.20 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Asignación contigua (Cont.)

Asignación de particiones múltiples

Grados de multiprogramación limitado por el número de particiones

Agujero – bloque de memoria disponible; agujeros de varios tamaños están dispersos a través de la memoria

Cuando un proceso llega, este es asignado a memoria de un agujero lo suficientemente grande como para acomodarlo

Procesos que salen liberan particiones, particiones libres adyacentes son combinadas

Sistema operativo mantiene información sobre:a) particiones asignadas b) particiones libres (agujeros)

OS

process 5

process 8

process 2

OS

process 5

process 2

OS

process 5

process 2

OS

process 5

process 9

process 2

process 9

process 10

Page 21: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.21 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Partición dinámica

Page 22: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.22 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Partición fija

Page 23: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.23 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Asignación de memoria en partición fija

Page 24: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.24 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Asignación dinámica de memoria

Primer ajuste (First-fi)t: Asigna el primer agujero donde se satisface la solicitud

Mejor ajuste (Best-fi)t: Asigna el más pequeño que satisface; busca en toda la lista Produce el menor número de restos

Peor ajuste (Worst-fi)t: Asigna el más grande; busca en toda la lista Produce el mayor número de restos

¿Cómo se satisface una solicitud de tamaño N desde una lista de agujeros libres?

¿Cuál es mejor en términos de aprovechamiento del espacio?

Page 25: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.25 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Fragmentación

Fragmentación externa – memoria total que existe para satisfacer la petición alcanza, pero no esta contigua

Fragmentación interna – memoria asignada puede ser ligeramente superior a la memoria solicitada; esta diferencia de tamaño es memoria interna de una partición, pero que no esta siendo usada

Page 26: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.26 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Fragmentación (Cont.)

Se reduce la fragmentación externa por compactación

Se mueve la memoria de tal forma de dejar un solo bloque de memoria libre

Compactación es posible solamente si la reubicación es dinámica; y es hecha en tiempo de ejecución

Problemas de I/O

Se deben evitar trabajos en memoria mientras se hacen las operaciones de I/O

Compactación requiere tiempo

Ahora se debe considerar que el almacén de respaldo (disco) tiene los mismos problemas de fragmentación

Page 27: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.27 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Paginación

El espacio de direccionamiento lógido de un proceso puede ser no contiguo; al proceso se le asigna memoria física cuando ésta última está disponible

Se divide la memoria física en bloques fijos llamados marcos (frames)

Tamaño es potencia de 2, entre 512 bytes y 16 Mbytes

Se divide la memoria lógica en bloques del mismo tamaño llamados páginas (pages)

Se mantiene el registro de todos los marcos libres

Para correr un programa de N páginas se necesitan encontrar N marcos libres para cargar el programa

Se mantiene una tabla de páginas con la traducción de direcciones lógicas a físicas

Almacén de respaldo (disco) también se divide en páginas

Sigue existiendo fragmentación interna.

Page 28: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.28 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Esquema de traducción de direcciones

Direcciones generadas por la CPU son divididas en:

Número de página (p) – usado como un índice en la tabla de páginas que contiene la dirección base de cada página en la memoria física

Offset de la página (d) – combinado con la dirección base para definir la dirección de memoria física que es enviada a la unidad de memoria

page number page offset

p d

Page 29: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.29 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

HW de paginación

Page 30: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.30 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Relación páginas lógicas y físicas

Page 31: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.31 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Ejemplo de paginación

n=2 m=4 32-byte memory and 4-byte pages

2^n = 4 (frame size) 2^m = 16 (logical address)

Page 32: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.32 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Marcos libres

Before allocation After allocation

Page 33: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.33 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Implementación de la Tabla de Páginas

Tabla de páginas es mantenida en memoria principal

Page-table base register (PTBR) apunta a la base de la tabla de páginas

Page-table length register (PTLR) indica el tamaño de la tabla de páginas

En este esquema cada dato/instrucción requiere dos accesos a memoria

Uno para la tabla de páginas y otro para el dato o instrucción

El problema de hacer dos accesos puede ser solucionado mediante el uso de una búsqueda rápida mediante un cache llamado memoria asociativa o translation look-aside buffers (TLBs)

TLBs son tipicamente pequeñas (64 to 1,024 entradas)

Si se busca un valor que la TLB no tiene, el valor es cargado en la TLB para un acceso más rápido la próxima vez

Políticas de reemplazo deben ser consideradas (por ejemplo: no se accede hace X tiempo)

Algunas entradas pueden ser ancladas para tener acceso rápido de forma permanente

Page 34: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.34 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Memoria Asociativa (TLB)

Memoria asociativa – búsqueda paralela

Traducción de direcciones (p, d)

Si p es un registro asociativo se obtiene el frame

Sino, se obtiene el frame a partir de la tabla de páginas en memoria (y se carga la entrada en la TLB para uso futuro)

Page # Frame #

Page 35: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.35 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

HW paginación usando TLB

Page 36: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.36 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Protección de memoria

La protección de la memoria es implementada por la asociación de un bit a cada frame para indicar si el acceso a dicho frame es solo lectura o lectura y escritura

Se podrían agregar más bits para indicar por ejemplo que la página es solo para ejecución u otros permisos que se estimen

Bit válido-inválido asociado a cada entrada en la tabla de páginas:

“válido” indica que la página asociada está en el espacio de direcciones lógicas del proceso

“inválida” indica que la página no está en el espacio de direcciones lógicas del proceso

En caso de violación de una página se producira un “fallo de página” y dicha página se deberá traer desde el almacén de respaldo (disco) a memoria principal para ser utilizada.

Page 37: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.37 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Bit válido (v) o inválido (i) en la tabla de páginas

Page 38: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.38 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Páginas compartidas

Código compartido

Una copia de solo lectura del código es compartida entre los procesos (i.e., text editors, compilers, window systems)

Similar a múltiples hebras compartiendo el mismo espacio de proceso

Al igual que con hebras, útil para IPC si las páginas se comparten en modo lectura y escritura

Código y datos privados

Cada proceso mantiene una copia separada de código y datos

Page 39: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.39 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Ejemplo de páginas compartidas

Page 40: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.40 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Segmentación

Esquema de administración de la memoria que soporta la vista de la memoria del usuario

Un programa es una colección de segmentos Un segmento es una unidad lógica como:

main program

procedure

function

method

object

local variables, global variables

common block

stack

symbol table

arrays

Page 41: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.41 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Vista de usuario de un programa

Page 42: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.42 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Vista lógica de Segmentación

1

3

2

4

1

4

2

3

user space physical memory space

Page 43: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.43 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Arquitectura de Segmentación

Dirección lógica consiste de la tupla:

<número de segmento, offset/desplazamiento>

Tabla de segmentos – mapea direcciones físicas; cada entrada en la tabla tiene:

base – contiene la dirección de inicio del segmento en la memoria física

límite – especifica el largo del segmento

Segment-table base register (STBR) apunta a la tabla de segmentos en la memoria

Segment-table length register (STLR) indica el número de segmentos usados por un programa

número de segmento s es legal si s < STLR

Page 44: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.44 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Arquitectura de Segmentación (Cont.)

Protección

Con cada entrada en la tabla de segmento se puede asociar:

Bit de validación Privilegios de lectura, escritura o ejecución

Compartición de código ocurre a nivel de segmento, pudiendo compartir cantidades más pequeñas

Como los segmentos tienen tamaño variable, la asignación de memoria es un problema de asignación de almacenamiento dinámico

Se elimina la fragmentación interna.

Page 45: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.45 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

HW de Segmentación

Page 46: Memoria Principal - cursos.delaf.cl · Operating System Concepts – 8th Edition 8.4 Silberschatz, Galvin and Gagne ©2009 Antecedentes Programa debe ser traído (desde el disco)

8.46 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Ejemplo de Segmentación