2.¿Puede coexistir un esquema de intercambio en sistema de asignación contigua con tamaño de partición fijo de memoria? Razone la respuesta.
En este esquema, la memoria se divide en unidades del mismo tamaño denominadas marcos de página. Mientras que los programas se dividen en unidades lógicas denominadas páginas. Las páginas tendrán el mismo tamaño que los marcos de página.
Cuando un proceso se ejecuta carga un número de páginas en la memoria física y el resto en disco.
El sistema mantiene una tabla para la traducción del número de página al número de marco.
Las dos funciones principales son:
Llevar a cabo la transformación de una dirección de memoria a la página correspondiente.
Transferir páginas entre la memoria secundaria y la memoria principal y viceversa.
Entre las ventajas, se encuentra que es posible ejecutar un programa cargando solo una parte del mismo y el resto bajo demanda de ejecución, no es necesario que las páginas estén contiguas en memoria y además es fácil controlar todas las páginas porque tienen el mismo tamaño.
La principal desventaja es que debe existir un mecanismo de traducción de direcciones, con la consiguiente pérdida de eficiencia.
Actividades
3.¿Qué ocurriría si el tamaño de marco en memoria fuera menor que el tamaño de página en un sistema de paginación de memoria?
La segmentación se basa en la división lógica del programa en partes denominadas segmentos, donde cada una de estas partes agrupa elementos relacionados lógicamente, como por ejemplo: pila, código, datos, etc.
Cuando el programa es compilado, el compilador construye los segmentos en función de la estructura del programa. Los segmentos pueden tener tamaños distintos. En este esquema, cada programa puede ocupar más de una partición y no tienen por qué ser contiguas.
Entre las ventajas y desventajas, destaca que facilita la compactación de código y datos. No produce fragmentación interna, pero si fragmentación externa.
Importante
La fragmentación interna se produce cuando se intenta almacenar información con un tamaño menor que la unidad mínima de almacenamiento lógico que puede gestionar el sistema operativo. Sin embargo, la fragmentación externa se produce cuando entre particiones de memoria quedan huecos libres más pequeños que no pueden ser aprovechados por el sistema operativo cuando intenta guardar otros bloques mayores.
Actividades
4.¿Por qué no hay fragmentación interna en un esquema de segmentación de la memoria?
Se trata de un esquema que usa la combinación de la segmentación y la paginación. En este caso, la memoria es segmentada y los segmentos se componen de páginas.
La traducción de direcciones necesita de tablas de páginas y de tablas de segmentos. Las direcciones virtuales contienen un identificador de segmento, un número de página y un desplazamiento dentro de la página.
La ventaja de este esquema es que se elimina la fragmentación externa, pero se introduce fragmentación interna.
Cuando la memoria era muy cara y, por lo tanto, un equipo informático disponía de una cantidad muy reducida de memoria, era la pericia del programador la que permitía aprovechar al máximo los recursos que usaban los programas. Fue entonces cuando se originó el mecanismo de overlay. Se trataba de una técnica que dividía un programa en varias partes y la ejecución del mismo se realizaba como una secuencia sucesiva de esas partes: primero se cargaba en memoria una parte y, tras su ejecución, continuaba con la carga de la siguiente.
Pero esta técnica no solucionaba el problema de la limitación de memoria, por lo que se intensificaron los esfuerzos por encontrar un mecanismo general que permitiera la flexibilidad necesaria para el programador. Es el origen de la memoria virtual.
La memoria virtual permite proporcionar a un proceso un mapa de memoria mucho mayor que la memoria física existente en el sistema.
Se han visto algunos ejemplos de memoria virtual en los esquemas de gestión de memoria anteriores, como es el caso de la paginación y la segmentación.
Cuando no se dispone del suficiente espacio en memoria principal, el sistema operativo guarda aquellas partes del programa que exceden la cantidad de memoria. Cuando se libera el espacio suficiente y la ejecución del programa lo requiere, se translada a la memoria principal el espacio de memoria necesaría para la ejecución del programa.
El sistema de memoria virtual consiste en que cada proceso crea que tiene todo el espacio de memoria disponible, de manera que existe un desacoplamiento entre el espacio de direcciones que usa el programa (direcciones virtuales) y las direcciones físicas donde realmente se almacenan los datos (direcciones físicas). Los sistemas de memoria virtual utilizan la división de los programas en páginas o fragmentos. Estas páginas no necesitan encontrarse físicamente contiguas.
Por ejemplo, cuando un proceso requiere una variable almacenada en la dirección 1000, es necesaria una traducción de esta dirección a la dirección física que realmente contiene el dato. Se utiliza una estructura denominada tabla de páginas para llevar a cabo esa traducción. Cada proceso posee varias tablas asociadas, correspondientes a distintos segmentos del programa.
Actividades
5.¿Por qué es necesaria una traducción entre direcciones virtuales y direcciones físicas en un esquema de memoria virtual? Razone la respuesta.
2.3.Ejecución de programas y gestión de procesos
El sistema operativo guarda información de cada proceso, de forma que es posible identificar sus características y todos los recursos que tiene asignados.
De toda la información que es mantenida por el sistema operativo, existe una parte muy importante, conocida como Bloque de Control del Proceso (BCP) que contiene, entre mucha otra información, el valor de cada registro del proceso.
En el sistema operativo existen dos tipos de procesos que se pueden generar: procesos de usuario (los que son creados por el usuario) y procesos de sistema (que forman parte del sistema operativo).
Читать дальше