2. Objetivo del Curso
• El alumno comprenderá el
funcionamiento interno de los
sistemas operativos, y analizará las
técnicas empleadas para la
administración de los recursos:
procesador, memoria, dispositivos de
E/S y el sistema de archivos, de una
computadora.
3. Temario
• Terminología y Conceptos básicos de los
sistemas operativos
• Administración del procesador
• Administración de la memoria
• Administración de los dispositivos de entrada
y salida
• Administración de los sistemas de archivos
4. Referencias básicas
• Silberchatz. Operating System Concepts. Wiley.
Sexta Edición.
• Tanenbaum, Andrew. Operating systems, Design and
Implementation. Prentice Hall. 1997
• Tanenbaum, Andrew. Sistemas Operativos, Diseño e
Implementación. Prentice Hall Software Series.
• Milenkovic, Milan. Sistemas Operativos. Conceptos y
diseño. McGraw Hill.
• Tanenbaum, Andrew. Sistemas operativos Modernos.
Prentice Hall Hispanoamericana, 1993.
6. ¿Qué es un sistema operativo?
• Un programa que actúa como
intermediario entre el usuario y el
hardware de la computadora.
• Objetivos del Sistema Operativo:
– Proveer un ambiente en donde el usuario
pueda ejecutar programas y solucione sus
problemas de manera más fácil.
– Permitir el uso cómodo de la Computadora.
– Utilizar el hardware de la computadora de
una manera eficiente.
7. Componentes de una Computadora
1. Hardware. Proporciona los recursos básicos de una
computadora (CPU, memoria, dispositivos E/S).
2. Sistema Operativo. Controla y coordina el uso del
hardware entre diferentes aplicaciones para
diferentes usuarios.
3. Programa de Aplicación. Define la forma en que los
recursos del sistema son utilizados para resolver los
problemas computacionales del usuario
(compiladores, sistemas de bases de datos, video
juegos, etc).
4. Usuarios (personas, otras computadoras).
9. Perspectiva del usuario (1)
• PC.
– Los recursos sólo son utilizados por un usuario.
– S.O. diseñado con “facilidad de uso”.
– Cierta atención al funcionamiento, casi nula para
la utilización de los recursos.
• Mainframes.
– Recursos compartidos, intercambio de
información.
– S.O. diseñado para “maximizar la utilización de
los recursos”.
– Asegura que los tiempos disponibles de CPU,
memoria, E/S son utilizados eficientemente
10. Perspectiva del usuario (2)
• Estaciones de trabajo.
– Computadoras conectadas con servidores. Sus
usuarios cuentan con recursos dedicados a ellos
pero también los comparten
– S.O. diseñados con compromisos entre la
usabilidad y la utilización de recursos
• Handheld.
– Sistemas personales con limitaciones de poder e
interface
– S.O. diseñados para el uso individual.
11. Perspectiva del sistema
• Asignador de recursos.
– Administra y organiza los recursos.
• Programa de control.
– Control de los dispositivos de E/S y
programas de usuario para prevenir errores
y el mal uso de la computadora.
• Kernel.
12. Evolución de los sistemas operativos
• Sistemas Mainframe
– Las supercomputadoras fueron las primeras usadas
para resolver problemas comerciales o científicos.
De estas computadoras parte la evolución de los
S.O.
• Sistemas de procesamiento por Lotes (Batch)
– El usuario no interactuaba directamente con la
computadora.
– En cambio, el usuario preparaba un trabajo y lo
introducía a la computadora (tarjetas perforadas).
Después se obtenía un resultado impreso
generalmente en papel.
13. Sistemas de procesamiento por Lotes (Batch)
• Para acelerar el procesamiento se desarrolló el
sistema de procesamiento por lotes
– La idea era colectar un grupo de trabajos (batch) y luego
introducir el lote completo a la computadora
• Los sistemas operativos en esta época eran muy
simples y el trabajo principal del S.O. era transferir el
control de manera automática de un trabajo a otro.
• Al terminar con todo el lote, un operador retiraba las
cintas de entrada y salida, introducía la nueva cinta
con el Lote e imprimía la cinta de salida.
16. Sistemas de Multiprogramación
• Con la mejoría de la tecnología y la introducción
de los discos se tuvieron dispositivos más
rápidos de E/S.
– Permitió a los sistemas operativos almacenar los
trabajos en dichos discos en lugar de cintas o tarjetas
perforadas
• Esto permitió a los S.O. acceder directamente a
varios trabajos por lo que se incluyeron
algoritmos de calendarización de los trabajos,
con el propósito de realizar las tareas y usar los
recursos eficientemente.
17. Sistemas de Multiprogramación
• Uno de los aspectos más importantes de la
multiprogramación es la calendarización de
trabajos.
• La multiprogramación incrementa la utilización
del CPU mediante la organización de los
trabajos de tal forma que siempre hay un
proceso para ejecutar.
• La idea es partir la memoria en varias partes,
con un trabajo distinto en cada partición
– Mientras que un programa esperaba a que terminara
la operación de E/S, otro podría utilizar la CPU
18. Sistemas de Multiprogramación
• No obstante, el número de particiones que se podían
hacer en memoria era muy inferior a la cantidad de
trabajos que se podían almacenar en los discos.
• Entonces otra característica de esta generación de S.O.
fue la utilización de SPOOLING (Simultaneous
Peripheral Operational On Line), que consistía en poder
cargar del disco un nuevo trabajo cuando concluía otro.
• La multiprogramación es de las primeras instancias en
donde el S.O. tiene que tomar una decisión por el
usuario.
19. Sistemas de Multiprogramación
• Si varios procesos están listos para ser
cargados a la memoria y no hay suficiente
memoria, el S.O. debe escoger entre ellos.
(calendarización de procesos)
• Si se tienen varios procesos en memoria
entonces es necesaria una Administración de la
memoria
• Si varios procesos están listos para ejecutarse
al mismo tiempo, es necesaria entonces una
Calendarización del CPU
21. Sistemas de multiprogramación
• Qué pasa cuando tenemos un proceso
que por mucho tiempo no necesita
realizar operaciones de entrada/salida
• Conforme el uso de la computadora
evolucionó a un modo mucho más
interactivo la multiprogramación por sí
sola ya no satisfacía
22. Multitarea cooperativa
• Procesos o tareas que ceden
voluntariamente tiempo a otros
procesos
• Qué pasaba si un proceso que tenía la
CPU se “colgaba”
– Colapso del sistema
23. Sistemas de tiempo compartido
• Los sistemas de tiempo compartido o Multitarea son
una extensión lógica de la multiprogramación.
• La CPU ejecuta múltiples trabajos intercambiando
entre uno y otro, pero el intercambio es tan frecuente
que el usuario puede interactuar con cada programa
mientras se ejecuta.
– El tiempo compartido es otorgado por el hardware y el S.O.
• Por lo tanto, un S.O. multitareas permite a muchos
usuarios compartir la computadora simultáneamente.
24. Tiempo compartido
• En un sistema de tiempo compartido cada
acción y comando sólo necesita tiempos
cortos de CPU para cada usuario.
• De esta forma, mientras el sistema cambia
rápidamente de un usuario a otro, da la
impresión que todo el sistema está dedicado
para su uso.
• “Reparto equitativo” de los recursos
25. Tiempo Compartido
• Un SO de tiempo compartido debe utilizar
calendarización del CPU y multiprogramación
para proporcionarle a cada usuario una
pequeña porción del tiempo del sistema.
• Al programa cargado en la memoria y que se
está ejecutando se le llama Proceso.
• Los procesos pueden necesitar operaciones
de E/S, en ese lapso el SO le asigna el
procesador a algún otro usuario.
26. Tiempo compartido
• Los SO de tiempo compartido
necesitan administración y protección
de la memoria.
• Para mantener tiempos de respuesta
razonables, los procesos pueden ser
cargados y descargados (swap) de la
memoria principal hacia el disco, el cual
sirve como un almacén temporal para
la memoria.
27. Tiempo compartido
• Memoria Virtual
– Es una técnica común para lograr el “swap”.
– Permite la ejecución de un proceso que no puede
ser completado en la memoria.
• La principal ventaja de la memoria virtual es que los
programas pueden ser más grandes que la memoria
física.
• Memoria virtual abstrae la memoria principal en un
gran arreglo uniforme de almacenamiento,
separando la memoria lógica vista por el usuario de
la memoria física.
28. Tiempo compartido
• Los sistemas de TC deben proporcionar un
sistema de archivos.
– Necesario una administración de archivos
• También, proporcionan un mecanismo para
la ejecución concurrente, lo que requiere de
esquemas complejos de calendarización del
CPU
• Para asegurar la ejecución ordenada, el
sistema debe proporcionar mecanismos para
la sincronización y comunicación de
procesos.
30. Repaso
• ¿Qué es un S.O.?
• Perspectivas del usuario
– Mainframe, PC, estaciones de trabajo,
handheld
• Evolución de los sistemas operativos
– Mainframe
• Procesamiento por lotes
• Multiprogramación
• Tiempo compartido
31. Sistemas de Escritorio
• Las PC aparecieron en 1970. Al principio los
S.O. de estos sistemas no fueron ni
multiusuarios ni multitareas.
• Los principales objetivos de estos sistemas
es maximizar la conveniencia y tiempo
respuesta.
• Pueden adoptar tecnología desarrollada para
S.O. “grandes” (mainframes)
• Dado que el usuario no tiene que compartir el
CPU, su máxima utilización ya no es una
preocupación primaria
32. Sistemas Multiprocesadores
• La mayoría de los sistemas actuales son de
un solo procesador.
• Sin embargo los sistemas que tienen más de
un procesador (sistemas paralelos o
multiprocesadores) cada día crecen más en
importancia.
• Principales Ventajas
– Incremento del rendimiento
– ¿Economía en escalabilidad?
– Confiabilidad, tolerancia a fallas
33. Sistemas Multiprocesadores
• Multiprocesamiento simétrico (SMP)
– Cada procesador ejecuta una copia idéntica del
sistema operativo.
– Muchos procesos pueden correr al mismo tiempo
(tantos procesos como procesadores) afectando
poco el desempeño.
– Este tipo de sistemas permite compartir
dinámicamente los procesos y recursos entre
varios procesadores.
– La mayoría de los sistemas modernos soportan
SMP
34. Sistemas Multiprocesadores
• Multiprocesamiento asimétrico
– Cada procesador tiene asignada una tarea
– Un procesador maestro controla el sistema
• Calendariza y asigna procesos a cada
procesador esclavo.
– Común en sistemas extremadamente
grandes
35. Sistemas Distribuidos
• Los sistemas distribuidos están basado en las redes de
computadoras y su funcionalidad depende del trabajo
en redes.
• Cada procesador tiene su propia memoria local.
• Los procesadores se comunican entre ellos utilizando
las redes de comunicaciones.
• Existen sistemas cliente-servidor o “peer to peer”
• Sistema operativo de red, proporciona características
de trabajo en red, incluye esquemas de comunicación
que permite a diferentes procesos en diferentes
computadoras intercambiar mensajes.
36. Sistemas en grupos (Cluster)
• Al igual que en lo sistemas paralelos, los
clusters de computadoras agrupan múltiples
CPU’s para realizar un trabajo computacional.
• Una capa de software se ejecuta en cada
nodo del cluster. De esta manera, cada nodo
puede monitorear uno o más de los otros
nodos.
• Dos tipo de clustering
– Asimétrico (Un monitor para el servidor activo)
– Simétrico (Todos se monitorean entre ellos)
37. • Tarea 1
– Características de los sistemas operativos
durante la evolución histórica
• Tarea 2
– Características de los sistemas operativos
de tiempo real
41. Repaso
• Sistemas de escritorio
• Multiprocesadores
– Simétrico y asimétrico
• Sistemas distribuidos
• Sistemas en cluster
• Sistemas portátiles
42. Estructura de los sistemas de computadora
• Necesitamos tener una idea general de la estructura
de un sistema computacional antes de poder
explorar los detalles de su funcionamiento.
• Un computadora moderna de propósito general
consiste de un CPU y un número controladores de
dispositivos que están conectados mediante un bus
común el cual proporciona acceso a la memoria
compartida.
• Cada controlador de dispositivo está a cargo de un
dispositivo en particular.
44. Operación del sistema
• Cuando una computadora se inicia, necesita
un programa inicial para continuar.
– Programa de arranque (Bootstrap), generalmente
almacenado en una ROM, como “firmware” o
“eeprom”
– Inicializa todo el sistema
– El programa de arranque debe saber cómo cargar
el sistema operativo y ejecutarlo.
• Debe asignar y cargar en la memoria el kernel
• La ocurrencia de un evento es normalmente
marcada por una interrupción ya sea del
hardware o del software
45. Interrupciones
• El hardware dispara (trigger) una interrupción
enviando una señal al procesador por medio del bus
del sistema.
• El software dispara una interrupción ejecutando un
programa especial, “llamada al sistema”.
• Los sistemas operativos modernos se rigen mediante
interrupciones.
• Los eventos, por lo general son marcados por la
ocurrencia de una interrupción o “trap” (excepción)
46. Interrupciones
• Cuando el CPU recibe una interrupción, se detiene de lo que
hace y transfiere su ejecución a otro lugar.
• Cada interrupción cuenta con una “rutina de servicio de
interrupción” quien es responsable de manejar a dicha
interrupción.
• Para el manejo de las interrupciones se usa una tabla de
apuntadores a las rutinas de interrupciones. Esta tabla (Vector
de Interrupciones) refiere a la rutina de interrupción
correspondiente a una interrupción.
• El Vector de Interrupciones se almacena en la memoria baja y
almacena las direcciones de las rutinas de servicio.
47. Estructura de E/S
• Controladores de dispositivos. Cada controlador tiene
a su cargo un tipo de dispositivo.
• Síncrono. Una vez que una operación de E/S es
inicializada, el control regresa al usuario hasta que se
completa la operación de E/S.
– Existe un instrucción especial de espera (wait) que paraliza
al CPU hasta la siguiente interrupción
– Computadora que no cuentan con la instrucción “Wait”
tienen un ciclo “wait”.
– A lo más una petición de E/S es atendida a la vez,
impidiendo el procesamiento simultáneo de E/S.
48. Estructura de E/S
• Asíncrono. Una vez que una operación de E/S es
inicializada, el control regresa al usuario sin esperar
que se complete la operación de E/S.
– Llamada al sistema. Se efectúa para permitir al programa
del usuario esperar por la finalización de la operación de
E/S, si así se desea.
– Si no es necesario ejecutar algún programa o el sistema
operativo no tiene trabajo por hacer entonces se utiliza la
instrucción wait.
– Para manipular varias operaciones E/S, el S.O. utiliza una
“Tabla de Estado de Dispositivo”. Cada registro de esta
tabla indica el tipo de dispositivo, dirección y estado.
50. Estructura de E/S
• Un dispositivo E/S produce una interrupción
cuando necesita un servicio.
• Cuando la interrupción ocurre, el S.O.
determina primero cuál dispositivo de E/S
causó la interrupción.
• Entonces enlista la tabla de estado de
dispositivos para saber el estado del
dispositivo
• Modifica la tabla para reflejar la ocurrencia de
la interrupción
52. Estructura DMA
• Así como existen dispositivos de E/S que
envían información de manera muy lenta,
permitiendo que la CPU pueda ejecutar otras
operaciones, existen dispositivos de E/S de
alta velocidad
• Estos dispositivos transmiten información a
una velocidad cercana a la velocidad de la
memoria. Esto deja poco tiempo al
procesador para ejecutar otras operaciones.
• Para resolver este problema se utiliza DMA
(Direct Access Memory).
54. Repaso
• Estructura de los sistemas de cómputo
• Entrada/salida
– Interrupciones
– Síncrono/asíncrono
– Tabla de estado de dispositivo
– DMA
55. Estructura de Almacenamiento
• Para ser ejecutados, los programas deben
estar en la memoria principal o RAM.
• La RAM es la única memoria que el
procesador puede acceder directamente.
• La interacción se logra mediante la secuencia
de instrucciones “load” y “store”.
– La instrucción load mueve una palabra de la
memoria RAM hacia un registro interno del CPU,
mientas que store mueve el contenido de un
registro hacia la memoria RAM.
56. Memoria volátil y almacenamiento secundario
• Idealmente se quiere que los programas y
datos residan en la memoria RAM
permanentemente, pero
– La memoria RAM es usualmente muy pequeña
para almacenar todos los programas y datos
necesarios permanentemente.
– La memoria principal es un almacén volátil que
pierde su contenido cuando se apaga la fuente de
poder.
• Es por esto que casi todos los sistemas
deben proveer un almacén secundario como
una extensión de la memoria principal.
57. Estructura de almacenamiento
• El dispositivo secundario de almacenamiento
más común es el disco magnético.
• La mayoría de los programas son
almacenados en disco hasta que se cargan a
la memoria principal.
• Sin embargo, la memoria RAM, los discos
magnéticos, los registros son algunas de las
muchas formas posibles de almacenamiento
– Memoria caché, CD-ROM, cintas magnéticas, etc
58. Memoria principal
• Como ya hemos mencionado, el CPU solo puede
acceder directamente a la memoria RAM y sus
registros internos.
• En el caso de los dispositivos de E/S, sus
controladores contienen registros que almacenan
comandos o datos a transferir entre la memoria y
esos registros.
• Para permitir un acceso más conveniente a los
dispositivos de E/S muchas arquitecturas
proporcionan correspondencia de memoria de E/S
(memory-mapped I/O).
59. Memory-mapped
• Se establecen rangos de direcciones de
memoria y se crea un correspondencia entre
éstos y los registros de los dispositivos.
• Leer y escribir de estos rangos de memoria
implica que la información sea transferida
desde o hacia los registros.
• La correspondencia de memoria es muy
utilizada para dispositivos como los puertos
paralelos y seriales. Los registros de estos
dispositivos son llamados puertos de E/S
60. Programmed I/O (PIO)
• Entonces cuando el CPU escribe información en el
registro activa un bit para indicar que esa información
puede ser transferida.
• El dispositivo toma la información y cambia el bit del
registro para indicar que está listo para la siguiente
transferencia.
• Si el CPU “encuesta” para saber el estado del bit de
control se le llama Programmed I/O (PIO)
• Si el CPU no utiliza la encuesta para saber del bit de
control, sino en cambio recibe una interrupción
cuando el dispositivo está listo para la siguiente
transferencia, entonces la transferencia es guiada
por interrupción
61. Discos Magnéticos
• Rotan entre 60 y 200 veces
por segundo
• Tasa de transferencia.
Velocidad con la que
transfiere información.
• Tiempo de posicionamiento
(tiempo de acceso aleatorio).
Tiempo que le toma mover el
brazo hacia el cilindro
deseado.
• Latencia de rotación. Tiempo
en que el sector llega a la
cabeza de lecto-escritura.
62. Jerarquía de almacenamiento
• De acuerdo a la
rapidez y el costo.
• Los niveles altos
son muy caros
pero muy rápidos.
• Los sistemas
arriba de los
discos electrónicos
son volátiles y los
que están por
debajo son No-
volátiles.
64. Repaso
• Estructura de los sistemas de cómputo
• Entrada/salida
– Interrupciones
– Síncrono/asíncrono
– Tabla de estado de dispositivo
– DMA
• Almacenamiento
– Memoria volátil y secundaria
– correspondencia de memoria de E/S
– Programmed I/O
– Discos
– Jerarquía de almacenamiento
65. Memoria caché
• No obstante la rapidez de la memoria principal, el
acceso a su información puede tomar varios ciclos
del CPU
• El remedio para esto es agregar más memoria entre
el CPU y la memoria principal. A esta memoria se le
llama memoria caché.
• Cuando el CPU necesita información lo que hace es
examinar si se encuentra en la caché. Si se
encuentra la utiliza. Sino toma la información de la
memoria principal y pone una copia en la caché.
• El principal uso de la memoria caché es almacenar
datos que han sido utilizados recientemente y que
próximamente se usarán de nuevo.
66. Caché
• Dado que la memoria caché tiene un limite
de tamaño, es importante tener una buena
administración de la caché
• Generalmente, la transferencia de
información entre caché, CPU y los registros
es una función de hardware sin la
intervención del S.O.
• Por otro lado la transferencia entre disco y
memoria principal es controlada por el S.O.
67. Coherencia de caché
• Suponga que quiere incrementar el valor de A y A se encuentra en
un archivo en disco.
• Se realizan varias copias de A hasta que finalmente se copia en un
registro de CPU para su incremento.
• Una vez que se ha incrementado el valor de A existen diferentes
copias con valores diferentes de A.
• Imagine qué pasa en un sistema multitarea si varios procesos
quieren obtener el valor reciente de A.
• Imagine qué pasa en un sistema de multiprocesadores donde cada
procesador tiene su propia memoria caché.
• Asegurar que el último cambio de A en una caché sea
inmediatamente reflejado en todas las demás se le llama Cache
Coherency.
68. Protección de Hardware
• Operación de modo dual
– Para asegurar un buena operación, el SO
y los programas del usuario deben estar
protegidos de cualquier error o
malfuncionamiento
– Para recursos compartidos es necesaria la
protección de los mismos.
– Los SO proporcionan soporte especial al
Hardware que le permite distinguir entre
modos de ejecución
69. Modos de ejecución
• Al menos se necesitan dos modos de
operación: modo usuario y modo monitor
(protegido)
• Un bit, llamado bit de modo, se agrega al
hardware de la computadora para indicar el
modo actual: monitor (0) o usuario (1).
• Con el bit de modo, se puede distinguir entre
una tarea ejecutada para el usuario y una
ejecutada para el S.O.
70. Modos de operación
• Cuando una computadora inicia, el hardware se pone
en modo protegido, entonces el sistema operativo se
carga y empieza los procesos del usuario en modo
usuario.
• Cuando una interrupción o llamada al sistema ocurre,
el hardware cambia de modo usuario o modo
protegido. Entonces, cuando el SO toma el control de
la computadora lo hace en modo protegido.
• El sistema siempre cambia al modo usuario antes de
pasar el control a los programas del usuario.
71. Instrucciones protegidas
• La operación dual, nos permite proteger al
SO de usuarios “errantes” y entre ellos.
• Dicha protección se logra designando a
algunas instrucciones de máquina que
podrían causar daño, como instrucciones
“privilegiadas”.
• El hardware permite la ejecución de las
instrucciones privilegiadas solamente en
modo protegido.
72. Protección E/S
• Un programa de usuario puede terminar
abruptamente al realizar alguna operación
ilegal de E/S.
• Para prevenir al usuario de incurrir en
operaciones ilegales de E/S, se definen todas
éstas como instrucciones protegidas
• Por lo tanto, el usuario no puede manipular
instrucciones E/S directamente sino a través
del sistema operativo.
73. Protección de la memoria
• Otro aspecto que se debe proporcionar para
asegurar la correcta operación de un S.O. es
la protección de la memoria.
• Esta protección al menos se debe hacer para
el vector de interrupciones y las rutinas del
servicio de interrupciones.
• Para separar cada espacio de memoria para
los programas, se debe poder determinar los
rangos de direcciones legales que los
programas debe acceder.
74. Registro base y límite
• Esta protección se establece manejando dos
registros, usualmente llamados registro base
y registro límite.
• El registro base establece la dirección de
memoria física legal más pequeña
• El registro límite contiene el tamaño del
rango
– Ejemplo: si el registro base es de 300040 y el
registro límite es de 120900 entonces el programa
puede acceder legalmente las direcciones entre
300040 y 420940 inclusive.
75. Protección de la memoria
• La protección se completa
al comparar el CPU cada
dirección generada en
modo usuario con los
registros
• Cualquier intento de un
programa ejecutándose en
modo usuario de acceder
a la memoria de modo
restringido u otra espacio
de memoria de usuario
genera una excepción
para el monitor.
76. Protección del CPU
• Además de la protección a E/S, memoria, se
debe asegurar que el S.O. siempre mantenga
el control.
• Se debe prevenir que un programa de
usuario se quede “atorado” en un ciclo infinito
y nunca regresar el control al S.O.
• Para lograr lo anterior se utiliza un
temporizador (timer). Un temporizador puede
interrumpir al CPU después de un periodo
determinado
77. Protección del CPU
• El período puede ser fijo o variable.
• El temporizador variable generalmente se
implementa por un reloj y un contador
• De esta manera a cada programa se le asigna un
tiempo límite para ejecutarse.
• Cuando el programa inicia su ejecución, el contador
empieza a decrementarse cada ciclo de reloj.
• Mientras el contador sea positivo el control es
devuelto al programa de usuario. Cuando se hace
negativo, el S.O. termina el programa por exceder su
tiempo límite asignado.
78. Temporizadores
• Un uso más común del temporizador es
para implementar el tiempo compartido.
• En el caso más directo, el temporizador
interrumpe cada N milisegundos, donde
N es la ranura de tiempo que cada
usuario puede ejecutar su programa
antes de que el siguiente usuario tome
el control del CPU.
79. Resumen
• Un sistema operativo debe proporcionar el
ambiente dentro del cual se ejecutan los
programas.
• Según el tipo de objetivos planteados para un
S.O. es el diseño y estructura del mismo.
• No obstante, los S.O. deben contar con
ciertos componentes comunes para ofrecer
sus servicios tanto a usuarios, como a
programadores.
82. Estructura de Sistemas
• Sistemas tan grandes y complejos como los
S.O. deben ser diseñados cuidadosamente
para su correcto funcionamiento y su fácil
modificación
• Encontramos, entre los diseños, las
siguientes estructuras
– Simple
– Capas
– Microkernel
83. Estructura simple
• Muchos sistemas comerciales no tiene
una estructura muy bien definida
• MS-DOS es un ejemplo. Fue hecho
para proporcionar la mayor
funcionalidad en el menor espacio.
• En consecuencia, no fue dividido en
módulos de manera correcta
85. Unix
• UNIX en un principio consistía de dos partes
separables: el kernel y los programas del
sistema
• Entonces el kernel proporciona,
administración de archivos, calendarización
de CPU, administración de memoria, etc. por
medio de las llamadas al sistema. Mucha
funcionalidad combinada para un solo nivel!
• Esto hizo a UNIX difícil de mejorar, ya que un
cambio en una sección podía afectar otra.
87. Estructuras en capas
• La modularización de un sistema se puede hacer de
diferentes maneras, una de ellas es en capas.
• La capa más baja es el hardware y la más alta es la
interfaz de usuario.
• Una capa de un S.O. es la implementación de un
objeto abstracto el cual encapsula datos y
operaciones que manipulan esos datos.
• Típicamente una capa M consiste de estructuras de
datos y rutinas que pueden ser llamadas por las
capas superiores.
• A su vez, la capa M llama operaciones de las capas
inferiores.
88. Estructura en capas
• La principal ventaja de este esquema es que las
capas son diseñadas para que sólo utilicen funciones
de las capas inferiores.
• Esto permite una verificación y rastreo del sistema
más sencilla.
• Una capa no necesita saber cómo se implementas
las funciones, sino qué hacen las funciones.
• Cada capa esconde la existencia de ciertas
estructuras de datos, operaciones y hardware de las
capas superiores.
90. Problemas de la estructura en capas
• La mayor dificultad en este esquema es el cuidadoso
diseño de lo que deben hacer las capas.
– Por ejemplo: el manejador de espacio de disco utilizado por
los algoritmos de memoria virtual debe estar en un nivel
inferior que las rutinas de administración de la memoria, por
que la administración de la memoria requiere la habilidad de
usar espacio de disco.
• Este esquema tiende a ser menos eficiente que
otros.
– En cada capa es necesaria la modificación de parámetros,
pase de información, etc. Cada capa agrega una
sobrecarga a las llamadas al sistema.
92. Microkernels
• Conforme crece un S.O. su kernel se vuelve más
grande y difícil de manejar.
• A mediados de los 80’s investigadores de Carnegie
Mellon University desarrollaron un S.O. llamado
Mach que organiza en módulos el kernel utilizando
un esquema de microkernel.
• Este método reestructura un S.O. removiendo todos
los componentes no esenciales del kernel e
implementándolos en programas a nivel del sistema
o de usuario.
93. Estructura en Microkernel
• La función principal de un microkernel es
proporcionar una facilidad de comunicación
entre el programa cliente y los diferentes
servicios que también están corriendo en el
espacio de usuario.
• Por ejemplo, si el programa cliente desea
acceder a un archivo, entonces debe
interactuar indirectamente con el servidor de
archivos mediante el pase de mensajes a
través del microkernel.
94. Beneficios de los microkernel
• Fácil extensión del microkernel
– Nuevos servicios se agregan al espacio del
usuario y no requieren modificar el kernel
• Portabilidad del S.O. a nuevas arquitecturas
• Mayor fiabilidad y seguridad. Dado que la
mayoría de los servicios corren como
procesos de usuario en vez del sistema.
95. Tarea
• Investigar características de sistemas
operativos Monolíticos y Microkernel.
Dar ejemplos de sistemas operativos
con esta estructura.