2. Datos de contacto
Docente: M.C. Arlem Aleida Castillo Avila
Áreas de interés: HCI, XAI, Tecnología educativa.
DSAE - BUAP
arlem.castillo@alumno.buap.mx
arlemaleida.castilloavila@viep.com.mx
acastillo2301@gmail.com
3. Objetivos
Que el alumno describa e identifique los elementos involucrados en la forma en la que el sistema operativo
gestiona memoria, archivos y dispositivos de entrada / salida en entornos centralizados y distribuidos.
• Reconocer las ventajas y desventajas de los sistemas operativos centralizados vs distribuidos.
• Explicar las diferentes técnicas que existen en el diseño de la gestión de memoria como la paginación y
segmentación
• Identificar los conceptos más importantes acerca de la implementación del sistema de archivos en un
sistema operativo, además de interpretar y comparar como se puede llevar a cabo la gestión del Sistema
de Archivos en los sistemas operativos.
• Identificar los diferentes mecanismos para la administración de los dispositivos de entrada y salida de los
sistemas operativos.
• Reconocer los conceptos básicos acerca de la gestión y la implementación de procesos en sistemas
distribuidos.
• Aplicar técnicas para la comunicación y sincronización entre procesos en ambientes distribuidos.
4. Contenido del curso
1. Gestión de memoria
2. Gestión de archivos
3. Entrada y Salida
4. Introducción a los Sistemas Operativos de múltiples procesadores
10. DISCO MEMORIA
•Para que un proceso sea ejecutado debe estar cargado en la memoria
principal
P1
P2
P3
P4
11. Asociación entre instrucciones y datos a direcciones de memoria
Formas:
• Tiempo de compilación
• Tiempo de carga
• Tiempo de ejecución
12. Administrador de memoria: lleva el registro del espacio para asignarse a los procesos
que lo necesiten y liberarlo cuando terminen.
Panorama del manejo de memoria
13.
14. Gestión de memoria en mono programación (mono usuario)
• Sólo hay un proceso en memoria
• Cada proceso debe contener los controladores de los dispositivos de entrada / salida que use.
• Tres formas de organizar la memoria (con un s.o. y un proceso de usuario)
15. Algoritmo de asignación en un sistema mono usuario
1. Almacenar la primera ubicación en la memoria del programa en un registro base
2. Poner el contador del programa igual a la dirección de la primera ubicación en la
memoria.
3. Leer la primera instrucción del programa
4. Incrementar el contador de programa con el número de bytes en la instrucción
5. ¿Ya se llegó a la última instrucción?
Sí → Detener la carga del programa
No → Continuar
6. ¿El contador del programa es mayor que el tamaño de la memoria?
Sí→ Detener la carga del programa
No → Continuar
7. Cargar la instrucción en la memoria
8. Leer la siguiente instrucción del programa
9. Ir al paso 4.
16. Multiprogramación: permite el entrelazado y el
solapamiento de la ejecución de más de un programa
de forma que se mantenga del modo más ocupado
posible todos los recursos
17. Particionamiento fijo
• La memoria se divide en partes fijas iguales
o diferentes.
• Las particiones son configuradas al encender
la computadora.
• Cada programa ocupa una partición
• Problema crítico: Protección del espacio de
la memoria del trabajo.
18. Algoritmo de asignación en una partición fija
1. Determinar el tamaño de la memoria solicitada por el trabajo.
2. ¿Es el tamaño del trabajo mayor al tamaño de la partición más grande?
Sí → Rechazar la carga.
No → Continuar.
3. Poner el contador en 1.
4. Mientras el contador sea menor o igual al número de particiones en la memoria
1. ¿Es el tamaño del trabajo mayor que el tamaño de la partición(contador)?
Sí → Incrementar el contador
No → ¿Está libre la partición(contador)?
Sí → Cargar el trabajo en la partición(contador)
No → Incrementar el contador
5. Ir al paso 1 para manejar el siguiente trabajo en línea.
19. ¿Cuáles son las ventajas y desventajas del algoritmo anterior?
¿Qué información necesita mantener el administrador de memoria
para hacer posible esa asignación?
20. • El número de particiones distintas determina el grado de
multiprogramación
• Problema: la fragmentación interna o memoria desaprovechada
dentro de una partición
• Una vez definidas las particiones, el s.o. necesita llevar la cuenta de
sus estados, libre o en uso para propósitos de asignación.
• El estado y los atributos de las particiones se recogen en una
estructura de datos llamada tabla de descripción de particiones
(TDP).
• Cada partición está descrita por su dirección inicial (base), su tamaño
y su estado. Los campos de la base y tamaño son fijos.
Particionamiento fijo
21. • Otra organización posible es asignar una cola de tareas a cada
partición en memoria y las tareas se incluyen en la cola de la
partición de memoria correspondiente a sus exigencias de
memoria
• Estrategias de asignación de particiones:
• Primer ajuste
• Mejor ajuste
Particionamiento fijo
24. Asociación entre instrucciones y datos a direcciones de memoria
Formas:
• Tiempo de compilación
• Tiempo de carga
• Tiempo de ejecución
25. La noción de un espacio de direcciones
Hay que resolver dos problemas para permitir que haya varias
aplicaciones en memoria al mismo tiempo sin que interfieran entre sí:
protección y reubicación.
Solución: Abstracción de memoria (espacio de direcciones).
• 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.
26. Registros base y límite
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 utilizaba en máquinas desde la CDC 6600 (la primera
supercomputadora del mundo) hasta el Intel 8088 (el corazón de la IBM PC original),
es equipar cada CPU con dos registros de hardware especiales, conocidos
comúnmente como los registros base y límite.
Cuando se ejecuta un proceso, el registro base se carga con la dirección física donde
empieza el programa en memoria y el registro límite se carga con la longitud del
programa.
27. Cada vez que un proceso hace referencia a la memoria el hardware de la CPU
suma de manera automática el valor base a la dirección generada por el proceso
antes de enviar la dirección al bus de memoria.
Al mismo tiempo comprueba si la dirección ofrecida es igual o mayor que el valor
resultante de sumar los valores de los registros límite y base, en cuyo caso se
genera un fallo y se aborta el acceso.
34. Un sistema operativo implementa como método de gestión de memoria la asignación estática de
memoria particionada. En un instante determinado la tabla de descripción de particiones se encuentra
en el siguiente estado:
El gestor de memoria recibe, en este orden, las siguientes peticiones de diversos procesos: 50KB, 200KB,
100 KB, 70 KB, 400 KB, 200KB, 95 KB. Suponiendo que cada proceso permanece en memoria un máximo
de 50 ms.:
1. Describir el comportamiento del sistema si se sigue el algoritmo de asignación Primer ajuste.
2. Describir el comportamiento el sistema si se sigue el algoritmo de asignación Mejor ajuste.
3. Calcula la fragmentación media interna en cada uno de los casos anteriores. ¿Qué ocurre con la
fragmentación externa?
Ejercicio
35. Considerar un sistema con intercambio, en el que la memoria posee
particiones libres de tamaño fijo: 1000Kb, 400Kb, 1800Kb, 700Kb, 900Kb,
1200Kb y 1500Kb. Estos huecos están dispuestos en el orden dado. Se
tienen tres procesos de tamaños 1200Kb, 1000Kb y 900Kb.
Para los algoritmos:
- Primero en ajustarse
- Mejor en ajustarse
a) ¿Qué huecos serán asignados?
b)¿Qué algoritmo aprovecha mejor la memoria?
Ejercicio
37. Considerar un sistema con intercambio, en el que la memoria posee
particiones libres de tamaño fijo: 800Kb, 1400Kb, 1000Kb, 600Kb, 400Kb
y 1500Kb. Estos huecos están dispuestos en el orden dado. Se tienen tres
procesos de tamaños 100kb, 200Kb, 1400Kb, 600kb y 700Kb.
Para los algoritmos:
- Primero en ajustarse
- Mejor en ajustarse
a) ¿Qué huecos serán asignados?
b)¿Qué algoritmo aprovecha mejor la memoria?
Ejercicio
38. 1. Crea un programa que cree procesos. El programa debe aceptar como
entrada el nombre del proceso y el tamaño de la memoria que requiere
el proceso.
2. Asigna cada proceso a una partición de memoria. Las particiones de
memoria deben ser de tamaños fijos.
3. Gestiona el cambio de contexto entre procesos. El programa debe
poder cambiar de contexto entre procesos de manera eficiente.
4. Gestiona la memoria. El programa debe poder administrar la memoria
de manera eficiente, liberando la memoria que ya no es necesaria y
reasignando la memoria a los procesos que lo necesitan.
5. Ejecuta el programa. El programa debe poder ejecutar los procesos de
manera eficiente y sin errores.
Práctica 1