Vous êtes sur la page 1sur 48

Unidad 1 Introduccin a los sistemas operativos.

1.1Definicin y concepto. Un sistema operativo es el programa que oculta la verdad del hardware al programador y presenta una vista simple y agradable de los archivos nominados que pueden leerse y escribirse. Es sistema operativo resguarda al programador del hardware del disco y presenta una interfaz simple orientada al archivo, tambin disimula mucho del trabajo concerniente a interrupciones, relojes o cronmetros, manejo de memoria y otras caractersticas de bajo nivel. Desde su creacin, las computadoras digitales han utilizado un sistema de codificacin de instrucciones en sistema de numeracin binaria, es decir con los 0S. Esto se debe a que los circuitos integrados funcionan con este principio, es decir, hay corriente o no hay corriente. En el origen de la historia de las computadoras ( hace unos cuarenta aos), los sistemas operativos no existan y la introduccin de un programa para ser ejecutado se converta en un increble esfuerzo que solo poda ser llevado a cabo por muy pocos expertos. Esto hacia que las computadoras fueran muy complicadas de usar y que se requiriera tener altos conocimientos tcnicos para operarlas. Era tan complejo su manejo, que en algunos casos el resultado llegaba a ser desastroso. Adems, el tiempo requerido para introducir un programa en aquellas grandes mquinas de lento proceso superaba por mucho el de ejecucin y resultaba poco provechosa la utilizacin de computadoras para resolucin de problemas prcticos. Se buscaron medios ms elaborados para manipular la computadora, pero que a su vez simplificaran la labor del operador o el usuario. Es entonces cuando surge la idea de crear un medio para que el usuario pueda operar la computadora con un entorno, lenguaje y operacin bien definido para hacer un verdadero uso y explotacin de esta. Surgen los sistemas operativos. Un sistema operativo es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar, codificar y emitir las ordenes al procesador central para que este realice las tareas necesarias y especificas para completar una orden. El sistema operativo, es el instrumento indispensable para hacer de la computadora un objeto til. Bajo este nombre se agrupan todos aquellos programas que permiten a los usuarios la utilizacin de este enredo de cables y circuitos, que de otra manera serian difciles de controlar. Un sistema operativo se define como un conjunto de procedimientos manuales y automticos, que permiten a un grupo de usuarios compartir una instalacin de computadora eficazmente.

Existen diversas definiciones de lo que es un Sistema Operativo, pero no hay una definicin exacta, es decir una que sea estndar; a continuacin se presentan algunas: 1.- Se pueden imaginar un Sistema Operativo como los programas, instalados en el software o firmware, que hacen utilizable el hardware. El hardware proporciona la "capacidad bruta de cmputo"; los sistemas operativos ponen dicha capacidad de cmputo al alcance de los usuarios y administran cuidadosamente el hardware para lograr un buen rendimiento. 2.- Los Sistemas Operativos son ante todo administradores de recursos; el principal recurso que administran es el hardware del computador ;adems de los procesadores, los medios de almacenamiento, los dispositivos de entrada/salida, los dispositivos de comunicacin y los datos. 3.- Un Sistema Operativo es un programa que acta como intermediario entre el usuario y el hardware del computador y su propsito es proporcionar el entorno en el cual el usuario pueda ejecutar programas. Entonces, el objetivo principal de un Sistema Operativo es, lograr que el sistema de computacin se use de manera cmoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente. 4.- Un Sistema Operativo es un conjunto de programas que controla la ejecucin de programas de aplicacin y acta como una interfaz entre el usuario y el hardware de una computadora, esto es, un Sistema Operativo explota y administra los recursos de hardware de la computadora con el objeto de proporcionar un conjunto de servicios a los usuarios del sistema. En resumen, se podra decir que los Sistemas Operativos son un conjunto de programas que crean la interfaz del hardware con el usuario, y que tiene dos funciones primordiales, que son:
o o

Gestionar el hardware.- Se refiere al hecho de administrar de una forma ms eficiente los recursos de la mquina. Facilitar el trabajo al usuario.-Permite una comunicacin con los dispositivos de la mquina.

El Sistema Operativo se encuentra almacenado en la memoria secundaria. Primero se carga y ejecuta un pedazo de cdigo que se encuentra en el procesador, el cual carga el BIOS, y este a su vez carga el Sistema Operativo que carga todos los programas de aplicacin y software variado.

1.2Funciones y caractersticas.
La funcin del sistema operativo es la de presentar al usuario con el equivalente de una mquina ampliada o mquina virtual que sea ms fcil de programar que el hardware implcito. Interpreta los comandos que permiten al usuario comunicarse con el ordenador. Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el mouse. Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnticas. Gestiona los errores de hardware y la prdida de datos. Servir de base para la creacin del software logrando que equipos de marcas distintas funcionen de manera anloga, salvando las diferencias existentes entre ambos. Configura el entorno para el uso del software y los perifricos; dependiendo del tipo de mquina que se emplea, debe establecerse en forma lgica la disposicin y caractersticas del equipo. Como por ejemplo, una microcomputadora tiene fsicamente dos unidades de disco, puede simular el uso de otras unidades de disco, que pueden ser virtuales utilizando parte de la memoria principal para tal fin. En caso de estar conectado a una red, el sistema operativo se convierte en la plataforma de trabajo de los usuarios y es este quien controla los elementos o recursos que comparten. De igual forma, provee de proteccin a la informacin que almacena.

Funciones de los sistemas operativos. 1.- Aceptar todos los trabajos y conservarlos hasta su finalizacin. 2.- Interpretacin de comandos: Interpreta los comandos que permiten al usuario comunicarse con el ordenador. 3.- Control de recursos: Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el Mouse. 4.- Manejo de dispositivos de E/S: Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnticas. 5.- Manejo de errores: Gestiona los errores de hardware y la prdida de datos. 6.- Secuencia de tareas: El sistema operativo debe administrar la manera en que se reparten los procesos. Definir el orden. (Quien va primero y quien despus). 7.- Proteccin: Evitar que las acciones de un usuario afecten el trabajo que esta realizando otro usuario.

8.- Multiacceso: Un usuario se puede conectar a otra mquina sin tener que estar cerca de ella. 9.- Contabilidad de recursos: establece el costo que se le cobra a un usuario por utilizar determinados recursos.

Caractersticas de los sistemas operativos.

En general, se puede decir que un Sistema Operativo tiene las siguientes caractersticas:
Conveniencia. Un Sistema Operativo hace ms conveniente el uso de una computadora. Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la manera ms eficiente posible. Habilidad para evolucionar. Un Sistema Operativo deber construirse de manera que permita el desarrollo, prueba o introduccin efectiva de nuevas funciones del sistema sin interferir con el servicio. Encargado de administrar el hardware. El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos. Relacionar dispositivos (gestionar a travs del kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos perifricos, cuando el usuario as lo requiera. Organizar datos para acceso rpido y seguro. Manejar las comunicaciones en red. El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalacin y uso de las redes de computadoras. Procesamiento por bytes de flujo a travs del bus de datos. Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fcil al usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora.

El software de aplicacin son programas que se utilizan para disear, tal como el procesador de palabras, lenguajes de programacin, hojas de clculo, etc. El software de base sirve para interactuar el usuario con la mquina, son un conjunto de programas que facilitan el ambiente plataforma, y permite el diseo del mismo. El Software de base est compuesto por :

o o o o

Cargadores. Compiladores. Ensambladores. Macros.

1.3Evolucin histrica.
Los Sistemas Operativos, al igual que el Hardware de los computadores, han sufrido una serie de cambios revolucionarios llamados generaciones. En el caso del Hardware, las generaciones han sido marcadas por grandes avances en los componentes utilizados, pasando de vlvulas ( primera generacin ) a transistores ( segunda generacin ), a circuitos integrados ( tercera generacin), a circuitos integrados de gran y muy gran escala (cuarta generacin). Cada generacin Sucesiva de hardware ha ido acompaada de reducciones substanciales en los costos, tamao, emisin de calor y consumo de energa, y por incrementos notables en velocidad y capacidad. Generacion Cero (dcada de 1940) Los primeros sistemas computacionales no posean sistemas operativos. Los usuarios tenan completo acceso al lenguaje de la maquina. Todas las instrucciones eran codificadas a mano. Primera Generacion (dcada de 1950) Los sistemas operativos de los aos cincuenta fueron diseados para hacer mas fluida la transicin entre trabajos. Antes de que los sistemas fueran diseados, se perda un tiempo considerable entre la terminacin de un trabajo y el inicio del siguiente. Este fue el comienzo de los sistemas de procesamiento por lotes, donde los trabajos se reunan por grupos o lotes. Cuando el trabajo estaba en ejecucin, este tenia control total de la maquina. Al terminar cada trabajo, el control era devuelto al sistema operativo, el cual limpiaba y lea e iniciaba el trabajo siguiente. Al inicio de los 50's esto haba mejorado un poco con la introduccin de tarjetas perforadas (las cuales servan para introducir los programas de lenguajes de mquina), puesto que ya no haba necesidad de utilizar los tableros enchufables. Adems el laboratorio de investigacin General Motors implement el primer sistema operativo para la IBM 701. Los sistemas de los 50's generalmente ejecutaban una sola tarea, y la transicin entre tareas se suavizaba para lograr la mxima utilizacin del sistema. Esto se conoce como sistemas de procesamiento

por lotes de un slo flujo, ya que los programas y los datos eran sometidos en grupos o lotes. La introduccin del transistor a mediados de los 50's cambi la imagen radicalmente. Se crearon mquinas suficientemente confiables las cuales se instalaban en lugares especialmente acondicionados, aunque slo las grandes universidades y las grandes corporaciones o bien las oficinas del gobierno se podan dar el lujo de tenerlas. Para poder correr un trabajo (programa), tenan que escribirlo en papel (en Fortran o en lenguaje ensamblador) y despus se perforara en tarjetas. Enseguida se llevara la pila de tarjetas al cuarto de introduccin al sistema y la entregara a uno de los operadores. Cuando la computadora terminara el trabajo, un operador se dirigira a la impresora y desprendera la salida y la llevara al cuarto de salida, para que la recogiera el programador. Segunda Generacion (a mitad de la dcada de 1960) La caracterstica de los sistemas operativos fue el desarrollo de los sistemas compartidos con multiprogramacin, y los principios del multiprocesamiento. En los sistemas de multiprogramacin, varios programas de usuario se encuentran al mismo tiempo en el almacenamiento principal, y el procesador se cambia rpidamente de un trabajo a otro. En los sistemas de multiprocesamiento se utilizan varios procesadores en un solo sistema computacional, con la finalidad de incrementar el poder de procesamiento de la maquina. La independencia de dispositivos aparece despus. Un usuario que desea escribir datos en una cinta en sistemas de la primera generacin tenia que hacer referencia especifica a una unidad de cinta particular. En la segunda generacin, el programa del usuario especificaba tan solo que un archivo iba a ser escrito en una unidad de cinta con cierto numero de pistas y cierta densidad. Se desarrollo sistemas compartidos, en la que los usuarios podan acoplarse directamente con el computador a travs de terminales. Surgieron sistemas de tiempo real, en que los computadores fueron utilizados en el control de procesos industriales. Los sistemas de tiempo real se caracterizan por proveer una respuesta inmediata. Tercera Generacion (mitad de dcada 1960 a mitad dcada de 1970) Se inicia en 1964, con la introduccin de la familia de computadores Sistema/360 de IBM. Los computadores de esta generacin fueron diseados como sistemas para usos generales . Casi siempre eran sistemas grandes, voluminosos, con el propsito de serlo todo para toda la gente. Eran sistemas de modos mltiples,

algunos de ellos soportaban simultneamente procesos por lotes, tiempo compartido, procesamiento de tiempo real y multiprocesamiento. Eran grandes y costosos, nunca antes se haba construido algo similar, y muchos de los esfuerzos de desarrollo terminaron muy por arriba del presupuesto y mucho despus de lo que el planificador marcaba como fecha de terminacin. Estos sistemas introdujeron mayor complejidad a los ambientes computacionales; una complejidad a la cual, en un principio, no estaban acostumbrados los usuarios. Cuarta Generacion (mitad de dcada de 1970 en adelante) Los sistemas de la cuarta generacin constituyen el estado actual de la tecnologa. Muchos diseadores y usuarios se sienten aun incmodos, despus de sus experiencias con los sistemas operativos de la tercera generacin. Con la ampliacin del uso de redes de computadores y del procesamiento en lnea los usuarios obtienen acceso a computadores alejados geogrficamente a travs de varios tipos de terminales. Los sistemas de seguridad se ha incrementado mucho ahora que la informacin pasa a travs de varios tipos vulnerables de lneas de comunicacin. La clave de cifrado esta recibiendo mucha atencin; han sido necesario codificar los datos personales o de gran intimidad para que; aun si los datos son expuestos, no sean de utilidad a nadie mas que a los receptores adecuados. El porcentaje de la poblacin que tiene acceso a un computador en la dcada de los ochenta es mucho mayor que nunca y aumenta rpidamente. El concepto de maquinas virtuales es utilizado. El usuario ya no se encuentra interesado en los detalles fsicos de; sistema de computacin que esta siendo accedida. En su lugar, el usuario ve un panorama llamado maquina virtual creado por el sistema operativo. Los sistemas de bases de datos han adquirido gran importancia. Nuestro mundo es una sociedad orientada hacia la informacin, y el trabajo de las bases de datos es hacer que esta informacin sea conveniente accesible de una manera controlada para aquellos que tienen derechos de acceso. Historia de los Sistemas Operativos. Para tratar de comprender los requisitos de un Sistema Operativo y el significado de las principales caractersticas de un Sistema Operativo contemporneo, es til considerar como han ido evolucionando stos con el tiempo.

Existen diferentes enfoques o versiones de como han ido evolucionando los Sistemas Operativos La primera de estas versiones podra ser esta: En los 40's, se introducen los programas bit a bit, por medio de interruptores mecnicos y despus se introdujo el leng. mquina que trabajaba por tarjetas perforadas. Con las primeras computadoras, desde finales de los aos 40 hasta la mitad de los aos 50, el programador interactuaba de manera directa con el hardware de la computadora, no exista realmente un Sistema Operativo; las primeras computadoras utilizaban bulbos, la entrada de datos y los programas se realizaban a travs del lenguaje mquina (bits) o a travs de interruptores. Durante los aos 50's y 60's.- A principio de los 50's, la compaa General's Motors implanto el primer sistema operativo para su IBM 170. Empiezan a surgir las tarjetas perforadas las cuales permiten que los usuarios (que en ese tiempo eran programadores, diseadores, capturistas, etc.), se encarguen de modificar sus programas. Establecan o apartaban tiempo, metan o introducan sus programas, corregan y depuraban sus programas en su tiempo. A esto se le llamaba trabajo en serie. Todo esto se traduca en prdida de tiempo y tiempos de programas excesivos. En los aos 60's y 70's se genera el circuito integrado, se organizan los trabajos y se generan los procesos Batch (por lotes), lo cual consiste en determinar los trabajos comunes y realizarlos todos juntos de una sola vez. En esta poca surgen las unidades de cinta y el cargador de programas, el cual se considera como el primer tipo de Sistema Operativo. En los 80's, inici el auge de la INTERNET en los Estados Unidos de Amrica. A finales de los aos 80's comienza el gran auge y evolucin de los Sistemas Operativos. Se descubre el concepto de multiprogramacin que consiste en tener cargados en memoria a varios trabajos al mismo tiempo, tema principal de los Sistemas Operativos actuales. Los 90's y el futuro, entramos a la era de la computacin distribuida y del multiprocesamiento a travs de mltiples redes de computadoras, aprovechando el ciclo del procesador. Se tendr una configuracin dinmica con un reconocimiento inmediato de dispositivos y software que se aada o elimine de las redes a travs de procesos de registro y localizadores. La conectividad se facilita gracias a estndares y protocolos de sistemas abiertos por organizaciones como la Org. Intern. de normas, fundacin de software abierto,

todo estar mas controlado por los protocolos de comunicacin OSI y por la red de servicios digital ISDN. Se ha desarrollado otra versin, la cual se ha hecho en base a etapas o generaciones: 1a. Etapa (1945-1955) : Bulbos y conexiones. Despus de los infructuosos esfuerzos de Babbage, hubo poco progreso en la construccin de las computadoras digitales, hasta la Segunda Guerra Mundial. A mitad de la dcada de los 40's, Howard Aiken (Harvard), John Von Newman (Instituto de Estudios Avanzados, Princeton), J. Prespe R. Eckert y Williams Mauchley (Universidad de Pennsylvania), as como Conrad Zuse (Alemania), entre otros lograron construir mquinas de clculo mediante bulbos. Estas mquinas eran enormes y llenaban cuartos completos con decenas de miles de bulbos, pero eran mucho ms lentas que la computadora casera ms econmica en nuestros das. Toda la programacin se llevaba a cabo en lenguaje de mquina absoluto y con frecuencia se utilizaban conexiones para controlar las funciones bsicas de la mquina. Los lenguajes de programacin eran desconocidos (incluso el lenguaje ensamblador). No se oa de los Sistemas Operativos el modo usual de operacin consista en que el programador reservaba cierto perodo en una hoja de reservacin pegada a la pared, iba al cuarto de la mquina, insertaba su conexin a la computadora y pasaba unas horas esperando que ninguno de los 20,000 o ms bulbos se quemara durante la ejecucin. La inmensa mayora de los problemas eran clculos numricos directos, por ejemplo, el clculo de valores para tablas de senos y cosenos. A principio de la dcada de los 50's la rutina mejoro un poco con la introduccin de las tarjetas perforadas. Fue entonces posible escribir los programas y leerlas en vez de insertar conexiones, por lo dems el proceso era el mismo. 2a. Etapa. (1955-1965) : Transistores y Sistemas de Procesamiento por lotes. La introduccin del transistor a mediados de los aos 50's modific en forma radical el panorama. Las computadoras se volvieron confiables de forma que podan fabricarse y venderse a clientes, con la esperanza de que ellas continuaran funcionando lo suficiente como para realizar un trabajo en forma. Dado el alto costo del equipo, no debe sorprender el hecho de que las personas buscaron en forma por dems rpidas vas para reducir el tiempo invertido. La solucin que, por lo general se adopt, fue la del sistema de procesamiento por lotes. 3ra Etapa (1965-1980 ) : Circuitos integrados y multiprogramacin.

La 360 de IBM fue la primera lnea principal de computadoras que utiliz los circuitos integrados, lo que proporcion una gran ventaja en el precio y desempeo con respecto a las mquinas de la segunda generacin, construidas a partir de transistores individuales. Se trabajo con un sistema operativo enorme y extraordinariamente complejo. A pesar de su enorme tamao y sus problemas el sistema operativo de la lnea IBM 360 y los sistemas operativos similares de esta generacin producidos por otros fabricantes de computadoras realmente pudieron satisfacer, en forma razonable a la mayora de sus clientes. Tambin popularizaron varias tcnicas fundamentales, ausentes de los sistemas operativos de la segunda generacin, de las cuales la ms importante era la de multiprogramacin. Otra caracterstica era la capacidad de leer trabajos de las tarjetas al disco, tan pronto como llegara al cuarto de cmputo. As, siempre que concluyera un trabajo el sistema operativo poda cargar un nuevo trabajo del disco en la particin que quedara desocupada y ejecutarlo. 4ta Etapa (1980-Actualidad) : Computadoras personales. Un interesante desarrollo que comenz a llevarse a cabo a mediados de la dcada de los ochenta ha sido el crecimiento de las redes de computadoras personales, con sistemas operativos de red y sistemas operativos distribuidos. En los sistema operativo de red, los usuarios estn conscientes de la existencia de varias computadoras y pueden conectarse con mquinas remotas y copiar archivos de una mquina a otra. Cada mquina ejecuta su propio sistema operativo local y tiene su propio usuario. Por el contrario, un sistema operativo distribuido es aquel que aparece ante sus usuarios como un sistema tradicional de un solo procesador, aun cuando est compuesto por varios procesadores. En un sistema distribuido verdadero, los usuarios no deben ser conscientes del lugar donde su programa se ejecute o de lugar donde se encuentren sus archivos; eso debe ser manejado en forma automtica y eficaz por el sistema operativo.

1.4Clasificacin.
Sistema Operativo Multitareas. Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas. La conmutacin de contextos (context Switching) es un tipo muy simple de multitarea en el que dos o ms aplicaciones se cargan al mismo tiempo, pero en el que solo se esta procesando la aplicacin que se encuentra en primer plano (la que ve el usuario). Para activar otra tarea que se encuentre en segundo plano, el usuario debe traer al primer plano la ventana o pantalla que contenga esa aplicacin. En la multitarea cooperativa, la que se utiliza en el sistema operativo Macintosh, las tareas en segundo plano reciben tiempo de procesado durante los tiempos muertos de la tarea que se encuentra en primer plano (por ejemplo, cuando esta aplicacin esta esperando informacin del usuario), y siempre que esta aplicacin lo permita. En los sistemas multitarea de tiempo compartido, como OS/2, cada tarea recibe la atencin del microprocesador durante una fraccin de segundo. Para mantener el sistema en orden, cada tarea recibe un nivel de prioridad o se procesa en orden secuencial. Dado que el sentido temporal del usuario es mucho ms lento que la velocidad de procesamiento del ordenador, las operaciones de multitarea en tiempo compartido parecen ser simultneas. Sistema Operativo Monotareas.

Los sistemas operativos monotareas son ms primitivos y es todo lo contrario al visto anteriormente, es decir, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora esta imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresin. Sistema Operativo Monousuario. Los sistemas monousuarios son aquellos que nada ms puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicacin que se este ejecutando. Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se esta utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y estn orientados principalmente por los microcomputadores.

Sistema Operativo Multiusuario. Es todo lo contrario a monousuario; y en esta categora se encuentran todos los sistemas que cumplen simultneamente las necesidades de dos o ms usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes. En otras palabras consiste en el fraccionamiento del tiempo (timesharing). Secuencia por Lotes. La secuencia por lotes o procesamiento por lotes en microcomputadoras, es la ejecucin de una lista de comandos del sistema operativo uno tras otro sin intervencin del usuario. En los ordenadores ms grandes el proceso de recogida de programas y de conjuntos de datos de los usuarios, la ejecucin de uno o unos pocos cada vez y la entrega de los recursos a los usuarios. Procesamiento por lotes tambin puede referirse al proceso de almacenar transacciones durante un cierto lapso antes de su envo a un archivo maestro, por lo general una operacin separada que se efecta durante la noche. Los sistemas operativos por lotes (batch), en los que los programas eran tratados por grupos (lote) en ves de individualmente. La funcin de estos sistemas

operativos consista en cargar en memoria un programa de la cinta y ejecutarlo. Al final este, se realizaba el salto a una direccin de memoria desde donde reasuma el control del sistema operativo que cargaba el siguiente programa y lo ejecutaba. De esta manera el tiempo entre un trabajo y el otro disminua considerablemente. Tiempo Real. Un sistema operativo en tiempo real procesa las instrucciones recibidas al instante, y una vez que han sido procesadas muestra el resultado. Este tipo tiene relacin con los sistemas operativos monousuarios, ya que existe un solo operador y no necesita compartir el procesador entre varias solicitudes. Su caracterstica principal es dar respuestas rpidas; por ejemplo en un caso de peligro se necesitaran respuestas inmediatas para evitar una catstrofe. Tiempo Compartido.

El tiempo compartido en ordenadores o computadoras consiste en el uso de un sistema por ms de una persona al mismo tiempo. El tiempo compartido ejecuta programas separados de forma concurrente, intercambiando porciones de tiempo asignadas a cada programa (usuario). En este aspecto, es similar a la capacidad de multitareas que es comn en la mayora de los microordenadores o las microcomputadoras. Sin embargo el tiempo compartido se asocia generalmente con el acceso de varios usuarios a computadoras ms grandes y a organizaciones de servicios, mientras que la multita rearelacionada con las microcomputadoras implica la realizacin de mltiples tareas por un solo usuario.

CLASIFICACIN DE LOS SISTEMAS OPERATIVOS


Los sistemas operativos se clasifican en: Sistemas operativos por lotes. Sistemas operativos multiprogramacin o de multitarea. Sistemas operativos multiusuario. Sistemas operativos de tiempo compartido. Sistemas operativos de tiempo real. Sistemas operativos distribuidos. Sistemas operativos de red. Sistemas operativos paralelos.

Sistemas operativos por lotes. Los sistemas operativos por lotes requieren que la informacin est reunida en bloque o "lote" (el programa, los datos, y las instrucciones). Los trabajos son procesados en el orden de admisin, segn el modelo de "primero en llegar primero en ser atendido". En estos sistemas la memoria se divide en dos zonas. Una de ellas es ocupada por el sistema operativo, y la otra se usa para cargar programas transitorios para su ejecucin. Cuando

termina la ejecucin de un programa se carga un nuevo programa en la misma zona de memoria. Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual est orientado a procesamiento cientfico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento acadmico. Algunas otras caractersticas con que cuentan los Sistemas Operativos por lotes son:

Requiere que el programa, datos y rdenes al sistema sean remitidos todos juntos en forma de lote. Permiten poca o ninguna interaccin usuario/programa en ejecucin. Mayor potencial de utilizacin de recursos que procesamiento serial simple en sistemas multiusuarios. No conveniente para desarrollo de programas por bajo tiempo de retorno y depuracin fuera de lnea. Conveniente para programas de largos tiempos de ejecucin (Ej., anlisis estadsticos, nminas de personal, etc.). Se encuentra en muchos computadores personales combinados con procesamiento serial. Planificacin del procesador sencilla, tpicamente procesados en orden de llegada. Planificacin de memoria sencilla, generalmente se divide en dos: parte residente del S.O. y programas transitorios. No requieren gestin crtica de dispositivos en el tiempo. Suelen proporcionar gestin sencilla de manejo de archivos: se requiere poca proteccin y ningn control de concurrencia para el acceso.

Figura. Trabajos ms comunes que realiza el Sistema Operativo por lotes.

Sistemas operativos multiprogramacin o de multitareas.

Los sistemas de multiprogramacin son capaces de soportar dos o ms procesos concurrentes mltiples, permiten que residan al mismo tiempo en la memoria primaria las instrucciones y los datos procedentes de dos o ms procesos. Estos sistemas implican la operacin de multiproceso, para el manejo de la informacin. Se caracterizan principalmente por un gran nmero de programas activos simultneamente que compiten por los recursos del sistema, como el procesador, la memoria, y los "dispositivos de E/S". Estos sistemas monitorean el estado de todos los programas activos y recursos del sistema. Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multitarea. Las caractersticas de un Sistema Operativo de multiprogramacin o multitarea son las siguientes:

Mejora productividad del sistema y utilizacin de recursos. Multiplexa recursos entre varios programas. Generalmente soportan mltiples usuarios (multiusuarios). Proporcionan facilidades para mantener el entorno de usuarios individuales. Requieren validacin de usuario para seguridad y proteccin. Proporcionan contabilidad del uso de los recursos por parte de los usuarios. Multitarea sin soporte multiusuario se encuentra en algunos computadores personales o en sistemas de tiempo real. Sistemas multiprocesadores son sistemas multitareas por definicin ya que soportan la ejecucin simultnea de mltiples tareas sobre diferentes procesadores. En general, los sistemas de multiprogramacin se caracterizan por tener mltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos perifricos.

Sistemas operativos multiusuario. Los sistemas operativos multiusuario permiten acceder simultneamente a un sistema de computadoras a travs de dos o ms terminales. Este tipo de sistema operativo es fundamental en el manejo de redes de computadoras actualmente. Sistemas operativos de tiempo compartido Los sistemas operativos de tiempo compartido tratan de proporcionar un reparto equitativo de los recursos comunes para dar la impresin a los usuarios de que poseen una computadora independiente. En estos sistemas el administrador de memoria proporciona aislamiento y proteccin de los programas, ya que generalmente no tienen necesidad de comunicarse entre ellos. El control de E/S se encarga de proporcionar o retirar la asignacin a los dispositivos de forma que se preserve la integridad del sistema y se proporcione servicio a todos los usuarios. El administrador de archivos proporciona proteccin y control en el acceso de la informacin, dada la posibilidad de concurrencia y conflictos al tratar de acceder a los archivos. Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10. Caractersticas de los Sistemas Operativos de tiempo compartido: Populares representantes de sistemas multiprogramados multiusuario, Ej.: sistemas de diseo asistido por computador, procesamiento de texto, etc. Dan la ilusin de que cada usuario tiene una mquina para s.

Mayora utilizan algoritmo de reparto circular. Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye despus de concedido el servicio. Evitan monopolizacin del sistema asignando tiempos de procesador (time slot). Gestin de memoria proporciona proteccin a programas residentes. Gestin de archivo debe proporcionar proteccin y control de acceso debido a que pueden existir mltiples usuarios accesando a un mismo archivo.

Sistemas operativos de tiempo real Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, estn subutilizados sus recursos con la finalidad de prestar atencin a los procesos en el momento que lo requieran. Se utilizan en entornos donde son procesados un gran nmero de sucesos o eventos. Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy especficas como control de trfico areo, bolsas de valores, control de refineras, control de laminadores. Tambin en el ramo automovilstico y de la electrnica de consumo, las aplicaciones de

tiempo real estn creciendo muy rpidamente. Otros campos de aplicacin de los Sistemas Operativos de tiempo real son los siguientes:

Control de trenes. Telecomunicaciones. Sistemas de fabricacin integrada. Produccin y distribucin de energa elctrica. Control de edificios. Sistemas multimedia.

Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra. Los Sistemas Operativos de tiempo real, cuentan con las siguientes caractersticas:

Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayora externos al sistema computacional, en breve tiempo o dentro de ciertos plazos. Se utilizan en control industrial, conmutacin telefnica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc. Objetivo es proporcionar rpidos tiempos de respuesta. Procesa rfagas de miles de interrupciones por segundo sin perder un solo suceso. Proceso se activa tras ocurrencia de suceso, mediante interrupcin. Proceso de mayor prioridad expropia recursos. Por tanto generalmente se utiliza planificacin expropiativa basada en prioridades. Gestin de memoria menos exigente que tiempo compartido, usualmente procesos son residentes permanentes en memoria. Poblacin de procesos esttica en gran medida. Poco movimiento de programas entre almacenamiento secundario y memoria. Gestin de archivos se orienta ms a velocidad de acceso que a utilizacin eficiente del recurso.

Sistemas Operativos distribuidos. Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores est en un equipo o en diferentes, en este caso es transparente para el usuario. Existen dos esquemas bsicos de stos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema dbilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local. Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo. Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc. Caractersticas de los Sistemas Operativos distribuidos:

Coleccin de sistemas autnomos capaces de comunicacin y cooperacin mediante interconexiones hardware y software.

Gobierna operacin de un S.C. y proporciona abstraccin de mquina virtual a los usuarios. Objetivo clave es la transparencia. Generalmente proporcionan medios para la comparticin global de recursos. Servicios aadidos: denominacin global, sistemas de archivos distribuidos, facilidades para distribucin de clculos (a travs de comunicacin de procesos internodos, llamadas a procedimientos remotos, etc.).

Sistemas Operativos de red. Son aquellos sistemas que mantienen a dos o ms computadoras unidas a travs de algn medio de comunicacin (fsico o no), con el objetivo primordial de poder compartir los diferentes recursos y la informacin del sistema. El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware. Los Sistemas Operativos de red ms ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

Figura. Se muestra un Sistema Operativo en red. Sistemas Operativos paralelos. En estos tipos de Sistemas Operativos se pretende que cuando existan dos o ms procesos que compitan por algn recurso se puedan realizar o ejecutar al mismo tiempo. En UNIX existe tambin la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). As, en lugar de esperar a que el proceso termine de ejecutarse (como lo hara normalmente), regresa a atender al usuario inmediatamente despus de haber creado el proceso. Ejemplos de estos tipos de Sistemas Operativos estn: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM. Con el paso del tiempo, los Sistemas Operativos fueron clasificndose de diferentes maneras, dependiendo del uso o de la aplicacin que se les daba. A continuacin se mostrarn diversos tipos de Sistemas Operativos que existen en la actualidad, con algunas de sus caractersticas:

Sistemas Operativos por lotes. Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interaccin entre los usuarios y los programas en ejecucin. Se renen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o ms trabajos como sucede en el procesamiento en serie. Estos sistemas son de los ms tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas. Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecucin muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad de la ejecucin de los trabajos. Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual est orientado a procesamiento cientfico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento acadmico. Algunas otras caractersticas con que cuentan los Sistemas Operativos por lotes son:

Requiere que el programa, datos y rdenes al sistema sean remitidos todos juntos en forma de lote. Permiten poca o ninguna interaccin usuario/programa en ejecucin. Mayor potencial de utilizacin de recursos que procesamiento serial simple en sistemas multiusuarios. No conveniente para desarrollo de programas por bajo tiempo de retorno y depuracin fuera de lnea. Conveniente para programas de largos tiempos de ejecucin (ej, anlisis estadsticos, nminas de personal, etc.) Se encuentra en muchos computadores personales combinados con procesamiento serial. Planificacin del procesador sencilla, tpicamente procesados en orden de llegada. Planificacin de memoria sencilla, generalmente se divide en dos: parte residente del S.O. y programas transitorios. No requieren gestin crtica de dispositivos en el tiempo. Suelen proporcionar gestin sencilla de manejo de archivos: se requiere poca proteccin y ningn control de concurrencia para el acceso.

Figura. Trabajos ms comunes que realiza el Sistema Operativo por lotes. Sistemas Operativos de tiempo real. Los Sistemas Operativos de tiempo real son aquelos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, estn subutilizados sus recursos con la finalidad de prestar atencin a los procesos en el momento que lo

requieran. se utilizan en entornos donde son procesados un gran nmero de sucesos o eventos. Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy especficas como control de trfico areo, bolsas de valores, control de refineras, control de laminadores. Tambin en el ramo automovilstico y de la electrnica de consumo, las aplicaciones de tiempo real estn creciendo muy rpidamente. Otros campos de aplicacin de los Sistemas Operativos de tiempo real son los siguientes:

Control de trenes. Telecomunicaciones. Sistemas de fabricacin integrada. Produccin y distribucin de energa elctrica. Control de edificios. Sistemas multimedia.

Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra. Los Sistemas Operativos de tiempo real, cuentan con las siguientes caractersticas:

Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayora externos al sisterma computacional, en breve tiempo o dentro de ciertos plazos. Se utlizan en control industrial, conmutacin telefnica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc. Objetivo es proporcionar rpidos tiempos de respuesta. Procesa rfagas de miles de interrupciones por segundo sin perder un solo suceso. Proceso se activa tras ocurrencia de suceso, mediante interrupcin. Proceso de mayor prioridad expropia recursos. Por tanto generalmente se utliza planificacin expropiativa basada en prioridades. Gestin de memoria menos exigente que tiempo compartido, usualmente procesos son residentes permanentes en memoria. Poblacin de procesos esttica en gran medida. Poco movimiento de programas entre almacenamiento secundario y memoria. Gestin de archivos se orienta ms a velocidad de acceso que a utlizacin eficiente del recurso.

Sistemas Operativos de multiprogramacin (o Sistemas Operativos de multitarea). Se distinguen por sus habilidades para poder soportar la ejecucin de dos o ms trabajos activos (que se estn ejecutado) al mismo tiempo. Esto trae como

resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al mximo su utilizacin. Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno est usando el procesador, o un procesador distinto, es decir, involucra mquinas con ms de una UCP. Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MACOS, OS/2, soportan la multitarea. Las caractersticas de un Sistema Operativo de multiprogramacin o multitarea son las siguientes:

Mejora productividad del sistema y utilizacin de recursos. Multiplexa recursos entre varios programas. Generalmente soportan mltiples usuarios (multiusuarios). Proporcionan facilidades para mantener el entorno de usuarios inndividuales. Requieren validacin de usuario para seguridad y proteccin. Proporcionan contabilidad del uso de los recursos por parte de los usuarios. Multitarea sin soprte multiusuario se encuentra en algunos computadores personales o en sistemas de tiempo real. Sistemas multiprocesadores son sistemas multitareas por definicin ya que soportan la ejecucin simultnea de mltiples tareas sobre diferentes procesadores. En general, los sistemas de multiprogramacin se caracterizan por tener mltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos perifricos.

Sistemas Operativos de tiempo compartido. Permiten la simulacin de que el sistema y sus recursos son todos para cada usuarios. El usuario hace una peticin a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecer en la terminal del usuario. Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusin de que tiene el sistema dedicado para s mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administracin de memoria principal y secundaria. Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10. Caractersticas de los Sistemas Operativos de tiempo compartido:

Populares representantes de sistemas multiprogramados multiusuario, ej: sistemas de diseo asistido por computador, procesamiento de texto, etc. Dan la ilusin de que cada usuario tiene una mquina para s. Mayora utilizan algoritmo de reparto circular. Programas se ejcutan con prioridad rotatoria que se incrementa con la espera y disminuye despus de concedido el servicio. Evitan monopolizacin del sistema asignando tiempos de procesador (time slot). Gestin de memoria proporciona proteccin a programas residentes. Gestin de archivo debe proporcionar proteccin y control de acceso debido a que pueden existir mltiples usuarios accesando un mismo archivos.

Sistemas Operativos distribuidos. Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores est en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas bsicos de stos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema dbilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local. Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo. Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc. Caracteristicas de los Sistemas Operativos distribuidos:

Coleccin de sistemas autnomos capaces de comunicacin y cooperacin mediante interconexiones hardware y software . Gobierna operacin de un S.C. y proporciona abstraccin de mquina virtual a los usuarios. Objetivo clave es la transparencia. Generalmente proporcionan medios para la comparticin global de recursos. Servicios aadidos: denominacin global, sistemas de archivos distribuidos, facilidades para distribucin de clculos (a travs de comunicacin de procesos internodos, llamadas a procedimientos remotos, etc.).

Sistemas Operativos de red.

Son aquellos sistemas que mantienen a dos o ms computadoras unidas atravs de algn medio de comunicacin (fisico o no), con el objetivo primordial de poder compartir los diferentes recursos y la informacin del sistema. El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware. Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

Sistemas Operativos paralelos. En estos tipos de Sistemas Operativos se pretende que cuando existan dos o ms procesos que compitan por algn recurso se puedan realizar o ejecutar al mismo tiempo. En UNIX existe tambin la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, sinulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). As, en lugar de esperar a que el proceso termine de ejecutarse (como lo hara normalmente), regresa a atender al usuario inmediatamente despus de haber creado el proceso. Ejemplos de estos tipos de Sistemas Operativos estn: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.

1.5Estructura (niveles o estratos de diseo).


Internamente los sistemas operativos estructuralmente de se clasifican segn como se hayan organizado intrnamente en su diseo, por esto la clasificacin ms comn de los S.O. son:

Sistemas monolticos: En estos sistemas operativos se escriben como un conjunto de procedimientos, cada uno de los cuales puede llamar a cualquiera de los otros siempre que lo necesite. Cuando se emplea esta tcnica, cada procedimiento del sistema tiene una interfaz bien definida en trminos de parmetros y resultados, y cada una tiene la libertad de llamar a cualquiera otra, si la ltima ofrece algn clculo til que la primera necesite. Para construir el programa objeto real del sistema operativo cuando se usa este mtodo, se compilan todos los procedimientos individuales a archivos que contienen los procedimientos y despus se combinan todos en un solo archivo objeto con el enlazador. En trminos de ocultamiento de informacin, esencialmente no existe ninguno; todo procedimiento es visible para todos (al contrario de una estructura que contiene mdulos o paquetes, en los cuales mucha informacin es local a un mdulo y slo pueden llamar puntos de registro designados oficialmente del exterior del mdulo) Esta organizacin sugiere una estructura bsica del sistema operativo: 1.- Un programa central que invoque el procedimiento de servicio solicitado (Shell o Kernel)

2.- Un conjunto de procedimientos de servicios que realice las llamadas al sistema. 3.- Un conjunto de procedimientos de uso general que ayude a los procedimientos de servicio

Sistemas en estratos: Estos sistemas operativos se organizan como una jerarqua de estratos, cada uno construido arriba del que est debajo de l. El primer sistema construido en esta forma fuel el sistema THE que se fabric en Technische Hogeschool Eindhoven de Holanda por E. W Dijkstra (1968) y sus alumnos. El sistema THE era un sistema de lote para una computadora alemana, la Electrolgica X8, que tena 32K de palabras de 27 bits ( los bits eran costosos en aquellos das) El sistema tena 6 estratos, estos se muestran en la siguiente tabla: 5 4 3 2 1 0 Operador de THE Programas del usuario Administracin de Entrada/Salida Comunicacin entre el operador y el proceso Administracin de la memoria y el tambor magntico Distribucin del procesador y multiprogramacin

- El estrato 0 trabajaba con la distribucin del procesador, cambiando entre procesos cuando ocurran interrupciones o los relojes expiraban. Sobre el estrato 0, el sistema constaba de procesos secuenciales, cada uno de los cuales poda programarse sin tener que preocuparse por el hecho de que mltiples procesos estuvieran corriendo en un solo procesador. En otras palabras, el estarto 0 ofreca la multiprogramacin bsica de la CPU. El estrato 1 realizaba el manejo de memoria. Este distribua espacio para procesos contenidos en la memoria central y en un tambor de 512K palabras que se usaba para contener partes de procesos (pginas) para las cuales no haba espacio en la memoria central. Sobre el estrato 1, los procesos no tena que preocuparse de si estaban en la memoria o en el tambor; el software del estrato 1 se haca cargo de asegurar que las pginas se trajeran a la memoria siempre que se necesitaran. El estrato 2 manejaba la comunicacin entre cada proceso y la consola de operador. El estrato 3 se haca cargo de manejar los dispositivos de E/S y de separar la informacin en flujo que entraba y sal de ellos. Sobre el estrato 3 cada proceso

poda trabajar con dispositivos de E/S abstractos con propiedades agradables, en vez de dispositivos reales con muchas peculiaridades El estrato 4 era donde se encontraban los programas de los usuarios. No tenan que preocuparse por el manejo de los procesos, memoria, consola o E/S. El proceso operador del sistema se localizaba en el estrato 5. En esta unidad examinaremos cuatro estructuras distintas que ya han sido probadas, con el fin de tener una idea ms extensa de cmo esta estructurado el sistema operativo. Veremos brevemente algunas estructuras de diseos de sistemas operativos. Estructura modular. Tambin llamados sistemas monolticos. Este tipo de organizacin es con mucho la mas comn; bien podra recibir el subtitulo de "el gran embrollo". La estructura consiste en que no existe estructura alguna. El sistema operativo se escribe como una coleccin de procedimientos, cada uno de los cuales puede llamar a los dems cada vez que as lo requiera. Cuando se usa esta tcnica, cada procedimiento del sistema tiene una interfaz bien definida en trminos de parmetros y resultados y cada uno de ellos es libre de llamar a cualquier otro, si este ultimo proporciona cierto clculo til para el primero. Sin embargo incluso en este tipo de sistemas es posible tener al menos algo de estructura. Los servicios (llamadas al sistema) que proporciona el sistema operativo se solicitan colocando los parmetros en lugares bien definidos, como en los registros o en la pila, para despus ejecutar una instruccin especial de trampa de nombre "llamada al ncleo" o "llamada al supervisor". Esta instruccin cambia la mquina del modo usuario al modo ncleo y transfiere el control al sistema operativo, lo que se muestra en el evento (1) de la figura 1. El sistema operativo examina entonces los parmetros de la llamada, para determinar cual de ellas se desea realizar, como se muestra en el evento (2) de la figura 1. A continuacin, el sistema operativo analiza una tabla que contiene en la entrada k un apuntador al procedimiento que realiza la k-esima llamada al sistema. Esta operacin que se muestra en (3) de la figura 1, identifica el procedimiento de servicio, al cual se llama. Por ultimo, la llamada al sistema termina y el control regresa al programa del usuario. Figura 1. La forma en que debe hacerse una llamada al sistema: (1) el programa del usuario es atrado hacia el ncleo. (2) el sistema operativo determina el nmero del servicio solicitado. (3) el sistema operativo localiza y llama al procedimiento correspondiente al servicio. (4) el control regresa al programa del usuario. Esta organizacin sugiere una organizacin bsica del sistema operativo: 1.- un programa principal que llama al procedimiento del servicio solicitado. 2.- un conjunto de procedimientos de servicio que llevan a cabo las llamadas al sistema.

3.- un conjunto de procedimientos utilitarios que ayudan al procedimiento de servicio. En este modelo, para cada llamada al sistema existe un procedimiento de servicio que se encarga de l. Los procedimientos utilitarios hacen cosas necesarias para varios procedimientos de servicio, por ejemplo buscar los datos de los programas del usuario.

Estructura por microkernel. Las funciones centrales de un SO son controladas por el ncleo (kernel) mientras que la interfaz del usuario es controlada por el entorno (shell). Por ejemplo, la parte ms importante del DOS es un programa con el nombre "COMMAND.COM" Este programa tiene dos partes. El kernel, que se mantiene en memoria en todo momento, contiene el cdigo mquina de bajo nivel para manejar la administracin de hardware para otros programas que necesitan estos servicios, y para la segunda parte del COMMAND.COM el shell, el cual es el interprete de comandos Las funciones de bajo nivel del SO y las funciones de interpretacin de comandos estn separadas, de tal forma que puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de usuario diferente. Esto es exactamente lo que sucede cuando cargas Microsoft Windows, el cual toma el lugar del shell, reemplazando la interfaz de lnea de comandos con una interfaz grfica del usuario. Existen muchos "shells" diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo SO MS-DOS a partir de la versin 5.0 incluy un Shell llamado DOS SHELL.

Estructura por anillos concntricos (capas). El sistema por "capas" consiste en organizar el sistema operativo como una jerarqua de capas, cada una construida sobre la inmediata inferior. El primer sistema construido de esta manera fue el sistema THE (Technische Hogeschool Eindhoven), desarrollado en Holanda por E. W. Dijkstra (1968) y sus estudiantes. El sistema tenia 6 capas, como se muestra en la figura 3. La capa 0 trabaja con la asignacin del procesador y alterna entre los procesos cuando ocurren las interrupciones o expiran los cronmetros. Sobre la capa 0, el sistema consta de procesos secunciales, cada uno de los cuales se podra programar sin importar que varios procesos estuvieran ejecutndose en el mismo procesador, la capa 0 proporcionaba la multiprogramacin bsica de la CPU. La capa 1 realizaba la administracin de la memoria. Asignaba el espacio de memoria principal para los procesos y un recipiente de palabras de 512K se utilizaba para almacenar partes de los procesos (pginas) para las que no exista lugar en la memoria principal. Por encima de la capa 1, los procesos no deban preocuparse si estaban en la memoria o en el recipiente; el software de la capa 1 se encargaba de garantizar que las pginas llegaran a la memoria cuando fueran necesarias. La capa 2 se encargaba de la comunicacin entre cada proceso y la consola del operador. Por encima de esta capa, cada proceso tiene su propia consola de operador. La capa 3 controla los dispositivos de E/S y guarda en almacenes (buffers) los flujos de informacin entre ellos. Por encima de la capa 3, cada proceso puede trabajar con dispositivos exactos de E/S con propiedades adecuadas, en vez de dispositivos reales con muchas peculiaridades. La capa 4 es donde estaban los programas del usuario, estos no tenan que preocuparse por el proceso, memoria, consola o control de E/S. el proceso operador del sistema se localizaba en la capa 5 Una generalizacin mas avanzada del concepto de capas se presento en el sistema MULTICS. En lugar de capas, MULTICS estaba organizado como una serie de anillos concntricos, siendo los anillos interiores los privilegiados. Cuando

un procedimiento de un anillo exterior deseaba llamar a un procedimiento de un anillo interior, debi hacer el equivalente a una llamada al sistema Mientras que el esquema de capas de THE era en realidad un apoyo al diseo, debido a que todas las partes del sistema estaban ligadas entre si en un solo programa objeto, en MULTICS, el mecanismo de anillos estaba mas presente durante el tiempo de ejecucin y era reforzado por el hardware. La ventaja del mecanismo de anillos es su facilidad de extensin para estructurar subsistemas del usuario. 5 4 3 2 1 0 El operador Programas del usuario Control de entrada/salida Comunicacin operador-proceso Administracin de la memoria y del disco Asignacin del procesador y multiprogramacin

Figura 3. Estructura del sistema operativo THE. Estructura cliente servidor Una tendencia de los sistemas operativos modernos es la de explotar la idea de mover el cdigo a capas superiores y eliminar la mayor parte posible del sistema operativo para mantener un ncleo mnimo. El punto de vista usual es el de implantar la mayora de las funciones del sistema operativo en los procesos del usuario. Para solicitar un servicio, como la lectura de un bloque de cierto archivo, un proceso del usuario (denominado proceso cliente) enva la solicitud a un proceso servidor, que realiza entonces el trabajo y regresa la respuesta. En este modelo, que se muestra en la figura 4, lo nico que hace el ncleo es controlar la comunicacin entre los clientes y los servidores. Al separar el sistema operativo en partes, cada una de ellas controla una faceta del sistema, como el servicio a archivos, servicios a procesos, servicio a terminales o servicio a la memoria, cada parte es pequea y controlable. Adems como todos los servidores se ejecutan como procesos en modo usuario y no en modo ncleo, no tienen acceso directo al hardware. En consecuencia si hay un error en el servidor de archivos, ste puede fallar, pero esto no afectar en general a toda la mquina. Otra de las ventajas del modelo cliente-servidor es su capacidad de adaptacin para su uso en los sistemas distribuidos Si un cliente se comunica con un servidor mediante mensajes, el cliente no necesita saber si el mensaje se maneja en forma local, en su mquina, o si se enva por medio de una red a un servidor en una mquina remota. En lo que respecta al cliente, lo mismo ocurre en ambos casos: se envi una solicitud y se recibi una respuesta. Sistemas Operativos por su Estructura (Visin Interna).

Segn, se deben observar dos tipos de requisitos cuando se construye un sistema operativo, los cuales son: Requisitos de usuario: Sistema fcil de usar y de aprender, seguro, rpido y adecuado al uso al que se le quiere destinar. Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma de operacin, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad. A continuacin se describen las distintas estructuras que presentan los actuales sistemas operativos para satisfacer las necesidades que de ellos se quieren obtener. Estructura Monoltica. Es la estructura de los primeros sistemas operativos constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra. Las caractersticas fundamentales de este tipo de estructura son:

Construccin del programa final a base de mdulos compilados separadamente que se unen a travs del ligador. Buena definicin de parmetros de enlace entre las distintas rutinas existentes, que puede provocar mucho acoplamiento. Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora, como memoria, disco, etc.

Generalmente estn hechos a medida, por lo que son eficientes y rpidos en su ejecucin y gestin, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o tipos de aplicaciones. Estructura Jerrquica.

A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se hizo necesaria una mayor organizacin del software, del sistema operativo, donde una parte del sistema contena subpartes y esto organizado en forma de niveles. Se dividi el sistema operativo en pequeas partes, de tal forma que cada una de ellas estuviera perfectamente definida y con un claro interface con el resto de elementos. Se constituy una estructura jerrquica o de niveles en los sistemas operativos, el primero de los cuales fue denominado THE (Technische Hogeschool, Eindhoven), de Dijkstra, que se utiliz con fines didcticos. Se puede pensar tambin en estos sistemas como si fueran `multicapa'. Multics y Unix caen en esa categora.

En la estructura anterior se basan prcticamente la mayora de los sistemas operativos actuales. Otra forma de ver este tipo de sistema es la denominada de anillos concntricos o "rings".

En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa (trap), por donde pueden entrar las llamadas de las capas inferiores. De esta forma, las zonas ms internas del sistema operativo o ncleo del sistema

estarn ms protegidas de accesos indeseados desde las capas ms externas. Las capas ms internas sern, por tanto, ms privilegiadas que las externas. Mquina Virtual.

Se trata de un tipo de sistemas operativos que presentan una interface a cada proceso, mostrando una mquina que parece idntica a la mquina real subyacente. Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas: la multiprogramacin y la mquina extendida. El objetivo de los sistemas operativos de mquina virtual es el de integrar distintos sistemas operativos dando la sensacin de ser varias mquinas diferentes.

El ncleo de estos sistemas operativos se denomina monitor virtual y tiene como misin llevar a cabo la multiprogramacin, presentando a los niveles superiores tantas mquinas virtuales como se soliciten. Estas mquinas virtuales no son mquinas extendidas, sino una rplica de la mquina real, de manera que en cada una de ellas se pueda ejecutar un sistema operativo diferente, que ser el que ofrezca la mquina extendida al usuario

Cliente-Servidor(Microkernel).

El tipo ms reciente de sistemas operativos es el denominado Cliente-servidor, que puede ser ejecutado en la mayora de las computadoras, ya sean grandes o pequeas. Este sistema sirve para toda clase de aplicaciones por tanto, es de propsito general y cumple con las mismas actividades que los sistemas operativos convencionales. El ncleo tiene como misin establecer la comunicacin entre los clientes y los servidores. Los procesos pueden ser tanto servidores como clientes. Por ejemplo,

un programa de aplicacin normal es un cliente que llama al servidor correspondiente para acceder a un archivo o realizar una operacin de entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede actuar como servidor para otro." [Alcal92]. Este paradigma ofrece gran flexibilidad en cuanto a los servicios posibles en el sistema final, ya que el ncleo provee solamente funciones muy bsicas de memoria, entrada/salida, archivos y procesos, dejando a los servidores proveer la mayora que el usuario final o programador puede usar. Estos servidores deben tener mecanismos de seguridad y proteccin que, a su vez, sern filtrados por el ncleo que controla el hardware. Actualmente se est trabajando en una versin de UNIX que contempla en su diseo este paradigma.

1.6Ncleo.
El Ncleo del Sistema Operativo;

Todas las operaciones en las que participan procesos son controladas por la parte del sistema operativo denominada ncleo (nucleus, core o kernel, en ingls). El ncleo normalmente representa slo una pequea parte de lo que por lo general se piensa que es todo el sistema operativo, pero es tal vez el cdigo que ms se utiliza. Por esta razn, el ncleo reside por lo regular en la memoria principal, mientras que otras partes del sistema operativo son cargadas en la memoria principal slo cuando se necesitan. Los ncleos se disean para realizar "el mnimo" posible de procesamiento en cada interrupcin y dejar que el resto lo realice el proceso apropiado del sistema, que puede operar mientras el ncleo se habilita para atender otras interrupciones. El ncleo de un sistema operativo normalmente contiene el cdigo necesario para realizar las siguientes funciones: Manejo de interrupciones. Creacin y destruccin de procesos. Cambio de estado de los procesos. Despacho. Suspensin y reanudacin de procesos. Sincronizacin de procesos. Comunicacin entre procesos. Manipulacin de los bloques de control de procesos. Apoyo para las actividades de entrada/salida. Apoyo para asignacin y liberacin de memoria. Apoyo para el sistema de archivos. Apoyo para el mecanismo de llamada y retorno de un procedimiento. Apoyo para ciertas funciones de contabilidad del sistema. Ncleo o Kernel y niveles de un Sistema Operativo.

El Kernel consiste en la parte principal del cdigo del sistema operativo, el cual se encargan de controlar y administrar los servicios y peticiones de recursos y de hardware con respecto a uno o varios procesos, este se divide en 5 capas: Nivel 1. Gestin de Memoria: que proporciona las facilidades de bajo nivel para la gestin de memoria secundaria necesaria para la ejecucin de procesos. Nivel 2. Procesador: Se encarga de activar los cuantums de tiempo para cada uno de los procesos, creando interrupciones de hardware cuando no son respetadas. Nivel 3. Entrada/Salida: Proporciona las facilidades para poder utilizar los dispositivos de E/S requeridos por procesos. Nivel 4. Informacin o Aplicacin o Interprete de Lenguajes: Facilita la

comunicacin con los lenguajes y el sistema operativo para aceptar las ordenes en cada una de las aplicaciones. Cuando se solicitan ejecutando un programa el software de este nivel crea el ambiente de trabajo e invoca a los procesos correspondientes. Nivel 5. Control de Archivos: Proporciona la facilidad para el almacenamiento a largo plazo y manipulacin de archivos con nombre, va asignando espacio y acceso de datos en memoria. El ncleo y los procesos. El ncleo (Kernel) de un sistema operativo es un conjunto de rutinas cuya misin es la de gestionar el procesador, la memoria, la entrada/salida y el resto de procesos disponibles en la instalacin. Toda esta gestin la realiza para atender al funcionamiento y peticiones de los trabajos que se ejecutan en el sistema. Los procesos relacionados con la entidad bsica de los sistemas operativos actuales: Los procesos.

El esquema general del mismo es el siguiente: Definicin y concepto de proceso. El Bloque de Control de Proceso (PCB) como imagen donde el sistema operativo ve el estado del proceso. Estados por los que pasa un proceso a lo largo de su existencia en la computadora. Operaciones que se pueden realizar sobre un proceso. Clasificacin de los procesos segn su forma de ejecucin, de carga, etc.

1.6.1Interrupciones (FLIH).
El GESTOR DE INTERRUPCIONES DE PRIMER NIVEL: FLIH (First Level Interruption Handler): `Algo' que gestione las interrupciones EL CONTROLADOR DE INTERRUPCIONES DE PRIMER NIVEL: EL FLIH En principio, una seal es una indicacin por la que se altera la secuencia de ejecucin. Hay varios tipos de interrupcin, que se clasifican en funcin de su origen: ! EXTERNAS: Se producen fuera del procesador ! INTERNAS: Se producen dentro del procesador Si precisamos ms: Las interrupciones EXTERNAS, las denominamos: INTERRUPCIONES Las interrupciones INTERNAS, pueden ser:

EXTRACDIGOS: Operaciones que manipulan elementos internos del

procesador

TRAPS o EXCEPCIONES

La misin del FLIH, est en el ncleo, para dar una respuesta a cualquier tipo de seal que se produce en el sistema. Al producirse una seal, la atrapa el Hardware de interrupciones, que como mnimo, salva el contenido del PC en el PCB del proceso. Adems, puede que tambin salve el resto del entorno voltil (tambin en el PCB). Tambin direcciona al FLIH, es decir, pone en el PC la direccin del FLIH. Por lo tanto, podemos decir, que el FLIH es un elemento software, es un proceso.

Ya hemos dicho que el FLIH es Software, pues se trata de un sencillo programa definido sobre un rea de memoria dedicada a l, un rea de memoria especfica; es decir, el FLIH siempre est en la misma parte de la memoria. El FLIH hace dos cosas: 1) Determina el origen de la interrupcin (Averigua qu interrupcin se ha producido) 2) Direcciona la rutina que trata esa interrupcin Si el FLIH es un programa, necesita parte del entorno voltil: PC, ACC, ... Por ello, debe salvarse el entorno voltil del proceso interrumpido. El entorno voltil del proceso interrumpido, se puede salvar en dos momentos: Puede salvarlo el Hardware de interrupciones Si no lo salva el Hardware de interrupciones, ser lo primero que haga el FLIH, antes incluso de determinar el origen de la interrupcin NOTA: Hay sistemas que definen unos registros mquina para uso exclusivo por parte del Sistema Operativo, para evitar tener que estar salvando y restaurando el contenido del entorno voltil. Formas de determinar el origen de una interrupcin: MEDIANTE SOFTWARE: Mediante una cadena de saltos o IFs (o con una CASE) El FLIH, tiene un nico punto de entrada: Ventaja: ! Es muy sencillo Desventaja: ! Rendimiento muy pobre (Cuantas ms interrupciones, peor rendimiento) Posible solucin:

Poner al principio de la cadena de saltos las comprobaciones de las

interrupciones ms frecuentes. MEDIANTE HARDWARE: Mediante el uso de un comparador simultneo, incluido en el Hardware de interrupciones. El origen de la interrupcin, no lo va a detectar el FLIH, lo va a detectar el Hardware de interrupciones. El FLIH, tiene N puntos de entrada, siendo N el nmero de interrupciones que reconoce el sistema. Ventaja: ! Es casi simultneo, mucho ms rpido que la secuencia de IFs Desventaja: ! Coste Elevado: Un comparador para muchas interrupciones es muy caro COMBINANDO SOFTWARE Y HARDWARE: El comparador distingue los TIPOS de interrupcin. Las interrupciones se agrupan por tipos. EL Hardware de interrupciones: 1) Salva el contenido del entorno voltil 2) Mediante un comparador simultneo, determina el tipo al que pertenece la interrupcin producida 3) Se direcciona al FLIH, donde una pequea cadena de saltos determina la interrupcin en concreto que se ha producido Si N es el nmero de tipos de interrupciones, el FLIH tiene N puntos de entrada. Cuando el FLIH est atendiendo una interrupcin, pueden producirse otras. Qu hacemos con esas otras interrupciones que se producen?

Inhibir (ignorar) el resto de interrupciones mientras se atiende una. Pero esto no puede hacerse siempre

Las interrupciones ms prioritarias deben tratarse nada ms producirse

Posible solucin:

Definir niveles de prioridad entre las interrupciones, de forma que si

se est atendiendo una interrupcin, quedarn pendientes (o inhibidas) las de menor o igual prioridad. Problema:

Si se produce una interrupcin ms prioritaria que la que se est atendiendo, debe dejarse de atender la que se estaba atendiendo para atender la ms prioritaria. Por lo tanto, debe guardarse el entorno voltil de la interrupcin que estaba atendiendo. La interrupcin que pasa a ser atendida, tambin puede tener que dejarse, al llegar otra de mayor prioridad ... Por tanto, es necesario un lugar a para almacenar entornos voltiles, es decir, un PCB, por cada prioridad de interrupcin - 1.

Inicio del servicio de una interrupcin: Las interrupciones no pueden estar inhibidas mucho tiempo, es decir, el tiempo de tratamiento del FLIH debe ser corto. Problema:

Hay interrupciones cuyo tratamiento lleva mucho tiempo. En ese caso, el FLIH, slo inicia su tratamiento, y luego, lama a otra rutina ajena o externa a l, que realiza el resto del tratamiento.

Una interrupcin puede implicar cambio(s) de estado en algn(os) proceso(s). TIPOS DE INTERRUPCIONES:

Interrupciones que provocan cambios de estado del proceso en ejecucin Algunos extracdigos: Peticiones de E/S Seales de error para suspensin Interrupciones de reloj: Interrupciones por expiracin del temporizador Interrupciones que provocan cambios de estado en procesos que no estn en ejecucin

Interrupciones de E/S

1.6.2Despachador(Scheduler).
Schedulling.Colas de Schedulling: Los procesos que estn en estado de espera se quedan en una lista llamada lista o cola de ready. Los procesos que hacen uso de E/S se guardan en una cola de E/S. Hay una cola de E/S por cada dispositivo. Schedullers: Componente del sistema operativo responsable de decidir quien hara uso de la CPU. Algoritmos de Schedulling.FCFS (First Come First Served) Cuando un proceso llega a la cola de ready su PCB es agregado al final de la lista. El uso de la CPU es otorgado al primero de la lista y una vez que un proceso comienza a ejecutar no deja de hacerlo hasta que se termina. El tiempo medio de espera para este algoritmo suele ser bastante alto. SJF (Shortest Job First) Una vez que un proceso ejecuta no deja de hacerlo hasta que voluntariamente cambia de estado (no hay interrupcin por tiempo). Asocia a cada proceso el tiempo de CPU que habr de usar en su prxima vuelta y va a decidir por el ms pequeo. Si hubiera mas de uno utiliza FCFS para desempatar. El mayor problema de este algoritmo radica en el clculo de tiempo de uso de CPU. Este se puede aproximar a: Tn+1= .tn+(1- )Tn 0< <1 Tiempo calculado en la vuelta n Prximo uso de CPU Tiempo usado en la vuelta n El problema de este algoritmo es que el tiempo de espera para los procesos largos puede ser demasiado largo. Constantemente se estn entregando los procesos mas cortos y el ms grande nunca ser ejecutado. El FJS se puede subdividir en 2 tipos de algoritmos: PREEMPTIVO o NO PREEMPTIVO

Preemptivo significa que si mientras un proceso se esta ejecutando, entra a la cola de ready un proceso mas corto, el proceso en la cola de ready se apropia de la CPU y comienza su ejecucin.

}Priority Schedulling Asocia a cada proceso una prioridad. Luego selecciona el proceso con mas prioridad para desempatar. En caso de que hubieran dos o mas procesos con la misma prioridad, se usa FCFS para desempatar. Hay dos tipo de prioridad en los procesos: la prioridad externa definidas a travs del sistema operativo y la prioridad interna definida por el tiempo de uso de la CPU, el control de E/S, etc. Este algoritmo tambin se puede ejecutar de dos maneras: preemptivo y no preemptivo. El algoritmo soluciona el problema del looping pero el problema es que los procesos con prioridad muy baja tienen chance de no ejecutarse nunca. Para solucionar este problema de espera infinita el envejecimiento de un proceso eleva su prioridad. Round Robin Este es un algoritmo basado en FCFS. Trata la cola de ready como una lista circular. Introduce el concepto de "Quantum" o "Time slice" : mayor tiempo de cpu que podr hacer uso un proceso en cada vuelta. Si el valor del Quantum fuese muy grande, el algoritmo funcionara como un FCFS. Si el Quantum fuera muy chico se produce un overhead por context switch (significa que el Quantum se setea en un tiempo menor al que demora el context switch). Este algoritmo es fuertemente dependiente del Quantum o Time Slice. El Quantum debe ser mayor que el 80% de los tiempos de CPU que hagan uso los procesos, pero no el proceso entero sino por cada burst. MQS (Multilevel Queue Schedulling) Este algoritmo parte la cola de ready en un numero de colas n. Luego existe un criterio para clasificar en que cola ser colocado un proceso cuando que queda en estado de ready. Cada cola puede manejar su propio algoritmo de schedulling MFQS (Multilevel Feed Back Queue Schedulling) Define los siguientes parmetros:

Numero de colas Algoritmo de schedulling usado en cada cola Mtodo para decidir a que cola entrara un proceso cuando entre a estado de ready Mtodo para decidir cuando un proceso ser enviado a una cola de menor prioridad.

Mltiple CPUPara que mas de una CPU no tomen el mismo proceso de la cola de ready se utilizan mecanismos de sincronizacin. Otro mecanismo seria partir la cola en n colas (n CPUs), pero si se hiciera esto podra llegar a suceder que los procesos de una CPU fueran todos cortos y los de otra fueran largos por lo cual habra una CPU que quedara libre y otra ejecutando. Otra forma sera que una CPU decidiera cual CPU va a ejecutar cual proceso. Esto puede llevar a que la CPU que esta seleccionando quede un poco mas cargada porque en algn momento estar ejecutando el algoritmo de seleccin y un proceso asignado a ella.

1.6.3Primitivas de comunicacin(IPC).
Hay varias primitivas de comunicacin entre procesos (IPC abreviadamente). La mayora de ellas requieren algn tipo de modificacin a los programas para poder usarlas, pero hay una que es fcilmente accesible desde la lnea de comandos usando la metfora de ficheros estndar en UNIX y que no requiere modificacin alguna a los programas. Se trata de las tuberas. Siguiendo la metfora, UNIX nos permite manejar tuberas como si fueran ficheros normales. Primitivas de comunicacin Algunos kernel tienen operaciones especficas ajustadas a la invocacin remota. Amoeba, por ejemplo, tiene DoOperation/GetRequest--SendReply. Es ms eficiente que el simple Send-Receive (y ms fiable y legible). Amoeba y otros sistemas tienen tambin comunicacin con grupos o radiado (parcial) (broadcast). Es importante para tolerancia de fallos, mejora de rendimiento y reconfigurabilidad. Diversas variantes: como mensajes, como mltiples RPCs, con un slo valor devuelto, con varios valores devueltos (todos juntos o pidiendo uno a uno), etc. En la prctica, mecanismos de comunicacin de alto nivel tales como RPC/RMI, radiado y notificacin de sucesos (parecido a los manejadores de interrupciones), se implementan en middleware y no en el kernel. Normalmente, sobre un nivel TCP/IP, por razones de transportabilidad, (aunque resulta ``caro").

La IPC ofrece un mecanismo que permite a los procesos cumunicarse y sincronizar sus acciones. La mejor forma de proveer la comunicacin entre procesos es mediante un sistema de mensajes. La funcin de un sistema de mensaje es permitir a los procesos comunicarse entre s sin tener que recurrir a variables compartidas. Un recurso IPC ofrece por los menos 2 operaciones: enviar (mensaje) (send) y recibir (mesanje) (receive). Sea P y Q dos procesos que requieren comunicarse debern enviarse mensajes; para ello debe existir un enlace de comunicacin entre ellos. Este enlace puede implementarse de diversas maneras. Los mtodos para implementar lgicamente un enlace y las operaciones de enviar / recibir son:

Comunicacin directa o indirecta Uso de buffer automtico o explcito Envo por copia o envo por referencia Mensajes de tamao fijo o variables

Comunicacin directa: Aqu cada proceso que desee comunicarse debe nombrar explcitamente el destinatario o el remitente de la comunicacin. Este esquema se define las primitivas de la sig. manera: Enviar(P,mensaje): Enviar un mensaje al proceso P. Recibir(Q. Mensaje): Recibir un mensaje del proceso Q. Con las siguientes propiedades:

Se establece automticamente el enlace entre cada par de procesos. Lo procesos slo necesitan conocer la identidad de otro para la comunicacin. Solo hay un enlace entre cada par de procesos. El enlace puede ser unidireccional o bidireccional.

Este esquema exhibe un simetra de direccionamiento; es decir, los procesos tanto emisor como receptor necesitan nombrar al otro para comunicarse. Otra variante de este esquema es utilizar asimetra de direccionamiento, con la sig. primitivas: Enviar(P,mensaje): enviar un mensaje al proceso P. Recibir(Id,mensaje) : recibir un mensaje de cualquier proceso con el que hubo comunicacin. Aqu slo el emisor nombra al destinatario; el destinatario no sta obligado a nombrar al emisor. Comunicacin indirecta: Aqu los mensajes se envan a, y se reciben de, buzones (tambin llamados PUERTOS). Un buzn puede considerarse en lo abstracto como un objeto en el que los procesos pueden colocar mensajes y del cual se pueden sacar mensajes. Cada buzn tiene una identificacin nica. Aqu dos proceso se pueden comunicarse slo si comparten un buzn. Las primitivas se definen como: Enviar (A,mensaje): enviar un mensaje al buzn A. Recibir (A,mensaje): recibir un mensaje del buzn A. Un enlace de comunicacin tiene las sig. propiedades:

Se establece un enlace entre un par de procesos slo si tienen un buzn compartido. Un enlace puede estar asociado a ms de dos procesos. Entre cada par de procesos en comunicacin puede haber varios enlaces distintos, cada uno de los cuales corresponder a un buzn. Los enlaces pueden ser unidireccionales o bidereccionales.

Hay varias formas de designar el dueo de y los usuarios de un buzn dado. Una posibilidad es permitir que un proceso declare variables de tipo buzn. El proceso que declara un buzn es el dueo de ese buzn. Cualquier otro proceso que conozca el nombre de dicho buzn podr usarlo.

Por otro lado, un buzn propiedad del S.O tiene existencia propia; es independiente y no est unido a ningn proceso especfico. El S.O establece un mecanismo que permite a un proceso:

Crear un buzn nuevo Enviar y recibir mensajes a travs del buzn Destruir un buzn.

Comunicacin entre procesos (IPC) Los procesos en UNIX no comparten memoria, ni siquiera los padres con sus hijos. Por tanto, hay que establecer algn mecanismo en caso de que se quiera comunicar informacin entre procesos concurrentes. El sistema operativo UNIX define tres clases de herramientas de comunicacin entre procesos (IPC): los semforos, la memoria compartida y los mensajes. El tipo de llamadas al sistema para estos IPCs es anlogo al de los semforos: existen sendas funciones shmget y msgget para crear o enlazarse a un segmento de memoria compartida o a una cola de mensajes, respectivamente. Para alterar propiedades de estos IPCs, incluyendo su borrado, estn las funciones shmctl y msgctl. Para enviar o recibir mensajes, se utilizan las funciones msgsnd y msgrcv. En este apartado se describirn brevemente algunas llamadas al sistema disponibles para el uso de las IPCs dentro de la programacin en C.

Vous aimerez peut-être aussi