180 likes | 272 Views
INSTITUTO TECNOLÓGICO DE CD. GUZMÁN. Sistemas Operativos II. MC. Daniel Fajardo Delgado. 24 de Abril de 2004. Los SO optan por maximizar la comodidad y grado de respuesta para el usuario, en lugar de maximizar la utilización de la CPU y dispositivos periféricos...
E N D
INSTITUTO TECNOLÓGICO DE CD. GUZMÁN Sistemas Operativos II MC. Daniel Fajardo Delgado 24 de Abril de 2004
Los SO optan por maximizar la comodidad y grado de respuesta para el usuario, en lugar de maximizar la utilización de la CPU y dispositivos periféricos... Las características de UNIX se convirtieron en la base para los SO parecidos a UNIX para microcomputadoras, y están siendo incluidos en SO más recientes como Windows NT, OS/2 de IBM, y el SO Macintosh.
SISTEMAS PARALELOS La mayoría de los sistemas de hoy en día son sistemas de un sólo procesador. Sin embargo, Existen una tendencia hacia los sistemas multiprocesadores. Tales sistemas tienen más de un procesador en estrecha comunicación, compartiendo el bus de la computadora, el reloj y en ocasiones la memoria y dispositivos periféricos. Estos sistemas se conocen como sistemas fuertemente acoplados. Una ventaja de este tipo de sistemas, es un mayor rendimiento. Al incrementar el número de procesadores, se busca realizar más trabajo en menos tiempo.
Otra razón para los sistemas multiprocesadores es que incrementan la confiabilidad. Si las funciones se pueden distribuir adecuadamente entre varios procesadores, entonces la falla de un procesador no detendrá al sistema, sólo lo hará más lento. Esta capacidad de continuar proporcionando servicio de manera proporcional al nivel de hardware que sigue activo se conoce como degradación suave. Los sistemas que se diseñan para esta degradación también se conocen como tolerantes a fallas. Los sistemas de procesadores múltiples más comunes utilizan el multiprocesamiento simétrico, en el que cada procesador ejecuta una copia idéntica del SO, y estas se comunican entre ellas según sea necesario.
El multiprocesamiento asimétrico es en el que a cada procesador se le asigna una tarea específica. Un procesador maestro controla el sistema; el otro procesador solicita instrucciones al maestro para recibir instrucciones o tiene tareas definidas previamente -> Esquema de maestro-esclavo. En el multiprocesamiento simétrico (symmetric multiprocessing, SMP) todos los procesadores están al mismo nivel; no existe una relación maestro-esclavo entre ellos. SMP ~> Encore de UNIX para la computadora Multimax Virtualmente todos los SO modernos -incluyendo Windows NT, Solaris, Digital UNIX, OS/2 y Linux- ofrecen soporte para el SMP SunOS Versión 4 de Sun proportciona multiprocesamiento asimétrico, en tanto que la versión 5 (Solaris 2) es simétrica en el mismo hardware.
SISTEMA OPERATIVO EN RED Es un SO que proporciona características como la compartición de archivos en la red, y que incluye un esquema de comunicación que permite que procesos diferentes en computadoras diferentes intercambien mensajes. Una computadora ejecutando un SO de red actúa de manera autónoma con respecto a todas las demás computadoras de la red, aunque tiene presente su participación en dicha red y es capaz de comunicarse con otras computadoras conectadas. ~> Novell Netware
SISTEMAS DISTRIBUIDOS En contraste con los sistemas fuertemente acoplados, las redes de computadoras usadas en este tipo de aplicaciones está compuesta de un conjunto de procesadores que no comparten memoria o un reloj. En un sistema distribuido cada procesador tiene su propia memoria local. Los procesadores se comunican entre ellos mediante varias líneas de comunicación, como buses de alta velocidad o líneas telefónicas. Estos sistemas generalmente se conocen como débilmente acoplados. Un SO distribuido es un ambiente no tan autónomo (no tanto como un SO de red); los diferentes SO se comunican de manera suficientemente estrecha para dar la ilusión de que hay un sólo SO controlando a la red.
Desde un punto de vista de procesador específico en un sistema distribuido el resto de los procesadores y sus respectivos recursos son remotos, en tanto que sus propios recursos son locales. La designación sitio se utiliza principalmente para indicar la ubicación de una máquina, y anfitrión para referirse a un sistema específico en un sitio. En general, un anfitrión en un sitio, denominado el servidor, tiene un recurso que desea usar otro anfitrión en otro sitio, el cliente (o usuario). El propósito del sistema distribuido es proporcionar un ambiente eficiente y conveniente para el compartimiento de los recursos.
Ventajas de los sistemas distribuidos. ~> Compartición de recursos. Un usuario es capáz de utilizar los recursos disponibles en otro. ~> Aceleración del cómputo. Una tarea de cómputo particular se puede dividir en varias subtareas de cómputo que pueden correrse concurrentemente. ~> Confiabilidad. Si un sitio falla en un sistema distribuido, los sitios restantes pueden continuar potencialmente operando, dando al sistema mejor confiabilidad. ~> Comunicación. Los usuarios de los diferentes sitios tiene la oportunidad de intercambiar información. Tales funciones incluyen la transferencia de archivos, conexión, correo, navegación por Red Mundial y llamadas a procedimientos remotos (RPC).
HILOS (THREADS)... Una vieja deuda Un proceso es un programa en ejecución... con un sólo hilo de control? Un hilo, denominado también proceso ligero, es una unidad básica de utilización de la CPU; comprende la ID (indentificación) de hilo, un contador de programa, un conjunto de registros y una pila. El hilo comparte con otros hilos que pertenecen al mismo proceso su sección de código, su sección de datos y otros recursos del SO, como los archivos abiertos y señales. Debido a que el proceso tiene varios hilos de control, el proceso puede ejecutar más de una tarea a la vez. Muchos de los paquetes de software que se ejecutan en las PC de escritorio modernas son multihilos. Una aplicación se implementa típicamente como un proceso separado con varios hilos de control.
Código Datos Archivos Código Datos Archivos Multihilos Un sólo hilo Código Datos Archivos Código Datos Archivos
Un servidor de red con alta ocupación puede tener varios (quizá cientos) de clientes accediento a sus servicios de manera concurrente. Si el servidor se ejecutara como un proceso tradicional de un solo hilo, sólo sería capaz de dar servicio a un cliente a la vez con un proceso único ~> la cantidad de tiempo que un cliente tendría que esperar para que se atendiera su solicitud sería enorme. Una solución consiste en hacer que el servidor se ejecute como un solo proceso que acepte solicitudes. Cuando recibe una solicitud, el servidor crea un proceso separado para dar servicio a dicha solicitud. Sin embargo, en lugar de incurrir en el trabajo adicional de crear un nuevo proceso para atender cada solicitud, puede ser más eficiente que un proceso que contiene varios hilos sirva para el mismo propósito. Este enfoque convertiría en multihilos al proceso del servidor de red.
Beneficios de los threads ~> Grado de respuesta. Una operación multihilos en una aplicación interactiva puede permitir que un programa continúe en ejecución, incluso si una de sus partes está bloqueada o realizando una operación tardada, lo que incrementa el grado de respuesta de usuario. ~> Compartir recursos. Los hilos comparten la memoria y los recursos del proceso al que pertenecen. ~> Economía. Debido a que los hilos comparten recursos del proceso al que pertenecen, es más económico crear hilos y cambiar su contexto... En Solaris la creación de un proceso es aproximadamente 30 veces más lento que la creación un hilo !! y la conmutación de contexto tarda aproximadamente 5 veces más. ~> Utilización de arquitecturas de multiprocesadores. Cada hilo puede estar ejecutándose en paralelo en un procesador diferente.
Hilos de usuario y de kernel Los hilos de usuario tienen soporte por encima del kernel y son implementados por una biblioteca de hilos a nivel de usuario. La biblioteca proporciona apoyo para la creación, programación y administración de hilos sin soporte del kernel. Entre las bibliotecas de hilos de usuarios están POSIX Pthreads, Mach C-threads, y Solaris threads. Los hilos de kernel tienen soporte directo del SO: la creación, programación y administración de hilos los realiza el kernel en su propio espacio. Es más lenta la creación y administración de los hilos del kernel que la de los usuarios. Windows NT, Solaris y Digital UNIX manejan hilos de kernel.
Modelo de varios a uno Hilo de usuario K Hilo de kernel
Modelo de uno a uno Hilo de usuario K K K K Hilo de kernel Windows NT y OS/2 implementan el modelo de tipo uno a uno.
Modelo de varios a varios Hilo de usuario K K K Hilo de kernel Solaris, Irix y Digital UNIX soportan este modelo.
DISTRIBUTED AND PARALLEL SYSTEMS M. Tamer Özsu Patrick Valduriez