Documente Academic
Documente Profesional
Documente Cultură
de los sistemas
operativos actuales
Teodor Jov Lagunas
P05/75097/00811
Mdulo 8
ndice
Introduccin.............................................................................................
Objetivos ....................................................................................................
1. Conceptos generales...........................................................................
Introduccin
Objetivos
1. Conceptos generales
En este apartado nos disponemos a introducir dos conceptos que han influido
de manera decisiva en la evolucin de los sistemas operativos: el modelo cliente/servidor y los procesos multiflujo (multi-thread). Ambos se pueden aplicar a
cualquier tipo de SO, tanto si ste es de propsito general, como los que veremos en este mdulo didctico, como si se orientase a objetivos ms especficos. Ahora bien, estos conceptos han incidido de una forma especial en los
sistemas distribuidos y en los sistemas multiprocesador.
vicios externos a la mquina local. Adems de las tres situaciones mencionadas, se pueden considerar casos particulares a partir de uno ms general. A
partir de ahora nos centraremos en esta posibilidad.
Figura1
caso, cliente y servidor tienen que ser conscientes de la ubicacin de cada uno
de ellos, y tienen que transferir y presentar de manera explcita los parmetros
y la respuesta de la solicitud.
a) Una posibilidad consiste en tener ms de un servidor repartido en mquinas diferentes para implementar polticas tolerantes a fallos, o bien para ser
ms eficientes.
b) Otras posibilidades se centran en la estructura del propio servidor, como si
por ejemplo el servidor puede servir a ms de un cliente a la vez o no, o si el
servicio se tiene que realizar de manera sncrona con la ejecucin del cliente
(como haramos con la ejecucin de un procedimiento) o de manera asncrona, dejando que el cliente contine su ejecucin en paralelo con la realizacin
del servicio.
da/salida y un procesador asociado. Hasta ahora hemos supuesto que esta mquina virtual que configuran los procesos tena que ser monoprocesador, es
decir, que en cada momento slo poda alojar la ejecucin de una secuencia
de instrucciones (thread). Esta restriccin es puramente lgica y se ha hecho
por analoga con la mquina real sobre la cual se han construido los primeros
sistemas operativos.
La posibilidad de multiplexar el procesador y la existencia de mquinas multiprocesador ha planteado la necesidad de tener ms de un flujo de ejecucin
por proceso. En otras palabras, se ha pasado de mquina virtual monoprocesada a una multiprocesada (multi-thread).
Si analizamos las necesidades actuales de las aplicaciones, vemos que el hecho
de tener ms de un flujo por proceso es una evolucin natural del concepto de
proceso. Podemos darnos cuenta de esta necesidad simplemente mediante el
anlisis de las rutinas de servicio de las seales de software. En este caso podemos ver el proceso como un entorno multiflujo: nos encontramos con un flujo para la ejecucin normal, y otro para atender de manera asncrona las
seales que puedan llegar.
Un paso ms es la necesidad de ejecutar aplicaciones paralelas. Lo ms natural
es que esta aplicacin utilice el paradigma de la memoria compartida para co-
10
municar y sincronizar las diferentes secuencias paralelas. Con el concepto tradicional de proceso deberamos tener tantos procesos como secuencias, y se
tendran que reservar recursos para cada proceso. En cada cambio de contexto,
el sistema debera guardar todo el proceso y activar el nuevo. En definitiva, el
uso de procesos con un solo flujo provoca un aumento del uso de recursos y
tiempo de gestin del sistema.
Un ejemplo de aplicacin paralela son los servidores que debern tener la posibilidad de atender a ms de un cliente al mismo tiempo. En un sistema multiflujo podramos contar con un flujo que atendiese la llegada de nuevas
peticiones. Para cada nueva peticin tendra que crear un nuevo flujo que
atendiese a la peticin, y que se destruira al finalizar el servicio. El coste de
este servidor es menor que el de un servicio construido de acuerdo con procesos. ste es el caso de UNIX, en el que un proceso atendera las peticiones de
servicio, y para cada nueva peticin creara, mediante la llamada fork, un
nuevo proceso para atenderla.
Para que el sistema pueda gestionar ms de un flujo por proceso slo tenemos
que aumentar los elementos que lo configuran, los cuales estn apuntados en
el bloque de control de procesos (PCB). En concreto, para cada flujo de ejecucin el sistema tiene que proporcionar los siguientes elementos: un conjunto
de registros, una pila y un contador de programa.
Estos elementos, agrupados en un identificador de flujo, reflejarn en cada
instante el estado en que se encuentra la ejecucin del proceso.
11
Los sistemas operativos de tiempo real son sistemas que tienen que ofrecer servicio con unas restricciones temporales bien definidas: tienen
que dar una respuesta a determinados acontecimientos en un tiempo limitado y dentro de un periodo de tiempo concreto.
Las aplicaciones que se gestionan con sistemas operativos de tiempo real tienen que dar respuesta a acontecimientos externos, en general asociados a interrupciones. Si la respuesta no se da en un tiempo concreto, la ejecucin de
la aplicacin carece de sentido.
En general, los sistemas de tiempo real tienen que garantizar que la ejecucin
de las aplicaciones se inicie antes de un cierto intervalo de tiempo, y que debe
haber finalizado antes de que la accin que llevan a cabo deje de tener sentido.
As pues, un sistema de tiempo real, a diferencia de los sistemas interactivos o
de los de procesamientos por lotes, no slo tiene el objetivo de finalizar los trabajos en un tiempo ms o menos razonable, sino que lo tiene que hacer con
unas restricciones temporales. Para conseguirlo, la gestin que realizan tanto
el sistema como la mquina virtual que presenta los procesos tiene que ser, en
este caso concreto, diferente de la que hemos visto en los mdulos anteriores,
y prever los siguientes puntos:
Hay que facilitar mecanismos de comunicacin rpidos y flexibles que permitan cubrir todas las necesidades de las aplicaciones.
Como ejemplos
de entornos de trabajo...
... que utilizan sistemas operativos de tiempo real podemos encontrar: el control de procesos
industriales, los simuladores de
tiempo real, los equipos de telefona, el control de electrodomsticos, sistemas dedicados
a aplicaciones militares, etc.
12
13
Por el mismo motivo, se podra utilizar la memoria como dispositivo de almacenamiento, pero puede ser necesario un dispositivo de mayor capacidad y no tan
voltil como la memoria principal. Para que esto resulte viable, los sistemas de
tiempo real ofrecen un sistema de ficheros que suele sacrificar la optimizacin del
espacio para hacer el tiempo de acceso ms ajustado y regulado.
En la actualidad encontramos los sistemas de tiempo real como sistemas con un
objetivo especfico orientados a tareas muy concretas. A pesar de todo, tambin
hay sistemas de propsito general con extensiones de tiempo real. Por ejemplo,
el sistema VMS de la marca Digital es de este tipo.
Ejemplo de aplicacin de tiempo real
Supongamos un sistema de radar de un aeropuerto que capta seales de varios radares,
realiza una composicin y, en caso de detectar una posible colisin, avisa a los aparatos
implicados y a la torre de control. Si se produce la colisin, el sistema tiene que ofrecer
la posibilidad de proporcionar todos los datos que ha reunido para facilitar las investigaciones. As pues, el sistema podra estar formado por los siguientes procesos:
Figura 2
La figura...
... muestra los procesos posibles y sus prioridades relativas,
as como los mecanismos de
comunicacin y sincronizacin
que podran utilizar.
14
15
a) Multiprocesadores acoplados fuertemente, tambin conocidos como sistemas de memoria compartida. En este caso, cada procesador ve y, por lo tanto,
puede acceder de manera directa a la totalidad de la memoria.
b) Multiprocesadores acoplados dbilmente, tambin denominados sistemas
de memoria distribuida. Cada procesador slo puede acceder a una memoria privada. Los procesadores se comunican entre s por medio de mecanismos de paso de
mensajes.
Los multiprocesadores tambin se pueden clasificar segn la tipologa y las caractersticas de acceso de la red de interconexin que une los procesadores y
los mdulos de memoria, o los procesadores entre s. Sin embargo, vamos a
dejar este anlisis para un estudio arquitectnico de los multiprocesadores,
tema que, por otra parte, no es el objeto de esta asignatura.
16
17
paralelo en diferentes procesadores. Suelen trabajar en ejecucin diferida y dejan el trabajo interactivo para un sistema monoprocesador con menos prestaciones.
Los sistemas hipercubo constituyen un caso comn de sistemas supervisores.
Cada nodo de la red tiene un ncleo de SO que lleva a cabo la gestin de procesos y de la memoria e implementa los mecanismos de comunicacin mediante el paso de mensajes. La asignacin de procesadores a programas que se
tienen que ejecutar se suele hacer estrictamente a mano o con utilidades ex-
Sistemas hipercubo
Los sistemas hipercubo son sistemas de memoria distribuida
con una topologa de red de
interconexin en forma de hipercubo.
ternas al SO; despus, un cargador distribuye las diferentes tareas a cada procesador en funcin de la asignacin preestablecida.
2) El modelo maestro/esclavo
En este modelo, un procesador, el maestro, se encarga de ejecutar el sistema operativo mientras que el resto de los procesadores, los esclavos,
se dedican a ejecutar los procesos que el maestro les encarga. Los procesadores esclavos tienen capacidad para ejecutar llamadas elementales al
sistema; a pesar de todo, la mayor parte de los servicios los realiza el
maestro directamente.
18
19
Podramos definir el entorno distribuido como varios sistemas interconectados con una red que tienen la capacidad de cooperar y comunicarse
gracias a esta red y al software que la gestiona. Estos sistemas presentan las
siguientes caractersticas:
No disponen de memoria compartida.
Tienen el estado del sistema repartido entre los diferentes componentes.
Tienen los condicionamientos propios de redes de interconexin:
retrasos y fragilidad en la seguridad.
20
este hecho sea el que mayor impacto y repercusin ha tenido entre los usuarios de las redes.
b) La ejecucin de aplicaciones en paralelo.
3) La fiabilidad, la disponibilidad y la tolerancia a fallos: la interconexin
de muchos equipos informticos mediante una red abre las puertas a una serie
de tcnicas que hasta ahora se haban estado reservando a equipos muy especializados y caros.
La coexistencia de diferentes equipos hace posible la implementacin de tcnicas que aumenten la fiabilidad, como la duplicacin de clculos en ms de
un equipo y por mtodos diferentes, entre otros. La disponibilidad de equipos
independientes hace que la cada de uno no paralice la totalidad del sistema,
como ocurrira con un gran sistema aislado. En este caso, los usuarios aprecian
una disminucin del rendimiento, pero pueden continuar trabajando.
Otro aspecto de este mismo punto es la posibilidad de duplicar las funciones
y servicios, puesto que, de esta manera, se puede garantizar el funcionamiento
del sistema aunque una parte de ste haya fallado.
4) El crecimiento progresivo: la flexibilidad con que la red permite conectar
de manera gradual nuevos elementos hace posible llevar a cabo una poltica
de actualizacin y adaptacin a las circunstancias que no es viable en un sistema cerrado.
El crecimiento progresivo permite que, a medida que es necesario tener ms
potencia de clculo o una mayor capacidad de disco, se pueden ir incorporando al sistema sin tener que desecharlo y comprarlo de nuevo.
5) El rendimiento: para finalizar, el conjunto de ventajas anteriores hace que
el rendimiento global del sistema pueda ser elevado, e incluso superior en algunos puntos al que se obtendra con un sistema centralizado.
21
Figura 4
22
1) La ejecucin de procesos
Cuando se quiere ejecutar una aplicacin en un sistema cerrado no nos preocupa
desde dnde se ejecutar, ni cul o cmo ser el entorno de ejecucin. Esta situacin que parece obvia no lo es tanto cuando en nuestro sistema tenemos una red.
Acto seguido veremos diferentes situaciones que podemos encontrar en funcin
del grado de distribucin que posea el sistema que utilicemos:
a) Desde el sistema local, para ejecutar una aplicacin sobre una mquina
concreta del sistema nos tenemos que conectar mediante una operacin del
tipo telnet que nos abre una sesin completa sobre la mquina remota. Esta
sesin comporta un cambio completo de entorno: desde el punto de vista del
usuario, la mquina local desaparece para ser sustituida por la remota.
b) Desde el sistema local se puede dar la orden de ejecutar una aplicacin concreta sobre una mquina remota, por ejemplo mediante la operacin de UNIX
rsh (remote shell). El entorno del usuario contina siendo el de la mquina local, mientras que la mquina remota abre una sesin para ejecutar la aplicacin. La mquina remota tiene que poder acceder al ejecutable de la aplicacin
desde este nuevo entorno que configura la sesin. Ambos entornos, el de la
aplicacin y el del usuario, son diferentes y disyuntos.
c) Un paso ms en direccin a la distribucin lo constituye el hecho de que
el mismo sistema local tuviese una llamada al sistema crear_ proceso con un parmetro con el que poder especificar la mquina donde se quiere ejecutar la
aplicacin. Se podra suponer que esta llamada permite la transferencia de parte del entorno de ejecucin del usuario local a la mquina remota, como mnimo el ejecutable de la aplicacin. La diferencia principal con respecto de la
situacin anterior es que la distribucin la realiza directamente el SO, mientras
que en el caso anterior se haca mediante una aplicacin externa al SO.
d) Finalmente, en el sistema local nos encontramos la llamada al sistema
crear_ proceso, que localiza automticamente la mquina del sistema ms adecuada para realizar la ejecucin y crea un proceso. El entorno de ejecucin es
el mismo que tendra si la ejecucin fuese local y el usuario desconoce qu mquina ha ejecutado finalmente la aplicacin.
2) El sistema de ficheros
Cuando se accede a un fichero no se piensa en qu disco est, si est en un
disco o en la memoria, etc. El sistema nos gestiona los ficheros y los discos para
ofrecernos, as, las mejores prestaciones. El hecho de tener la red nos permite
compartir ficheros entre los usuarios de la misma. Cuando trabajamos en red
no sabemos exactamente dnde est el fichero, si lo tenemos que copiar, si se
encuentra en el formato adecuado para poder ser ejecutado, etc.
Veamos qu niveles de servicio nos puede ofrecer el sistema:
a) Si se quiere compartir un fichero remoto del sistema, el usuario tiene que copiarlo de manera explcita dentro del sistema local de ficheros y, para hacerlo, se
23
utiliza una aplicacin especfica como puede ser ftp. En tal caso, los sistemas de
ficheros local y remoto son totalmente disyuntos. La responsabilidad de saber
dnde se encuentran los ficheros, mantener la coherencia entre las copias que se
realicen, hacer conversiones de tipos de datos, etc. pertenece al usuario.
b) El sistema operativo tiene un espacio de nombres que incluye el nmero
de la mquina remota. En este caso, el usuario contina teniendo las mismas
responsabilidades que en el caso anterior, pero no es necesario que ejecute una
aplicacin externa para llevar a cabo la transferencia de ficheros, ya que el SO
se encarga de esto desde las llamadas al sistema.
c) Otra posibilidad nos la ofrecen entornos como el del sistema de ficheros
NFS (Network File System) de UNIX. Ahora el sistema ofrecer al usuario un nico espacio de nombres que integra los sistemas de ficheros de las mquinas de
la red. En este caso, el acceso a ficheros se realiza de manera remota, sin necesidad de transferir una copia de los ficheros al sistema local. El usuario no sabe
dnde se ubican los ficheros y la reparticin de los ficheros entre las mquinas
se efecta en funcin del directorio en el que se crea cada fichero.
d) En un sistema distribuido, el usuario tiene la misma visin que en un sistema aislado. Aqu el sistema se encarga de distribuir los ficheros entre los discos de la red, replicarlos o moverlos si conviene por motivos de seguridad o de
eficiencia en el acceso.
3) La proteccin
En un sistema cerrado, cada usuario tiene asociado un dominio de proteccin
que se activa cuando se inicia una sesin de trabajo y que le da los derechos
necesarios para llevar a cabo la tarea que tenga asignada. Una vez dentro del
sistema, ya no se tiene que preocupar del domino donde est trabajando y de
si tiene que cambiar o no de dominio.
Por ejemplo...
... los ficheros creados por un
usuario en una mquina, con
un UID y GID propietarios concretos, no los reconocera
como suyos si accediese desde
otra mquina. En el peor de los
casos, podran acceder otros
usuarios que tuviesen el mismo
UID en otra mquina de la red.
24
forma al sistema remoto de qu usuario se trata y ste lo convierte automticamente en un usuario reconocido por l. UNIX ofrece esta posibilidad mediante
los ficheros denominados hosts.equiv, que contienen las tablas de conversin.
c) Por ltimo, en un sistema distribuido los usuarios tienen un nico dominio, independientemente de la mquina del sistema con que trabajen. UNIX,
mediante los paquetes YP (yellow pages), permite tener un UID y un GID nicos asociados a un nombre de usuario y a una contrasea para todas las mquinas del sistema.
25
Este modelo es el que han utilizado los sistemas operativos tradicionalmente. Un sistema monoltico es un sistema en el que los servicios que
ofrece son gestionados por servidores que en su mayora forman parte
del ncleo del propio sistema y, por tanto, se encuentran dentro de su
espacio protegido. En cada nodo de la red se ejecuta el sistema completo, e internamente los diferentes ncleos se coordinan para llevar a cabo
la gestin de los diferentes recursos.
Figura 6
En este modelo el SO se reduce a un ncleo que proporciona y gestiona los objetos ms bsicos: los procesos, la memoria y la comunicacin entre procesos.
El resto de los servicios viene proporcionado por servidores externos que se
Lecturas
complementarias
Algunos sistemas
monolticos son UNIX,
Amoeba, Sprite, V kernel,
etc. Encontraris ms
informacin sobre estos
sistemas en la bibliografa:
Milenkovic, M. (1994).
Sistemas operativos, conceptos
y diseo (2. ed.; trad.
de A. Bautista). Madrid:
McGraw-Hill.
Tanenbaum, A. (1993).
Sistemas operativos modernos
(trad. de O. Palmas). Mxico:
Prentice Hall
Hispanoamericana.
26
pueden crear y destruir de manera dinmica y que se pueden situar en cualquier nodo de la red. Para gestionar las entradas/salidas y proporcionar un mecanismo de control de los traps y las llamadas al sistema, los microncleos
permiten, bajo el control del sistema de proteccin, que los servidores puedan
utilizar el espacio protegido del sistema. El usuario, en funcin del servidor
que utilice, puede ver diferentes interfaces o, lo que es los mismo, puede tener
la sensacin de trabajar con sistemas operativos diferentes o con subsistemas.
Son sistemas extraordinariamente abiertos que permiten al usuario adaptarse y evolucionar muy bien en entornos distribuidos.
Lectura complementaria
Los microncleos actuales
ms conocidos son Mach y
Chorus. Encontraris ms
informacin sobre estos
sistemas en la bibliografa:
Milenkovic, M. (1994).
Sistemas operativos, conceptos
y diseo (2. ed.; trad.
de A. Bautista). Madrid:
McGraw-Hill.
27
Resumen
28
29
Actividades
1. Analizad las caractersticas de Windows 95 y de UNIX relacionadas con los tipos de sistemas operativos que hemos estudiado.
2. Analizad qu servidores tiene en marcha la versin de UNIX que utilizis para las prcticas.
3. Observad las seales (signals) que ofrece UNIX y analizad si son adecuadas para un sistema
operativo de tiempo real.
Glosario
entorno distribuido
Conjunto de sistemas interconectados con una red que son capaces de cooperar y comunicarse gracias a esta red y al software que la gestiona.
maestro/esclavo
Modelo de SO multiprocesador en el que un procesador, el maestro, se encarga de ejecutar el
sistema operativo y el resto de los procesadores, los esclavos, se dedica a ejecutar los procesos
que el maestro le encarga.
microncleo
Modelo de SO utilizado principalmente por sistemas operativos distribuidos. En este modelo,
el SO se reduce a un ncleo que proporciona y gestiona los objetos ms bsicos: procesos,
gestin de memoria y comunicacin entre procesos. El resto de los servicios los proporcionan
servidores externos que se pueden crear y destruir de manera dinmica y que pueden estar
situados en cualquier nodo de la red.
modelo cliente/servidor
Paradigma de programacin en el que intervienen un cliente que solicita un servicio y el servidor que lo proporciona. La comunicacin entre cliente y servidor se efecta mediante mecanismos basados en el paso de mensajes. Este modelo es la base de los sistemas abiertos y
distribuidos.
modelo simtrico
Modelo de SO multiprocesador en el que todos los procesadores tienen las mismas competencias, todos pueden ejecutar el sistema.
procesos multiflujo
Procesos con ms de una secuencia de ejecucin en los que cada flujo se caracteriza por una
pila, unos registros del procesador y un contador de programa. El resto de los elementos
que configuran el entorno de ejecucin son compartidos con el resto de los flujos del propio proceso.
SO abierto
Caso contrario a un SO cerrado, es decir, en red.
Ved SO en red.
SO cerrado
En el marco de este mdulo, sistema aislado sin red. En un sentido ms amplio de la palabra
aislado, se podra decir que es un sistema que no utiliza aplicaciones, protocolos, etc., es decir, estndar y, por tanto, slo puede utilizar aplicaciones nativas de su sistema.
SO de tiempo real
Sistema que se orienta a ejecutar aplicaciones con fuertes restricciones temporales que puede
ofrecer mecanismos que permitan realizar una planificacin en tiempo de las aplicaciones.
SO distribuido
Sistema operativo que engloba y gestiona un entorno distribuido de manera transparente
para el usuario.
SO en red
Sistema operativo independiente con servicios sobre el entorno distribuido visibles para el
usuario.
SO monoltico
Sistema operativo en el que los servicios que ofrece estn gestionados por servidores que mayoritariamente forman parte del ncleo del propio sistema y, en consecuencia, se encuentran
dentro de su espacio protegido.
30
SO multiprocesador
Sistema operativo que gestiona una arquitectura multiprocesador.
supervisores separados
Modelo de SO multiprocesador en el que cada procesador tiene su sistema operativo independiente que funciona como un sistema casi aislado.
Bibliografa
Bibliografa bsica
Milenkovic, M. (1994). Sistemas operativos, conceptos y diseo (2. ed.; trad. de A. Bautista).
Madrid: McGraw-Hill.
Silberschatz, A.; Peterson, J.; Galvin, P. (1994). Sistemas operativos, conceptos fundamentales (3. ed.; trad. de E. Morales). Wilmington: Addison-Wesley Iberoamericana.
Tanenbaum, A. (1993). Sistemas operativos modernos (trad. de O. Palmas). Mxico: Prentice
Hall Hispanoamericana.
Bibliografa complementaria
Singhal, M.; Shivaratri, N. (1994). Advanced Concepts in Operating Systems, Distributed, Database and Multiprocessors Operating Systems. Nueva York: McGraw-Hill.
Couloris, G.; Dollimore, J.; Kindberg, T. (1995). Distributed Systems, Concepts and Design
(2. ed.). Wokingham: Addison-Wesley.