Nombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 2. Investigación sobre Paginación y Segmentacion.

Documentos relacionados
Sistemas Operativos. Trabajo Práctico N ō 6

GESTION DE LA MEMORIA

Sistemas Operativos. Curso 2016 Administración de memoria II

Tema 5 (III) Jerarquía de Memoria

Tema 5: Gestión de la Memoria Principal

Facultad de Ingeniería Industrial y de Sistemas v2.0 MA781U MEMORIA VIRTUAL

Memoria Virtual. Ing. Jorge Castro-Godínez

Universidad de Los Andes Escuela de Ingeniería de Sistemas Departamento de Computación Arquitectura de Computadores. Clase 24

Gestión de la Memoria y Memoria Virtual

Sistemas de Computación Memoria. 2º Semestre, 2008 José Miguel Rubio L.

Sistemas Operativos Administración de la Memoria

Sistemas Operativos. Iván Bernal, Ph.D. 4. Escuela Politécnica Nacional I.

SISTEMAS OPERATIVOS: SISTEMAS DE FICHEROS. Ficheros

Tema III: Componentes de un Sistema Operativo

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:

Ejercicios sobre gestión de memoria

Procesos y Memoria. Administración de Memoria 26/10/2010 SISTEMAS OPERATIVOS

SISTEMAS OPERATIVOS - SEGUNDA PARTE Examen Convocatoria Ordinaria, 19 de junio de 2008

Concepto de memoria virtual

Nombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 3. Administración de la Memoria.

Memoria virtual Ejercicios resueltos

Memoria virtual Ubicación de bloque en paginación

Introducción a los Sistemas Operativos

Fundamentos de Sistemas Operativos Licenciatura en Administración de Tecnologías de Información y Comunicaciones

Facultad de Ingeniería Industrial y de Sistemas v2.0 MA781U GESTION DE MEMORIA

Gestión de Memoria. Gestión de Memoria. Requisitos de Gestión de Memoria

Memoria Virtual. Memoria Virtual

Administración de memoria.

Memoria Virtual. Departamento de Arquitectura de Computadores

Tema 20 Gestión de memoria

Administración de memoria

SISTEMAS OPERATIVOS: Lección 10: Gestión de Memoria Virtual

Unidad 9. Daniel Rojas UTN. Thursday, July 31, 14

Memoria. Organización de memorias estáticas.

Arquitectura de Computadores II Clase #7

Sistemas operativos: una visión aplicada. Capítulo 1 Conceptos arquitectónicos

Administración de Memoria. Módulo 8. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur

Sistema de memoria. Introducción

1 ( 3,5 puntos) Responda, justificando sus respuestas, a las siguientes cuestiones:

Basado en S.O. de William Stallings / 5ed. y S.O. de Jesús Carretero (y otros). Universidad Simón Bolívar

Mapa de memoria. memoria CACHÉ

Taller de Sistemas Operativos. Direccionamiento de Memoria 2012

Introducción. Universidad de Sonora Arquitectura de Computadoras 2

Arquitectura de Computadoras

Espacio de direcciones de un proceso

4.3 Memoria virtual. move r1, [1000] Paginación

1. Sistema Operativo Unix

2.3 Memoria virtual En prácticamente todos los sistemas operativos modernos se usa la técnica de memoria virtual. En esta sección se analizarán los

Introducción. Universidad de Sonora Arquitectura de Computadoras 2

Arquitectura de Computadores II Clase #7

Arquitectura de Computadores II Clase #7

Sistemas Operativos II Convocatoria ordinaria 24 de Enero de 2001 Escuela Universitaria de Informática (Grupo K)

Reducción de la penalización por fallo Técnica: Dar prioridad a los fallos de lectura sobre la escritura (I)

TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.

Sistemas Operativos. Daniel Rúa Madrid

Sistemas Operativos. ADM. UMC. Ing. Informática FTI - UB MEMORIA VIRTUAL:

Administración de Memoria

Arquitectura de Computadoras para Ingeniería

Memoria Cache. Departamento de Arquitectura de Computadores

Sistemas Operativos ING. EN COMPUTACIÓN Tercer Examen Parcial

Capítulo 1 Conceptos arquitectónicos

Capítulo 1. Sistemas de Asignación Contigua Basados en Particiones

Administración de Memoria.

Administración de memoria

Diagrama temporal de un programa simple. Multi-Programación con dos programas

SISTEMAS OPERATIVOS Arquitectura de computadores

Cuestiones y Problemas de Gestión de Memoria

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 4. Técnicas de Dispersión. Definición y Manejo.

La secuencia de referencias a páginas para el proceso B es:

Tutorías con Grupos Reducidos (TGR) Parte 5: Memoria Virtual

ARQUITECTURA DE COMPUTADORES 2º I.T.

UNIDAD I. Universidad del Zulia Costa Oriental del Lago. Conceptos Básicos

Sistemas Operativos. S.O. Estructura Básica. S.O. Como Administrador de Recursos. Multiprogramación. Multiprogramación y Procesos

Tema II. Descripción y control de procesos. UNED Manuel Fernández Barcell. Blog:

SISTEMAS. Ciclo 2014 Plan 2012

Facultad de Ingeniería Industrial y de Sistemas v1.1 MA781U CONCEPTOS INICIALES CASOS DE USO

Unidad 3: Gestión de Archivos

1. Para qué sirve un Descriptor de Dispositivo? Qué funciones del sistema operativo acceden a ellos y para qué?

Memoria Caché. Organización de Computadoras Universidad Nacional de Quilmes

Examen de Arquitectura de Computadores

Administración de Memoria

Sistemas operativos. Tema 8: Memoria virtual

Ejercicios de GESTION DE MEMORIA

Introducción a los Sistemas Operativos

Tema 6: Memoria virtual. Óscar David Robles Sánchez Sofía Bayona Beriso David Miraut Andrés Luis Rincón Córcoles

Tema 3. Gestión de la memoria

SOLUCIONES. DURACIÓN: Dispone de 120 minutos para realizar el examen.

Fundamentos de los Sistemas Operativos

MEMORIA Procesador Dispositivos de E/S PRINCIPAL

INFORME MEMORIA CACHE Y MEMORIA VIRTUAL.

Arquitectura de Computadores I. Sistema de memoria 3 (Solución): Segmentación + Bancos

UNIDAD TEM ATICA 3: ACELERACI ON DEL ACCESO A MEMORIA.

Arquitectura de Computadores II. Arquitectura Intel 32 y modo protegido

Capítulo 2. Sistemas de Asignación Dispersa de

Tema II. Unidad de memoria

Cuestionario almacenamiento en disco y gestión de memoria.

Sistemas Operativos Tema 4. Memoria José Miguel Santos Alexis Quesada Francisco Santana Belén Esteban

PREPARACION DE UN DISCO

FSO - ejercicios de gestión de memoria

Transcripción:

Nombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 2. Investigación sobre Paginación y Segmentacion. Fecha de entrega: 10 de Mayo de 2013. Campus: Villahermosa. Carrera: Ingeniería en Sistemas Computacionales. Materia: Sistemas Operativos I. Nombre del maestro: Carlos Castro. 1

Paginación La paginación es una estrategia de organización de la memoria similar a la segmentación pero con ciertas diferencias, por ejemplo la memoria se considera un espacio continuo dividido en porciones de igual tamaño fijo (frente a la división en segmentos de tamaño variable de la segmentación), a dichas porciones se las conoce como marcos de página o simplemente como páginas. Las páginas están definidas por un número de página, que identifica de forma única a cada página (dentro del espacio de memoria de un proceso). Cada página se asigna en exclusividad a un proceso. Funcionamiento Desde el punto de vista de la paginación la traducción de las direcciones de memoria se basa en dos conceptos: 1. El dispositivo traductor divide las direcciones lógicas en 2 partes de la siguiente forma: los n bits más significativos identifican la página mientras que el resto identifica el desplazamiento. 2. Cuando el traductor dinámico de páginas recibe, en una dirección lógica, un número de página este examina una tabla (llamada tabla de páginas) en la cual se relacionan las páginas lógicas con las páginas físicas y obtiene la dirección real (Número de marco) de la siguiente forma: 2

Al igual que en la segmentación al intentar acceder a una página ausente se produce un fallo (llamado en este caso fallo de página). Otras características Los valores óptimos para las porciones son: en arquitectura de 32 bits es de 4KB, y en arquitectura de 64 bits es de 8KB. Los criterios vistos en el tema anterior no se aplican aquí, no tiene sentido hacerlo ya que todas las páginas de memoria son iguales. Dispositivo de traducción de direcciones paginadas Se dispone de la tabla de páginas de cada proceso en memoria para llevar a cabo la traducción. La tabla de páginas se indexa por número de página. El dispositivo de traducción de direcciones paginadas debe ser un dispositivo muy rápido, ya que se usa con cada acceso a memoria que se realiza. El tamaño de la tabla de páginas es uno de los aspectos que más influye en el diseño del dispositivo e incluso en la organización de la propia tabla. Otro aspecto relevante es la localización de dicha tabla, la cual puede encontrarse en el traductor o guardada en memoria: Tabla de páginas en el traductor: Se usa en equipos cuyo espacio de direcciones es de pocas páginas. El dispositivo de traducción contiene un conjunto de registros organizados como una memoria en los cuales almacena la tabla de páginas. Dicha página debe sustituirse (lo cual aumenta el tiempo de conmutación) en dos situaciones distintas: al cambiar de proceso y al transferir el control al sistema operativo (en este caso se reduce el tiempo de conmutación utilizando dos tablas separadas, una para los procesos y otra para el sistema operativo, las cuales se utilizan dependiendo del modo de uso de la CPU, supervisor o usuario). Tabla de páginas en memoria: Se usa en equipos con mucha memoria, en los cuales el número de páginas puede llegar a ser muy alto con lo que el tiempo necesario para cargar las páginas en el traductor es demasiado alto. La tabla de páginas es guardada en la memoria principal y el dispositivo traductor tiene la dirección de comienzo y el tamaño de la tabla, debido a que la tabla 3

está en la memoria principal se necesita, por cada acceso a memoria, un acceso a memoria adicional para obtener el número de página física asociado a la página lógica. Para mantener un tiempo de acceso aceptable se establece una memoria asociativa que conserva las parejas página lógica-página física utilizadas recientemente. También hay dispositivos traductores que no utilizan tablas de páginas, buscan directamente la información en una memoria asociativa, y si no la encuentran, lanzan una excepción que manejará el sistema operativo. Así, el SO es el responsable de determinar la asociación entre números de página y números de marco, y además de actualizar la memoria asociativa, lo que da cierta flexibilidad. Tabla de páginas multinivel El objetivo es paginar la tabla de páginas lo que permite que esta no esté cargada completa en memoria y que no ocupe direcciones consecutivas. En los sistemas operativos con tablas de páginas multinivel los números de página se dividen en dos partes: los bits más significativos indican el directorio de páginas correspondiente y con los bits menos significativos el índice del directorio en el que se encuentra la página buscada: 4

Tabla de páginas para todo el sistema: Es una variante de las tablas de página multinivel, en la que el dispositivo traductor sólo contiene una entrada por cada proceso, indexadas por PID, y una dirección de tabla que contiene las páginas de dicho proceso. Así, ante una conmutación de procesos basta con cambiar de PID. Elementos de administración La administración es sencilla ya que todas las porciones de memoria son de igual tamaño (se limita a comprobar si hay suficientes marcos libres para ejecutar el proceso). Se pueden usar: Tabla de asignación de marcos a procesos: Tiene una entrada por marco, que contiene el PID del proceso que lo tiene asignado, o 0, si está libre. Lista de marcos asignados a procesos: Dado que el número de marcos es fijo, se implementa mediante una tabla. Estas listas tienen una entrada por marco. En cada entrada está, o el siguiente marco en la lista, o -1 si el marco es el último. Hay una lista global de marcos libres, y una lista por proceso de marcos ocupados. Para ayudar a la gestión, cada proceso tiene en su PCB los índices del primer y el último marco que tiene asignados. Segmentación Un segmento es un espacio de memoria de tamaño variable, compuesto por: Descriptor: Identificador único del segmento (dentro del espacio de memoria del proceso). Tamaño del segmento 5

Funcionamiento Características Cada proceso en ejecución (esté activo, bloqueado o preparado) tiene su tabla de segmentos. Solapamiento: Se puede hacer que 2 segmentos se superpongan de manera que compartan direcciones de memoria física con direcciones lógicas diferentes. Para evitar problemas de concurrencia, debe de indicarse explícitamente que una porción de memoria puede ser compartida. De esta manera, procesos diferentes pueden compartir información y código usando la memoria común. Protección de memoria: añadir 3 bits a la tabla de descriptores de segmentos para los permisos (r w x). Cuando un proceso requiere más memoria se crea un nuevo segmento. Dos instancias de un mismo proceso pueden compartir segmentos de memoria de instrucciones/código, pero no para datos ya que esto complicaría la gestión. No se redimensionan. Gestión compleja, sobre todo por su tamaño variable 6

Permite la carga de segmentos a petición, de manera que no se disponga de todos los segmentos en memoria principal, que se puedan descargar a disco (en la zona de intercambio o swap) en base a un cierto criterio (ver Memoria virtual). Esta zona de intercambio puede ser: Un lugar fijo en el disco (Linux, Unix). El administrador de memoria decide qué segmento se va a descargar Un fichero oculto de tamaño fijo o variable dependiendo de la configuración dada por el usuario (Windows). Mecanismos Los diferentes mecanismos que nos ofrece la segmentación de memoria son los siguientes. Carga de segmentos a petición Es un mecanismo que permite a un proceso no disponer de todos sus segmentos en memoria principal, se pueden descargar a disco (en la zona de intercambio o swap) segmentos en base a un cierto criterio (ver Memoria virtual). Esta zona de intercambio puede ser: Un lugar fijo en el disco (Linux, Unix). El administrador de memoria decide qué segmento se va a descargar Un fichero oculto de tamaño fijo o variable dependiendo de la configuración dada por el usuario (Windows). Formas de uso de los descriptores En cuanto a aspectos materiales, se plantea el problema de que no es habitual que la tabla de segmentos quepa en el dispositivo de traducción (MMU), por lo que se almacena la tabla en memoria, y el MMU contiene su dirección. El problema es que esta técnica hace que el tiempo de acceso se duplique, al haber un primer acceso al MMU y un segundo acceso a la dirección efectiva. Se plantean dos soluciones no excluyentes: Uso de registros descriptores de segmento en MMU: En MMU nos encontraremos varios registros que pueden contener descriptores, en los que se copiarán los que se vayan a usar en un futuro inmediato. Hay dos tipos de registros: 7

Registros de propósito general: Registros sobre los que se cargan los próximos descriptores a usar, y dos tipos de direcciones: - Las que hacen referencia a un descriptor en la tabla de memoria (y necesitan más bits para hacer referencia al descriptor) - Las que hacen referencia a un descriptor en MMU (y necesitan menos bits para referir al descriptor) Registros especializados: Registros capaces de albergar a un descriptor concreto, como el DS (Para manejo de datos), SS (Para manipulación de pila) o el CS (Para instrucciones de salto y llamadas a rutinas). También existen dos tipos de direcciones: - Las que hacen referencia a un descriptor en la tabla de memoria - Las que no hacen referencia a ningún descriptor, y emplean descriptores de MMU, según el tipo de instrucción Uso de descriptores en memoria asociativa (Cache): La MMU contiene una memoria asociativa indexada por número de descriptor. Para cada acceso, se busca en la memoria asociativa el número de descriptor, y si no está, se carga a esta (Si se llena la memoria asociativa se lleva a cabo reemplazo). Este tipo de memoria es transparente, por lo que se puede usar en conjunción con registros descriptores de segmento en MMU. SUPERPOSICIÓN DE SEGMENTOS Varios segmentos pueden estar parcial o totalmente solapados en memoria. Una dirección física se puede corresponder con múltiples direcciones lógicas. Los segmentos superpuestos pueden tener incluso distintos permisos (segmento 0 y 1). Si son totalmente superpuestos se denominan segmentos alias. Se aplica para implementar la técnica de "copy on write" (animación). Se crea inicialmente un segmento de datos, con permiso de lectura y escritura. Al crear el segmento de COW, este se crea con la misma dirección y tamaño (totalmente solapado), pero nótese que se quita el permiso de escritura en ambos segmentos. Si se intenta escribir en uno de los dos, se produce un fallo de protección. Entonces se copia el segundo segmento sobre una nueva ubicación, actualizándose su dirección y restituyéndose en ambos el permiso de escritura. Otra aplicación: en un micro que no permita modificar segmento de código, se puede crear un segmento alias de dato para modificarlo. 8

Crecimiento de proceso Existen dos formas de crecimiento: Asignando nuevos segmentos al proceso, y haciendo crecer algún segmento asignado. Para crecer un segmento: si hay suficiente espacio libre detrás, se cambia el tamaño en el descriptor; si no hay suficiente espacio: se copia al hueco libre (compactando si es necesario) y se cambia el tamaño (y dirección base, claro está). Existe la posibilidad de crecimiento automático, a cada segmento se asocia un atributo "permitir crecer"; Si se sobrepasa el límite en un segmento que puede crecer, el tratamiento de la excepción es el que hará crecer al segmento. Gracias a la segmentación, todas las direcciones son reubicables. 9