Está en la página 1de 16

Universidad de Oriente – Núcleo Monagas

Escuela de Ingeniería y Ciencias Aplicadas


Departamento de Ingeniería de Sistemas
Sistemas de Operación (071-3643)

Prof.: Bachiller:
Guevara, Rommel. Canelón, Aurora. C.I: V-20.916.700
Sección 01

Maturín, Mayo 2019.


Índice

Introducción--------------------------------------------------------------------------------------- 02

Contenido------------------------------------------------------------------------------------------ 03

Desarrollo------------------------------------------------------------------------------------------ 04

Conclusión---------------------------------------------------------------------------------------- 14

Bibliografías-------------------------------------------------------------------------------------- 15

1
Introducción

La memoria es uno de los principales recursos de la computadora, la cual debe de


administrarse con mucho cuidado. Aunque actualmente la mayoría de los sistemas de
cómputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones
actuales tienen también altos requerimientos de memoria, lo que sigue generando escasez
de memoria en los sistemas multitarea y/o multiusuario.
La parte del sistema operativo que administra la memoria se llama administrador de
memoria y su labor consiste en llevar un registro de las partes de memoria que se estén
utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos
cuando éstos la necesiten y liberándola cuando terminen, así como administrar el
intercambio entre la memoria principal y el disco en los casos en los que la memoria
principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ella.
Los sistemas de administración de memoria se pueden clasificar en dos tipos: los
que desplazan los procesos de la memoria principal al disco y viceversa durante la
ejecución y los que no.
El propósito principal de una computadora es el de ejecutar programas, estos
programas, junto con la información que accesan deben de estar en la memoria principal (al
menos parcialmente) durante la ejecución.
Para optimizar el uso del CPU y de la memoria, el sistema operativo debe de tener
varios procesos a la vez en la memoria principal, para lo cual dispone de varias opciones de
administración tanto del procesador como de la memoria. La selección de uno de ellos
depende principalmente del diseño del hardware para el sistema. A continuación se
observarán los puntos correspondientes a la administración de la memoria.

2
Contenido

1. Diga la importancia de la gestión de memoria.

2. ¿Cuál es la diferencia entre un espacio de direcciones lógicas y un espacio de


direcciones físicas?

3. Describa los problemas de Fragmentación interna y externa.

4. Describa la diferencia entre carga dinámica y enlace dinámico.

5. Describa las técnicas de fragmentación y segmentación y establezca diferencias


entre ellas.

6. ¿En qué consiste la técnica de paginación?

7. ¿Cuál es la idea básica de paginación por demanda?

8. Establezca ventajas y desventajas de paginación, fragmentación y segmentación.

9. Si el proceso empieza hacer hiperpaginación frecuentemente ¿qué debe hacer el


arquitecto del proceso para mejorar la situación?

10. Los procesos múltiples ¿cómo usan los archivos asignados en memoria?

3
1. Diga la importancia de la gestión de memoria.
Se denomina gestión de memoria al acto de gestionar la memoria de un dispositivo
informático. De forma simplificada se trata de proveer mecanismos para asignar secciones
de memoria a los programas que las solicitan, y a la vez, liberar las secciones de memoria
que ya no se utilizan para que estén disponibles para otros programas. La gestión de la
memoria principal de un ordenador es una tarea de suma importancia para el
funcionamiento del mismo. Los sistemas de memoria virtual separan las direcciones de
memoria utilizadas por un proceso de las direcciones físicas reales, permitiendo la
separación de procesos e incrementando la cantidad efectiva de memoria de acceso
aleatorio utilizando la paginación.
La calidad de la gestión de la memoria es crucial para las prestaciones del sistema,
pues, mientras más grande sea el espacio de memoria, más aplicaciones se podrán ejecutar
al mismo tiempo. Además, mientras más rápida sea la memoria, más rápida será la reacción
del sistema. Por eso, el sistema operativo debe estar organizado de manera lo
suficientemente eficiente como para obtener el mejor rendimiento posible.

2. ¿Cuál es la diferencia entre un espacio de direcciones lógicas y un espacio de


direcciones físicas?
La dirección identifica de manera única una ubicación en la memoria. Tenemos dos
tipos de direcciones que son la dirección lógica y la dirección física.
La dirección lógica es una dirección virtual y puede ser vista por el usuario, son las
direcciones utilizadas por los procesos. Sufren una serie de transformaciones, realizadas por
el procesador (la MMU), antes de convertirse en direcciones físicas.
La dirección física es aquella que referencia alguna posición en la memoria física.
El usuario no puede ver la dirección física directamente. La dirección lógica se
utiliza como una referencia para acceder a la dirección física.
La diferencia fundamental entre la dirección lógica y la física es que la dirección
lógica es generada por la CPU durante la ejecución de un programa, mientras que la
dirección física se refiere a una ubicación en la unidad de memoria.
Un espacio de direcciones lógicas para un proceso A es el espacio que sólo
pertenece al proceso A. Puede haber un espacio de direcciones lógicas similar para un

4
proceso B invisible a A. Entonces, el proceso A piensa que posee toda la memoria física.
En realidad, posee solo una pequeña parte de ella.
Es deber del sistema operativo mapear las direcciones lógicas de diferentes procesos
a direcciones físicas reales y evitar el choque de un proceso con otro.
Esto se llama Responsabilidad de administración de memoria del sistema operativo.

3. Describa los problemas de Fragmentación interna y externa.


 Fragmentación interna: La fragmentación interna es la pérdida de espacio en
disco debido al hecho de que el tamaño de un determinado archivo sea inferior al
tamaño del cluster, ya que teóricamente el archivo estaría obligado a ser
referenciado como un cluster completo. Los cluster(s) son contiguos de forma que
desde el último bit del archivo situado en el cluster "A" hasta el primer bit del
archivo situado en el cluster contiguo (es decir "B") queda un espacio sobrante
siempre teniendo la condición de que el archivo del cluster "A" fuera más pequeño
que el cluster en sí. Por eso se sugiere no disponer de un gran tamaño de partición
en los discos nuevos donde la capacidad es muy importante. Por ejemplo si nuestro
clúster es de 18KB (18.432 bytes) por más que un archivo ocupe menos, en nuestro
disco ocupara 18KB. Esto sugiere una pérdida de ese espacio que dice utilizar pero
no utiliza.
Por eso, en nuestro ejemplo, un archivo de 3KB ocupara en nuestro disco lo mismo
que uno de 10KB, o sea 18 KB. Esa pérdida de espacio se denomina fragmentación
interna, y no se corrige con el desfragmentador, sino disminuyendo el tamaño de los
clusters.
 Fragmentación externa: Este tipo de fragmentación aparece como consecuencia
de las distintas políticas de ajuste de bloques que tiene un sistema de ficheros, o al
utilizar asignaciones dinámicas de bloques en el caso de la memoria. En el sistema
de ficheros, la sucesiva creación y eliminación de ficheros de distintos tamaños
puede conducir al aislamiento de los bloques libres de un disco y, dependiendo de la
política de ajuste, su no elección para futuros ficheros.

5
En la memoria del sistema la fragmentación se produce cuando los procesos
asignados han ocupado posiciones no contiguas de memoria dejando demasiados
bloques libres de pequeño tamaño, en los que no "caben" nuevos procesos.
En sistemas de ficheros, la desfragmentación trata de resolver este problema,
alineando los bloques de datos contiguos y juntando los bloques libres, produciendo
así fragmentos mayores que sí serán elegidos para futuros ficheros. En la memoria
principal se soluciona compactando los procesos para que estos ocupen posiciones
contiguas y dejar los bloques libres juntos, o también se soluciona con la paginación
de memoria.

4. Describa la diferencia entre carga dinámica y enlace dinámico.


La carga dinámica tiene como función principal proteger la carga en memoria de un
módulo hasta que el programa lo llame, el cálculo de direcciones dinámico permite que un
programa pueda cargarse en cualquier región de la memoria principal luego interrumpir la
ejecución del programa para ser descargado de la memoria principal y posteriormente
cargado en una posición diferente. Mientras que por su parte, el enlace dinámico es un
mecanismo por el cual se escoge, en tiempo de ejecución, el método que responderá a un
determinado mensaje. Es útil cuando este no puede ser determinado de forma estática, es
decir, en tiempo de compilación. Esta característica de la programación orientada a objetos
permite definir varias implementaciones usando la misma interfaz, por tanto el enlace
Dinámico constituye un tipo de polimorfismo.

5. Describa las técnicas de fragmentación y segmentación y establezca diferencias


entre ellas.
 Fragmentación: La fragmentación es la memoria que queda desperdiciada al usar
los métodos de gestión de memoria. Tanto el primer ajuste, como el mejor y el peor
producen fragmentación externa. La fragmentación es generada cuando durante el
reemplazo de procesos quedan huecos entre dos o más procesos de manera no
contigua y cada hueco no es capaz de soportar ningún proceso de la lista de espera.
 Segmentación: Es un esquema de manejo de memoria mediante el cual la
estructura del programa refleja su división lógica; llevándose a cabo una
agrupación lógica de la información en bloques de tamaño variable denominados
6
segmentos. Cada uno de ellos tienen información lógica del programa: subrutina,
arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una
colección de segmentos, que generalmente reflejan la división lógica del programa.

La principal diferencia entre estas es que la fragmentación se produce cuando los


procesos asignados han ocupado posiciones no contiguas de memoria dejando demasiados
bloques libres de pequeño tamaño, en los que no "caben" nuevos procesos. En sistemas de
ficheros, la desfragmentación trata de resolver este problema, alineando los bloques de
datos contiguos y juntando los bloques libres, produciendo así fragmentos mayores que sí
serán elegidos para futuros ficheros. En la memoria principal se soluciona compactando los
procesos para que estos ocupen posiciones contiguas y dejar los bloques libres juntos, o
también se soluciona con la paginación de memoria, mientras que la segmentación es una
forma de liberar al programador de la tarea del control de las tablas en expansión y
contracción, de la misma forma que la memoria virtual elimina la preocupación por
organizar el programa en una serie de proyectos, pues dota a la máquina de varios espacios
independientes de direcciones llamados segmentos. La segmentación también facilita el uso
de procedimientos o datos compartidos entre varios procesos.

6. ¿En qué consiste la técnica de paginación?


Es una técnica de manejo de memoria, en la cual el espacio de memoria se divide en
secciones físicas de igual tamaño, denominadas marcos de página. Los programas se
dividen en unidades lógicas, denominadas páginas, que tienen el mismo tamaño que los
marcos de páginas. De esta forma, se puede cargar una página de información en cualquier
marco de página.
Las páginas sirven como unidad de almacenamiento de información y de
transferencia entre memoria principal y memoria auxiliar o secundaria. Cada marco se
identifica por la dirección de marco, que está en la posición física de la primera palabra en
el marco de página.
Las páginas de un programa necesitan estar contiguamente en memoria, aunque el
programador lo observe de esta forma. Los mecanismos de paginación permiten la
correspondencia correcta entre las direcciones virtuales (dadas por los programas) y las
direcciones reales de la memoria que se reverencien.
7
Cada página consiste en z palabras contiguas; un espacio de direcciones N de un
programa consiste de n paginas (0,1,2,3…n-1) (n*z direcciones virtuales) y el espacio de
memoria consiste de m marcos de páginas (0,z,2z,…,(m-1)z)(m*z posiciones). Una
dirección virtual a es equivalente a una dirección dada como una dupla (p, d), en la cual p
es el número de la página y d el número de la palabra dentro de la página.
Cada página tiene un número que se utiliza como índice en la tabla de páginas, lo
que da por resultado el número del marco correspondiente a esa página virtual. Si el bit
presente / ausente es 0, se provoca un señalamiento hacia el sistema operativo. Si el bit es 1,
el número de marco que aparece en la tabla de páginas se copia en los bits de mayor orden
del registro de salida, junto con el ajuste de 12 bits, el cual se copia sin modificaciones de la
dirección virtual de entrada. Juntos forman una dirección física de 15 bits. El registro de
salida se coloca entonces en el bus de la memoria como la dirección en la memoria física.
En teoría, la asociación de las direcciones virtuales con las físicas se efectúa según lo
descrito.
La finalidad de la tabla de páginas es asociar las páginas virtuales con los marcos.
En términos matemáticos, la tabla de páginas es una función, cuyo argumento es el número
de página virtual y como resultado el número del marco físico.
Las características más relevantes de la paginación son:
 El espacio de direcciones lógico de un proceso puede ser no contiguo.
 Se divide la memoria física en bloques de tamaño fijo llamados marcos (frames).
 Se divide la memoria en bloques de tamaño llamados páginas.
 Se mantiene información en los marcos libres.
 Para correr un programa de n páginas de tamaño, se necesitan encontrara n marcos y
cargar el programa.
 Se establece una tabla de páginas para trasladar las direcciones lógicas a físicas.
 Se produce fragmentación interna.

8
7. ¿Cuál es la idea básica de paginación por demanda?
La paginación por demanda es una técnica que consiste en cargar sólo páginas
virtuales en memoria conforme son accedidas, esto porque hay mucha menos memoria
física que memoria virtual, el sistema operativo ha de tener especial cuidado de no hacer un
mal uso de la memoria física. Una forma de conservar memoria física es cargar sólo las
páginas que están siendo utilizadas por un programa.
Por ejemplo Linux utiliza la paginación por demanda para cargar imágenes
ejecutables en la memoria virtual de un proceso. Siempre que se ejecuta un proceso, se abre
el fichero que la contiene y su contenido se asocia en la memoria virtual del proceso. Esto
se hace modificando las estructuras de datos que describen el mapa de memoria del proceso
y se conoce como asociación de memoria. Sin embargo, sólo la primera parte de la imagen
se copia realmente en memoria física. El resto de la imagen se deja en disco. Conforme se
va ejecutando, se generan fallos de página y Linux utiliza el mapa de memoria del proceso
para determinar qué partes de la imagen ha de traer a memoria para ser ejecutadas.

9
8. Establezca ventajas y desventajas de paginación, fragmentación y segmentación.
Paginación
Ventajas Desventajas
Es posible comenzar a ejecutar un El costo de hardware y software se
programa, cargando solo una parte del incrementa, por la nueva información que
mismo en memoria, y el resto se cargara debe manejarse y el mecanismo de
bajo la solicitud. traducción de direcciones necesario.
No es necesario que las paginas estén Se consume mucho más recursos de
contiguas en memoria, por lo que no se memoria, tiempo en el CPU para su
necesitan procesos de compactación cuando implantación.
existen marcos de páginas libres dispersos
en la memoria.
Es fácil controlar todas las páginas, ya que Se deben reservar áreas de memoria para las
tienen el mismo tamaño. PMT de los procesos. Al no ser fija el
tamaño de estas, se crea un problema
semejante al de los programas (como asignar
un tamaño óptimo sin desperdicio de
memoria, u "ovearhead" del procesador).
El mecanismo de traducción de direcciones Aparece el problema de fragmentación
(DAT) permite separar los conceptos de interna. Así, si se requieren 5K para un
espacio de direcciones y espacios de programa, pero las paginas son de 4K,
memoria. Todo el mecanismo es deberán asignárseles 2 paginas (8k), con lo
transparente al usuario. que quedan 3K sin utilizar.
Se libera al programador de la restricción de La suma de los espacios libres dejados de
programar para un tamaño físico de esta forma puede ser mayor que el de varias
memoria, con lo que s e aumenta su páginas, pero no podrá ser utilizado.
productividad. Se puede programar en
función de una memoria mucho más grande
a la existente.
Al no necesitarse cargar un programa Debe asignarse un tamaño promedio a las
completo en memoria para su ejecución, se páginas, evitando que si son muy pequeñas,
puede aumentar el número de programas se necesiten TABLAS BMT y PMT muy
multiprogramándose. grandes, y si son muy grandes, se
incremente el grado de fragmentación
interna.
Es posible comenzar a ejecutar un
programa, cargando solo una parte del
mismo en memoria, y el resto se cargara
bajo la solicitud.

10
Segmentación
Ventajas Desventajas
El programador puede conocer las unidades Hay un incremento en los costos de
lógicas de su programa, dándoles un hardware y de software para llevar a cabo la
tratamiento particular. implantación, así como un mayor consumo
de recursos: memoria, tiempo de CPU, etc.
Es posible compilar módulos separados Debido a que los segmentos tienen un
como segmentos el enlace entre los tamaño variable se pueden presentar
segmentos puede suponer hasta tanto se problemas de fragmentación externas, lo
haga una referencia entre segmentos. que puede ameritar un plan de reubicación
de segmentos en memoria principal.
Debido a que es posible separar los módulos Se complica el manejo de memoria virtual,
se hace más fácil la modificación de los ya que los discos almacenan la información
mismos. Cambios dentro de un módulo no en bloques de tamaños fijos, mientras los
afecta al resto de los módulos. segmentos son de tamaño variable. Esto
hace necesaria la existencia de mecanismos
más costosos que los existentes para
paginación.
Es fácil el compartir segmentos. Al permitir que los segmentos varíen de
tamaño, puede ser necesarios planes de
reubicación a nivel de los discos, si los
segmentos son devueltos a dicho
dispositivo; lo que conlleva a nuevos costos.
Existe la posibilidad de definir segmentos No se puede garantizar, que al salir un
que aún no existan. Así, no se asignara segmento de la memoria, este pueda ser
memoria, sino a partir del momento que sea traído fácilmente de nuevo, ya que será
necesario hacer usos del segmento. necesario encontrar nuevamente un área de
memoria libre ajustada a su tamaño.
La compartición de segmentos permite La compartición de segmentos requiere de
ahorrar memoria. mecanismos adicionales de hardware y
software.

Fragmentación
Ventajas Desventajas
La fragmentación externa se puede reducir La fragmentación externa o checkboarding,
mediante la compactación para colocar toda desperdicia la memoria correspondiente a
la memoria libre en un solo gran bloque. los huecos.
En cuanto a la elección del tamaño del
bloque, si el tamaño del bloque es muy
grande, aun cuando el archivo sea de un
Se puede elegir un tamaño de bloque lo tamaño muy pequeño, se le asignará el
suficientemente pequeño para no bloque entero con lo que se desperdiciará
desperdiciar capacidad del disco pero lo gran parte de la capacidad del disco.

11
suficientemente grande como para no Si el tamaño del bloque es demasiado
ralentizar en exceso la lectura de los pequeño para almacenar un archivo, harán
archivos. falta muchos bloques con lo que se
producirá un retraso en la lectura del
archivo al tener que localizar en el disco
todos los bloques que componen dicho
archivo.

9. Si el proceso empieza hacer hiperpaginación frecuentemente ¿qué debe hacer el


arquitecto del proceso para mejorar la situación?
Si el número de marcos asignados a un proceso de baja prioridad desciende por
debajo del número mínimo requerido por la arquitectura del computador, debemos
suspender la ejecución de ese proceso. Luego debemos descargar sus páginas restantes,
liberando los marcos asignados. En general, cualquier proceso que no cuente con
marcos suficientes provocará fallos de página muy frecuentemente. Si se reemplazan
páginas que a su vez están activas, estaremos sustituyendo una página que casi de
inmediato se volverá a necesitar. Por tanto, pronto vuelve a generarse otro fallo de
página, ocurriendo esto una y otra vez. A esta altísima actividad de paginación se le
llama hiperpaginación (thrashing). Un sistema está en hiperpaginación si emplea más
tiempo paginando que ejecutando.
El arquitecto del proceso puede limitar los efectos de la hiperpaginación
utilizando un algoritmo de reemplazo local (o por prioridades). Con el reemplazo local,
si un proceso comienza a hiperpaginar, no puede robar marcos de otro proceso y
provocar que este también entre en hiperpaginación. Sin embargo, si los procesos están
en hiperpaginación, la mayor parte del tiempo pueden encontrarse en la cola del
dispositivo de paginación. El tiempo promedio de servicio de un fallo de página
aumenta y, por tanto, el tiempo efectivo de acceso aumenta incluso para un proceso que
no esté en hiperpaginación.
Para evitar la hiperpaginación debemos ofrecer a un proceso todos los marcos
que necesita; pero, ¿cómo sabemos cuántos necesitan? Para saberlo se utilizan técnicas
como el modelo del conjunto de trabajo, que se basa el concepto de localidad de la
ejecución de procesos.

12
10. Los procesos múltiples ¿cómo usan los archivos asignados en memoria?
Los archivos asignados en memoria logran hacer que procesos diferentes puedan
compartir un área de memoria común. En los sistemas operativos modernos de modo
protegido, cada proceso no puede acceder al espacio de memoria asignado a otros procesos.
Hay varias estrategias disponibles para compartir memoria con seguridad y el uso de
archivos asignados en memoria es una de ellas. Para ello, dos procesos (que pueden ser dos
programas diferentes o dos instancias de un mismo programa), acceden a un archivo
conocido por ambos que cada uno de los procesos proyecta sobre su respectivo espacio de
memoria, de modo que cada proceso puede ir leyendo en su espacio de memoria las
modificaciones que haya llevado a cabo el otro proceso. Por ejemplo, el sistema operativo
Microsoft Windows proporciona un mecanismo para que las aplicaciones proyecten en
memoria un segmento compartido del archivo de paginación del sistema, con lo que varios
programas pueden compartir datos accediendo a ese segmento.

13
Conclusión

Luego de haber estudiado la administración de memoria, se pudo conocer que


los sistemas más simples no realizan intercambios ni paginaciones. Una vez que se
carga un programa en la memoria, permanece ahí hasta que termina. Algunos sistemas
operativos sólo permiten un proceso a la vez en la memoria, mientras que otros
soportan la multiprogramación.
Además se pudo notar que la técnica del intercambio se utiliza cuando el
sistema puede manejar más procesos de los que puede alojar en la memoria. Los
procesos para los cuales no haya espacio se intercambian hacia el disco. Se puede llevar
el registro del espacio libre en la memoria y en el disco con un mapa de bits o una lista
de huecos.
Frecuentemente, las computadoras modernas tienen cierta forma de memoria
virtual. En su forma más simple, el espacio de direcciones de cada proceso se divide en
bloques de tamaño uniforme llamados páginas, que pueden colocarse en cualquier
marco de página disponible en la memoria.
Para modelar los sistemas de paginación hay que abstraer la cadena de referencia
de página del programa y utilizar la misma cadena de referencia con distintos
algoritmos. Estos modelos se pueden utilizar para hacer algunas predicciones acerca del
comportamiento de la paginación.
Para hacer que los sistemas de paginación funcionen bien, no basta con elegir un
algoritmo; hay que poner atención en cuestiones tales como determinar el conjunto de
trabajo, la política de asignación de memoria y el tamaño de página.
La segmentación ayuda a manejar las estructuras de datos que pueden cambiar
de tamaño durante la ejecución, y simplifica la vinculación y la compartición. También
facilita la provisión de distintos tipos de protección para distintos segmentos. Algunas
veces la segmentación y la paginación se combinan para proporcionar una memoria
virtual bidimensional.

14
Bibliografías

 https://asirclaret-com.webnode.es/news/fragmentacion-interna-y-externa/

 Stallings William . Sistemas Operativos .. Editorial Prentice Hall

 "Sistemas Operativos Modernos" Andrew S. Tanenbaum. 1993. Prentice Hall.

 https://es.m.wikipedia.org/wiki/Archivo_proyectado_en_memoria

15

También podría gustarte