Espacio de direcciones lógico para una abstracción de memoria.
¿Qué es la memoria? La memoria en un equipo de cómputo es un elemento esencial, ya que en este se alojan los programas – procesos para ser ejecutados, siendo el principal el sistema operativo. Existen diversos tipos de memoria: • RAM (Random Access Memory - memoria de acceso aleatorio) que suele ser la memoria principal. • ROM (Read Only Memory – memoria de solo lectura) que suele ser donde se aloja el BIOS (Basic Input-Output System - Sistema Básico de Entrada-Salida). • Memoria Secundaria – Almacenamiento en disco mecánico o actualmente de estados sólidos.
Abstracción de memoria Desde los primeros mainframes (antes de 1960) y hasta las primeras computadoras personales (antes de 1980) no tenían abstracción de memoria, cada programa usaba la memoria física, por lo que la abstracción más simple de memoria es ninguna abstracción. Cuando el modelo 0xFFF... Sistema Drivers de de memoria Programa operativo dispositivos consiste en de usuario en ROM en ROM solo la memoria Programa Programa física hay varias de usuario de usuario opciones de uso. En la figura se Sistema 0 0 Sistema 0 muestran tres operativo (b) operativo en RAM en RAM opciones o modelos. (a) (c) a. El sistema operativo b. El sistema operativo c. Los controladores puede alojarse en la puede alojarse en la de dispositivos pueden parte inferior de la parte superior de la estar en la parte superior memoria RAM, usado en memoria ROM, usado en de la memoria ROM los mainframes. dispositivos personales y y el resto del sistema sistemas integrados. en la memoria RAM, usados en computadoras personales que ejecutaban el sistema operativo MS-DOS.
Espacio de direcciones lógico Una mejor solución es considerar una nueva abstracción para la memoria: el espacio de direcciones. Así como el concepto del proceso crea un tipo de CPU abstracta para ejecutar programas, el espacio de direcciones crea un tipo de memoria abstracta para que los programas vivan ahí. Un espacio de direcciones (address space) es el conjunto de direcciones que puede utilizar un proceso para direccionar la memoria. Cada proceso tiene su propio espacio de direcciones, independiente de los que pertenecen a otros procesos (excepto en ciertas circunstancias especiales en donde los procesos deseen compartir sus espacios de direcciones).
Registro base y límite La solución sencilla utiliza una versión muy simple de la reubicación dinámica. Lo que hace es asociar el espacio de direcciones de cada proceso sobre una parte distinta de la memoria física, de una manera simple. La solución clásica, que se utilizó desde la primera supercomputadora hasta el Intel 8088, es equipar al CPU con dos registros de hardware especiales, conocidos comúnmente como los registros base y límite. Intercambio La estrategia de intercambio consiste en llevar cada proceso completo a memoria, es decir, ejecutarlo durante cierto tiempo y después regresarlos a la memoria secundaria (disco). Los procesos inactivos mayormente son almacenados en disco, de tal manera que no ocupan memoria cuando no se están ejecutando. La otra estrategia, conocida como memoria virtual, permite que los programas se ejecuten incluso cuando sólo se encuentran en forma parcial en la memoria. Cuando el intercambio crea varios huecos en la memoria, es posible combinarlos todos en uno grande desplazando los procesos lo más abajo que sea posible. Esta técnica se conoce como compactación de memoria.
¿Cómo opera un sistema de intercambio? Analiza la siguiente figura. Al principio el proceso A está en la memoria. Después del proceso B y C se crean o se intercambian desde disco. En la figura (d), A se intercambia al disco. Después llega D y sale B. Por último, A entra de nuevo. Como A está ahora en una ubicación distinta, las direcciones que contienen se deben reubicar, ya sea mediante software cuando se intercambia o (más probablemente) mediante hardware durante la ejecución del programa. En este ejemplo, los registros base y límite funcionarían bien en este caso.
Administración de memoria 1. Administración de memoria por mapa de bits. Con un mapa de bits, la memoria se divide en unidades de asignación tan pequeñas como unas cuantas palabras y tan grandes como varios kilobytes. Para cada unidad de asignación hay un bit correspondiente en el mapa de bits, que es 0 si la unidad está libre y 1 si la unidad está ocupada (o viceversa). 2. Administración de memoria con listas ligadas. Otra manera de llevar el registro de la memoria es mantener una lista de segmentos memoria asignados y libres, en donde un segmento contiene un proceso o es un hueco vacío entre dos procesos. Se pueden usar diversos algoritmos para asignar memoria a un proceso creado (o un proceso existente que se intercambie del disco): a. PRIMER AJUSTE. El administrador de memoria explora la lista de segmento hasta encontrar un hueco que sea lo bastante grande. Después el hueco se divide en 2 partes, una para el proceso y otra para la memoria sin utilizar, excepto en el estadísticamente improbable caso de un ajuste exacto. El algoritmo del primer ajuste es rápido debido a que busca lo menos posible. b. SIGUIENTE AJUSTE. Funciona de la misma manera que el primer ajuste, excepto porque lleva un registro de dónde se encuentra cada vez que descubre un hueco adecuado. La siguiente vez que es llamado para buscar un hueco, empieza a buscar en la lista desde el lugar en el que se quedó la última vez, en vez de empezar siempre desde el principio, como el algoritmo del primer ajuste. c. MEJOR AJUSTE. Busca en toda la lista y toma el hueco más pequeño que sea adecuado. En vez de dividir un gran hueco que podría necesitarse después, el algoritmo del mejor ajuste trata de buscar un hueco que esté cerca del tamaño actual necesario, que coincida mejor con la solicitud y los huecos disponibles.
d. PEOR AJUSTE. Toma el hueco más grande disponible, de manera que el nuevo hueco sea lo bastante grande como para ser útil. e. AJUSTE RÁPIDO. El cual mantiene listas separadas para algunos de los tamaños más comunes solicitados. Podría tener una tabla de n entradas, en donde en la primera es un apuntador a la cabeza de una lista de huecos de 4 KB, la segunda entrada es un apuntador a una lista de 8 KB, la tercera entrada un apuntador a huecos de 12 KB y así sucesivamente. Analiza la siguiente figura. a) Una parte de la memoria con 5 procesos y 3 huecos. Las marcas de graduación muestran las unidades de asignación de memoria. Las regiones sombreadas (0 en el mapa de bits) están libres. b) El mapa de bits correspondiente. c) La misma información en forma de listas. Cada entrada en la lista especifica un hueco (H) o un proceso (P), la dirección en la que inicia, la longitud y un apuntador a la siguiente entrada.
Referencias bibliográficas Gómez López, J. (2010). Administración de Sistemas Operativos: un enfoque práctico. Alfa-omega. https://anahuac.primo. exlibrisgroup.com/permalink/52ANAHUAC_INST/12ghpp2/ alma993738726505016 Moreno, J. C. (2013). Sistemas operativos y aplicaciones informáticas. Ra-Ma. https://elibro-net.eu1.proxy.openathens.net/es/ ereader/anahuaccancun/62504?page=1 Stallings, W. (2011). Sistemas Operativos: Aspectos internos y principios de diseño. Pearson. https://anahuac.primo. exlibrisgroup.com/permalink/52ANAHUAC_INST/19o6289/ cdi_proquest_ebookcentral_EBC5134289 Tanenbaum, A. (2009). Sistemas Operativos Modernos (3era edición). Pearson. https://anahuac.primo.exlibrisgroup.com/ permalink/52ANAHUAC_INST/suc44k/alma993806449905016 Sol Llaven, Daniel (2015). Sistemas Operativos: panorama de la ingeniería en computación e informática, Grupo Editorial Patria. https://anahuac.primo.exlibrisgroup.com/ permalink/52ANAHUAC_INST/19o6289/cdi_elibro_books_ ELB40429
Search
Read the Text Version
- 1 - 9
Pages: