Sei sulla pagina 1di 26

Sistemas Operativos 1.

INTRODUCCIN A LOS SISTEMAS OPERATIVOS


1.1 CONCEPTO Y FUNCIONES DEL SISTEMA OPERATIVO
En los aos sesenta, un sistema operativo se podra haber definido como el software que controla al hardware. Sin embargo, actualmente existe una tendencia significativa a la transferencia de las funciones del software al firmware, es decir, microcdigo. Dicha tendencia se ha pronunciado tanto que es probable que en algunos sistemas las funciones codificadas en firmware sobrepasen pronto a aqullas codificadas en software. Es evidente que se necesita una nueva definicin de sistema operativo. Se puede imaginar un sistema operativo como los programas, instalados en el software o el firmware, que hacen utilizable el hardware. Un sistema operativo es un conjunto de programas que administran eficientemente los recursos de un sistema de cmputo, controlando la ejecucin de programas de aplicacin y actuando como una interfaz entre el usuario y la computadora (el hardware). Puede considerarse que un sistema operativo lleva a cabo tres funciones principales:
Comodidad:

Un sistema operativo hace que una computadora sea ms fcil de

utilizar. Eficiencia: Un sistema operativo permite que los recursos de un sistema informtico se aprovechen de una manera ms eficiente. Capacidad de evolucin: Un sistema operativo deber construirse de modo que permita el desarrollo efectivo, la verificacin y la introduccin de nuevas funciones en el sistema y a la vez, no interferir en los servicios que brinda. Los sistemas operativos son ante todo administradores de recursos; el principal recurso que administran es el hardware de la computadora: el procesador, los medios de almacenamiento, los dispositivos de E/S, los dispositivos de comunicacin y los datos. Los sistemas operativos realizan muchas funciones, como proporcionar la interfaz con el usuario, permitir que los usuarios compartan entre s el hardware y los datos, evitar que los usuarios se interfieran recprocamente, planificar la distribucin de los recursos entre los usuarios, facilitar la entrada y salida, recuperarse de los errores, contabilizar el uso de los recursos, facilitar las operaciones en paralelo, organizar los datos para lograr un acceso rpido y seguro, y manejar las comunicaciones en red. Como sea que se decida definir los sistemas operativos, lo importante es no olvidar que constituyen una parte integral del ambiente de cmputo y, por tanto, necesitan ser comprendidos en alguna medida por todos los usuarios de computadoras.

L. I. Rosario Carvajal Hernndez

Sistemas Operativos
1.2 HISTORIA Y EVOLUCIN DE LOS SISTEMAS OPERATIVOS
Para intentar comprender la manera de funcionar de un sistema operativo y la razn de ser de algunas de sus caractersticas principales resulta til considerar la manera cmo han evolucionado a lo largo de los aos. Proceso en serie En las primeras computadoras de finales de los 40 hasta mediados de los 50, el programador interactuaba directamente con el hardware; no haba sistema operativo. La operacin con la mquina se efectuaba desde una consola consistente en unos indicadores luminosos, unos conmutadores, algn tipo de dispositivo de entrada y una impresora. Los programas en cdigo mquina se cargaban a travs del dispositivo de entrada (un lector de tarjetas, por ejemplo). Si se detena el programa por un error, la condicin de error se indicaba mediante los indicadores luminosos. El programador poda examinar los registros y la memoria principal para determinar la causa del error. Si el programa continuaba hasta su culminacin normal, la salida apareca en la impresora. Estos primeros sistemas presentaban dos problemas principales: Planificacin: La mayora de las instalaciones empleaban un formulario de reserva de tiempo de mquina. Normalmente un usuario poda reservar bloques de tiempo en mltiplos de media hora o algo por el estilo. Un usuario poda reservar una hora y terminar a los 45 minutos; esto daba como resultado un desperdicio del tiempo de la computadora. Por el contrario, el usuario poda tener dificultades, no terminar en el tiempo asignado y verse forzado a parar sin haber resuelto el problema. Tiempo de preparacin: Un programa sencillo, llamado trabajo, cargaba un compilador y un programa en lenguaje de alto nivel (programa fuente) en la memoria, salvaba el programa compilado (programa objeto) y luego montaba y cargaba el programa objeto junto con las funciones comunes. Cada uno de estos pasos poda implicar montar y desmontar cintas o preparar paquetes de tarjetas. Si se produca un error, el infortunado usuario tena que volver al inicio de este proceso de preparacin. De este modo, se perda un tiempo considerable en preparar un programa para su ejecucin. Este modo de operacin podra denominarse proceso en serie porque refleja el hecho de que los usuarios tenan que acceder al computador en serie. Con el paso del tiempo se desarrollaron varias herramientas de software de sistemas para intentar hacer ms eficiente este proceso en serie. Entre stas se incluan bibliotecas de funciones comunes, montadores, cargadores y rutinas de manejo de E/S que estaban disponibles como un software comn para todos los usuarios.

L. I. Rosario Carvajal Hernndez

Sistemas Operativos
Sistemas simples de procesos por lotes Las primeras mquinas eran muy caras y, por tanto, era importante maximizar la utilizacin de las mismas. El tiempo desperdiciado por la planificacin y la reparacin era inaceptable. Para mejorar el uso, se desarroll el concepto de sistema operativo por lotes (batch). El primer sistema operativo por lotes fue desarrollado a mediados de los 50 por la General Motors para usar en un IBM 701. Este concepto fue refinado posteriormente e implementado en un IBM 704 por una serie de clientes de IBM. A principios de los 60, un conjunto de constructores ya haban desarrollado sistemas operativos por lotes para sus computadores. IBSYS, el sistema operativo de IBM para los computadores 7090/7094, es particularmente notable por su amplia influencia en otros sistemas. La idea central que est detrs del esquema sencillo de proceso por lotes es el uso de un elemento de software conocido como monitor. Con el uso de esta clase de sistema operativo, los usuarios ya no tenan acceso directo a la mquina. En su lugar, el usuario deba entregar los trabajos en tarjetas o en cinta al operador de la computadora, quien agrupaba secuencial mente los trabajos por lotes y ubicaba los lotes enteros en un dispositivo de entrada para su empleo por parte del monitor. Cada programa se construa de modo tal que volviera al monitor al terminar su procesamiento y, en ese momento, el monitor comenzaba a cargar automticamente el siguiente programa. Para entender como funciona este esquema, se va a ver desde dos puntos de vista: el del monitor y el del procesador. Desde el punto de vistas del monitor, l es quien controla la secuencia de sucesos. Para que esto sea posible, gran parte del monitor debe estar en memoria principal y disponible para su ejecucin figura 1.2. Esta parte del monitor se conoce como monitor residente. El resto del monitor consta de utilidades y funciones comunes que se cargan como subrutinas en los programas de los usuarios al comienzo de cualquier trabajo que las necesite. El monitor lee los trabajos uno a uno del dispositivo de entrada (normalmente, un lector de tarjetas o una unidad de cinta magntica). A medida que lo lee, el trabajo actual se ubica en la zona del programa de usuario y el control pasa al trabajo. Cuando el trabajo termina, se devuelve el control al monitor, quien lee inmediatamente un nuevo trabajo. Los resultados de cada trabajo se imprimen y entregan al usuario. Considere esta secuencia desde el punto de vista del procesador. En un cierto momento, el procesador estar ejecutando instrucciones de la zona de memoria principal que contiene al monitor. Estas instrucciones hacen que el trabajo siguiente sea ledo en otra zona de la memoria principal. Una vez que el trabajo se ha ledo, el procesador encuentra en el monitor una instruccin de desvo que ordena al procesador continuar la ejecucin en el inicio del programa de usuario. El procesador ejecuta entonces las instrucciones del programa de usuario hasta que encuentre una condicin de finalizacin de error. Cualquiera de estos dos sucesos provocan que el procesador vaya por la instruccin siguiente del programa monitor. De este modo, la frase el control se le pasa al trabajo quiere decir simplemente que el procesador pasa a leer y a ejecutar instrucciones del

L. I. Rosario Carvajal Hernndez

Sistemas Operativos
programa de usuario, que la frase el control vuelve al monitor quiere decir que el procesador pasa ahora a leer y ejecutar las instrucciones del programa monitor. Figura 1.1 Disposicin de la memoria con un monitor residente

Debe quedar claro que es el monitor el que gestiona el problema de la planificacin. Se pone en cola un lote de trabajos y stos son ejecutados tan rpido como es posible, sin que haya tiempo alguno de desocupacin. Qu ocurre con la preparacin de los trabajos? El monitor tambin se encarga de esto. Con cada trabajo, se incluyen instrucciones de una forma primitiva de lenguaje control de trabajos (JCL, Job Control Language), que es un tipo especial de lenguaje de programacin empleado para dar instrucciones al monitor. La figura 1.2 muestra un ejemplo sencillo con entradas de trabajos desde tarjetas. En este ejemplo, el usuario enva un programa escrito en FORTRAN junto a unos datos que se utilizarn en el programa. Adems de las tarjetas de FORTRAN y de datos, el paquete incluye instrucciones de control de trabajos, que se denotan mediante un signo dlar ($) al comienzo.

L. I. Rosario Carvajal Hernndez

Sistemas Operativos

Figura 1.2 Paquete de tarjetas para un sistema sencillo por lotes Para ejecutar el trabajo, el monitor lee la tarjeta $FTN y carga el compilador adecuado desde el dispositivo de almacenamiento masivo (generalmente una cinta). El compilador traduce el programa de usuario en cdigo objeto, que se almacena en memoria o en el dispositivo de almacenamiento. Si se carga en memoria, la operacin es conocida como compilar, cargar y arrancar (compile, load, and go). Si se almacena en cinta, entonces se requiere la tarjeta &LOAD. Esta tarjeta es leda por el monitor, quien retoma el control despus de la operacin de compilacin. El monitor llama al cargador, que carga el programa objeto en memoria en lugar del compilador y le transfiere el control. De esta manera, un segmento grande de memoria se puede compartir entre diferentes subsistemas, aunque en cada momento slo uno de ellos tiene que estar presente y ejecutndose. Durante la ejecucin del programa de usuario, cada instruccin de entrada origina la lectura de una tarjeta de datos. La instruccin de entrada en el programa de usuario hace que se invoque una rutina de entrada, que forma parte del sistema operativo. La rutina de entrada se asegura de que el programa de usuario no ha ledo accidentalmente una tarjeta JCL. Si esto sucede, se produce un error y el control se transfiere al monitor. Al terminar un trabajo, con o sin xito, el monitor recorre las tarjetas de entrada hasta encontrar la prxima tarjeta JCL. De este todo, el sistema se protege contra un programa que tenga tarjetas de datos de ms o de menos. Se comprobar que el monitor o el sistema de proceso por lotes es simplemente un programa de computadora. Se basa en la capacidad del procesador para traer y ejecutar instrucciones desde varias zonas de la memoria 5

L. I. Rosario Carvajal Hernndez

Sistemas Operativos
principal y as apoderarse y ceder el control de forma alterna. Para esto seran convenientes algunas otras caractersticas del hardware, entre las que se encuentran las siguientes: Proteccin de memoria: Mientras el programa de usuario este ejecutndose, no debe modificar la zona de memoria en la que est el monitor. Si se hace un intento tal, el hardware del procesador deber detectar el error y transferir el control al monitor. El monitor abortara entonces el trabajo, imprimir el mensaje de error y cargar el siguiente trabajo. Temporizador: Se utiliza un temporizador para impedir que un solo trabajo monopolice el sistema. El temporizador se lanza al comenzar cada trabajo. Si expira el tiempo, se producir una interrupcin y el control volver al monitor. Instrucciones Privilegiadas: Ciertas instrucciones son consideradas como privilegiadas y pueden ser ejecutadas slo por el monitor. Si el procesador encuentra una instruccin tal, cuando est ejecutando el programa del usuario, se producir una interrupcin de error. Entre las instrucciones privilegiadas se encuentran las instrucciones de E/S, de forma que el monitor retenga el control de todos los dispositivos de E/S. Esto impide por ejemplo, que un programa de usuario lea accidentalmente instrucciones de control que son del trabajo siguiente. Si un programa de usuario desea realizar una E/S, debe solicitar al monitor que haga la operacin por l. Si el procesador encuentra una instruccin privilegiada cuando esta ejecutando un programa de usuario, el hardware del procesador la considera como un error y transfiere el control al monitor. Interrupciones: los primeros modelos de computadores no tenan esta capacidad. Esta caracterstica aporta al sistema operativo ms flexibilidad para ceder y retomar el control de los programas usuarios. Naturalmente se puede construir un sistema operativo sin esta caracterstica, pero los fabricantes de computadores comprobaron rpidamente que los resultados eran caticos y, por tanto, incluso los sistemas operativos por lotes ms primitivos ya disponan de esta caractersticas en el hardware. Por otro lado, hay que decir que el sistema operativo ms utilizado del mundo, el MS-DOS, no dispone de proteccin de memoria ni de instrucciones privilegiadas de E/S. Sin embargo, como este sistema est destinado a computadoras personales de un solo usuario, los problemas que se puedan originar son menos graves. En un sistema operativo por lotes, el tiempo de mquina se reparte entre la ejecucin de programas de usuarios y la ejecucin del monitor. As se tienen dos prdidas: se entrega al monitor cierta cantidad de memoria principal y ste consume cierto tiempo de la mquina. Ambas prdidas son una forma de sobrecarga. An con esta sobrecarga, los sistemas operativos sencillos por lotes mejoran el uso de la computadora.

L. I. Rosario Carvajal Hernndez

Sistemas Operativos
Sistemas por lotes multiprogramados An con el secuenciamiento automtico de los trabajos ofrecido por un sistema operativo sencillo por lotes, el procesador esta desocupado a menudo. El problema es que los dispositivos de E/S son lentos comparados con el procesador. La figura 1.3 detalla un clculo representativo. Los nmeros corresponden a un programa que procesa un archivo de registros y ejecuta, en promedio, 100 instrucciones de mquina por cada registro. En este ejemplo, la computadora gasta ms del 96% del tiempo esperado a que los dispositivos de E/S terminen de transferir sus datos. La figura 1.4 ilustra esta situacin. El procesador gasta parte del tiempo ejecutando hasta que encuentra una instruccin de E/S. Entonces debe esperar a que concluya la instruccin de E/S antes de continuar. Leer un registro 0,0015 segundos Ejecutar 100 instrucciones 0,0001 segundos Escribir un registro 0,0015 segundos TOTAL 0,0031 segundos Porcentaje de utilizacin de la CPU = 0,0001/0,0031 = 0,032 = 3,2% Figura 1.3 Ejemplo de utilizacin del sistema Esta ineficiencia no es necesaria. Se sabe que hay memoria suficiente para almacenar el sistema operativo (el monitor residente) y un programa de usuario. Supngase que hay espacio suficiente para el sistema operativo y dos programas de usuario. Ahora, cuando un trabajo necesite esperar una E/S, el procesador puede cambiar al otro trabajo, que probablemente no estar esperando a la E/S (figura 1.4b). Adems, se podra ampliar la memoria para almacenar tres, cuatro o ms programas y conmutar entre todos ellos (figura 1.4c). Este proceso es conocido como multiprogramacin multitarea. Este es el punto central de los sistemas operativos modernos.

L. I. Rosario Carvajal Hernndez

Sistemas Operativos

Figura 1.4 Multiprogramacin Sistemas de tiempo compartido Con el uso de multiprogramacin, el tratamiento por lotes puede llegar a ser bastante eficiente. Sin embargo, para muchas tareas, es conveniente suministrar un modo en que el usuario interacte con la computadora. De hecho, para algunos trabajos, tales como el proceso de transacciones, este modo interactivo es fundamental. 8

L. I. Rosario Carvajal Hernndez

Sistemas Operativos
Hoy en da, los requisitos de un servicio de computacin interactiva pueden y suelen llevarse a cabo con el empleo de una computadora dedicada. Esta opcin no estaba disponible en los aos 60, cuando la mayora de los computadores eran grandes y costosas. En su lugar, se desarrollaron las tcnicas de tiempo compartido. Al igual que la multiprogramacin permite al procesador manejar varias tareas por lotes al mismo tiempo, la multiprogramacin puede tambin utilizarse para manejar varias tareas interactivas. En este ltimo caso, la tcnica se conoce como tiempo compartido, por que refleja el hecho de que el tiempo del procesador es compartido entre los diversos usuarios. La tcnica bsica de un sistema de tiempo compartido es tener varios usuarios utilizando simultneamente el sistema mediante terminales, mediante que el sistema operativo intercala la ejecucin de cada programa de usuario en rfagas cortas de cmputo o quantum. De esta manera si hay N usuarios que solicitan servicio a la vez, cada usuario solo dispondr, en medio, de 1/N de la atencin efectiva de la computadora, sin contar con la sobrecarga del sistema operativo. Sin embargo, dado el tiempo de reaccin relativamente lento que tiene el ser humano, el tiempo de respuesta en un sistema correctamente diseado debera ser comparable al de una computadora dedicada. Tanto la multiprogramacin por lotes como el tiempo compartido utilizan multiprogramacin. Las diferencias bsicas se enumeran en la tabla 1.1.

Tabla 1.1 Multiprogramacin por lotes frente a tiempo compartido

L. I. Rosario Carvajal Hernndez

Sistemas Operativos
1.3 HARDWARE, SOFTWARE Y FIRMWARE
HARDWARE El hardware consiste en los dispositivos de un sistema de cmputo: su procesador, sus almacenamientos, sus dispositivos de entrada/salida y sus conexiones de comunicacin. SOFTWARE El software se compone de los programas con instrucciones en lenguaje de mquina y los datos que son interpretados por el hardware. Algunos tipos comunes de software son los compiladores, ensambladores, cargadores, editores de enlace, cargadores de enlace, programas de aplicacin, sistemas manejadores de base de datos, sistemas de comunicacin de datos y sistemas operativos. El software esta constituido por los programas de instrucciones y los datos que definen para el hardware los algoritmos de resolucin de problemas. Los sistemas operativos y otro software de sistemas son proporcionados generalmente por los proveedores de hardware. La gran mayora del software de aplicacin es proporcionada por proveedores independientes de software. FIRMWARE El firmware consiste en programas ejecutables almacenados en un circuito integrado programable de slo lectura (PROM). Instruccin o programa informativo (tal como una microprograma) de uso frecuente que se encuentra almacenado en la ROM, en lugar de estar incluido en el software bsico. Se utiliza a menudo en computadoras que controlan procesos de produccin. Firmware, en general, software de sistema guardado de manera permanente en la memoria de solo lectura (ROM) o en otra parte de la circuiteria de la computadora, como en los chips del sistema bsico de entrada-salida (BIOS) de las computadoras compatibles con la PC de IBM.

10

L. I. Rosario Carvajal Hernndez

Sistemas Operativos
1.4 ESTRUCTURA DE UN SISTEMA OPERATIVO
El esquema que suele usarse para el estudio de los sistemas operativos recibe el nombre de modelo de cebolla, debido a que esta formado por capas concntricas al rededor del ncleo (ver figura 1.5). La parte interna del conjunto jerrquico de programas que forman un sistema operativo recibe el nombre de ncleo o kernel. Las otras capas se encargan del manejo de la memoria, el procesador, los dispositivos de E/S y los archivos.

Figura 1.5 Un modelo de estudio para los sistemas operativos

11

L. I. Rosario Carvajal Hernndez

Sistemas Operativos
TIPOS DE SISTEMAS OPERATIVOS Sistemas Operativos por su Estructura Segn [Alcal92], 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 constitudos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra (Ver Fig. 2). 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.

12

L. I. Rosario Carvajal Hernndez

Sistemas Operativos

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),

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" (Ver Fig. 4).

13

L. I. Rosario Carvajal Hernndez

Sistemas Operativos

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 (Ver Fig. 5).

14

L. I. Rosario Carvajal Hernndez

Sistemas Operativos

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. Sistemas Operativos por Servicios Esta clasificacin es la ms comnmente usada y conocida desde el punto de vista del usuario final. Esta clasificacin se comprende fcilmente con el cuadro sinptico que a continuacin se muestra en la Fig. 6. 15

L. I. Rosario Carvajal Hernndez

Sistemas Operativos

Monousuarios Los sistemas operativos monousuarios son aqullos que soportan a un usuario a la vez, sin importar el nmero de procesadores que tenga la computadora o el nmero de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales tpicamente se han clasificado en este rengln. Multiusuarios Los sistemas operativos multiusuarios son capaces de dar servicio a ms de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones. No importa el nmero de procesadores en la mquina ni el nmero de procesos que cada usuario puede ejecutar simultneamente. Monotareas Los sistemas monotarea son aquellos que slo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual 16

L. I. Rosario Carvajal Hernndez

Sistemas Operativos
se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez. Multitareas Un sistema operativo multitarea es aqul que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el cdigo fuente de un programa durante su depuracin mientras compila otro programa, a la vez que est recibiendo correo electrnico en un proceso en background. Es comn encontrar en ellos interfaces grficas orientadas al uso de mens y el ratn, lo cual permite un rpido intercambio entre las tareas para el usuario, mejorando su productividad. Uniproceso Un sistema operativo uniproceso es aqul que es capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese ms de uno le sera intil. El ejemplo ms tpico de este tipo de sistemas es el DOS y MacOS. Multiproceso Un sistema operativo multiproceso se refiere al nmero de procesadores del sistema, que es ms de uno y ste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simtrica o asimtricamente. Cuando se trabaja de manera asimtrica, el sistema operativo selecciona a uno de los procesadores el cual jugar el papel de procesador maestro y servir como pivote para distribuir la carga a los dems procesadores, que reciben el nombre de esclavos. Cuando se trabaja de manera simtrica, los procesos o partes de ellos (threads) son enviados indistintamente a cualesquiera de los procesadores disponibles, teniendo, tericamente, una mejor distribucin y equilibrio en la carga de trabajo bajo este esquema. Se dice que un thread es la parte activa en memoria y corriendo de un proceso, lo cual puede consistir de un rea de memoria, un conjunto de registros con valores especficos, la pila y otros valores de contexto. Un aspecto importante a considerar en estos sistemas es la forma de crear aplicaciones para aprovechar los varios procesadores. Existen aplicaciones que fueron hechas para correr en sistemas monoproceso que no toman ninguna ventaja a menos que el sistema operativo o el compilador detecte secciones de cdigo paralelizable, los cuales son ejecutados al mismo tiempo en procesadores diferentes. Por otro lado, el programador puede modificar sus algoritmos y aprovechar por s mismo esta facilidad, pero esta ltima opcin las ms de las veces es costosa en horas hombre y muy tediosa, obligando al programador a ocupar tanto o ms tiempo a la paralelizacin que a elaborar el algoritmo inicial.

17

L. I. Rosario Carvajal Hernndez

Sistemas Operativos
Sistemas Operativos por la Forma de Ofrecer sus Servicios Esta clasificacin tambin se refiere a una visin externa, que en este caso se refiere a la del usuario, el cmo accesa los servicios. Bajo esta clasificacin se pueden detectar dos tipos principales: sistemas operativos de red y sistemas operativos distribuidos. Sistemas Operativos de Red Los sistemas operativos de red se definen como aquellos que tiene la capacidad de interactuar con sistemas operativos en otras computadoras por medio de un medio de transmisin con el objeto de intercambiar informacin, transferir archivos, ejecutar comandos remotos y un sin fin de otras actividades. El punto crucial de estos sistemas es que el usuario debe saber la sintaxis de un conjunto de comandos o llamadas al sistema para ejecutar estas operaciones, adems de la ubicacin de los recursos que desee accesar. Por ejemplo, si un usuario en la computadora hidalgo necesita el archivo matriz.pas que se localiza en el directorio /software/cdigo en la computadora morelos bajo el sistema operativo UNIX, dicho usuario podra copiarlo a travs de la red con los comandos siguientes: hidalgo% hidalgo% rcp morelos:/software/cdigo/matriz.pas . hidalgo% En este caso, el comando rcp que significa "remote copy" trae el archivo indicado de la computadora morelos y lo coloca en el directorio donde se ejecut el mencionado comando. Lo importante es hacer ver que el usuario puede accesar y compartir muchos recursos. Sistemas Operativos Distribuidos Los sistemas operativos distribuidos abarcan los servicios de los de red, logrando integrar recursos ( impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso ) en una sola mquina virtual que el usuario accesa en forma transparente. Es decir, ahora el usuario ya no necesita saber la ubicacin de los recursos, sino que los conoce por nombre y simplemente los usa como si todos ellos fuesen locales a su lugar de trabajo habitual. Todo lo anterior es el marco terico de lo que se deseara tener como sistema operativo distribuido, pero en la realidad no se ha conseguido crear uno del todo, por la complejidad que suponen: distribuir los procesos en las varias unidades de procesamiento, reintegrar sub-resultados, resolver problemas de concurrencia y paralelismo, recuperarse de fallas de algunos recursos distribudos y consolidar la proteccin y seguridad entre los diferentes componentes del sistema y los usuarios. [Tan92]. Los avances tecnolgicos en las redes de rea local y la creacin de microprocesadores de 32 y 64 bits lograron que computadoras mas o menos baratas tuvieran el suficiente poder en forma autnoma para desafiar en cierto grado a los mainframes, y a la vez se dio la posibilidad de intercomunicarlas, sugiriendo la oportunidad de partir procesos muy pesados en clculo en unidades ms pequeas y distribuirlas en los varios microprocesadores para luego reunir los sub-resultados, creando as una mquina virtual en la red que exceda en poder a un mainframe. El sistema integrador de los microprocesadores que hacer ver a las 18

L. I. Rosario Carvajal Hernndez

Sistemas Operativos
varias memorias, procesadores, y todos los dems recursos como una sola entidad en forma transparente se le llama sistema operativo distribudo. Las razones para crear o adoptar sistemas distribudos se dan por dos razones principales: por necesidad ( debido a que los problemas a resolver son inherentemente distribudos ) o porque se desea tener ms confiabilidad y disponibilidad de recursos. En el primer caso tenemos, por ejemplo, el control de los cajeros automticos en diferentes estados de la repblica. Ah no es posible ni eficiente mantener un control centralizado, es ms, no existe capacidad de cmputo y de entrada/salida para dar servicio a los millones de operaciones por minuto. En el segundo caso, supngase que se tienen en una gran empresa varios grupos de trabajo, cada uno necesita almacenar grandes cantidades de informacin en disco duro con una alta confiabilidad y disponibilidad. La solucin puede ser que para cada grupo de trabajo se asigne una particin de disco duro en servidores diferentes, de manera que si uno de los servidores falla, no se deje dar el servicio a todos, sino slo a unos cuantos y, ms an, se podra tener un sistema con discos en espejo ( mirror ) a travs de la red, de manera que si un servidor se cae, el servidor en espejo contina trabajando y el usuario ni cuenta se da de estas fallas, es decir, obtiene acceso a recursos en forma transparente.

Otra clasificacin de los Sistemas Operativos.


Sistemas Operativos por lotes. 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.

19

L. I. Rosario Carvajal Hernndez

Sistemas Operativos

Suelen proporcionar gestin sencilla de manejo de archivos: se requiere poca proteccin y ningn control de concurrencia para el acceso.

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.

20

L. I. Rosario Carvajal Hernndez

Sistemas Operativos

Gestin de archivos se orienta ms a velocidad de acceso que a utilizacin 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 individuales. 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

21

L. I. Rosario Carvajal Hernndez

Sistemas Operativos
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 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 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 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.

22

L. I. Rosario Carvajal Hernndez

Sistemas Operativos

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 mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

El Ncleo del Sistema Operativo


El ncleo del Sistema Operativo controla todas las operaciones que implican procesos y representa solo una pequea porcin del cdigo de todo el Sistema Operativo pero es de amplio uso. Generalmente permanece en el almacenamiento primario. El proceso de interrupciones se incluye en el ncleo ya que debe ser rpido (especialmente en sistemas multiusuario), para optimizar el uso de los recursos del sistema y proveer tiempos de respuesta aceptables a los usuarios interactivos. El ncleo inhabilita las interrupciones mientras responde a una interrupcin. Las interrupciones son habilitadas de nuevo despus de completar el proceso de una interrupcin. El ncleo del Sistema Operativo generalmente realiza las siguientes funciones:

Manipulacin de interrupciones. Creacin y destruccin de procesos. Cambio de estados de procesos. Despacho. Suspensin y reanudacin de procesos. Sincronizacin de procesos. Comunicacin entre procesos. Manipulacin de bloques de control de proceso. Soporte de las actividades de Entrada / Salida. Soporte de la asignacin y desasignacin de almacenamiento.

23

L. I. Rosario Carvajal Hernndez

Sistemas Operativos

Soporte del sistema de archivos. Soporte de un mecanismo de llamada / regreso al procedimiento. Soporte de ciertas funciones contables (estadsticas) del sistema.

El kernel o ncleo del sistema operativo es la parte fundamental de un sistema operativo. Es el software responsable de facilitar a los distintos programas acceso seguro al hw de la computadora o en forma ms bsica, es la encargada de gestionar los recursos, a travs de los servicios de llamada al sistema. Como hay muchos programas y el acceso al hw es limitado, el ncleo tambin se encarga de decidir qu programa podr hacer uso de un dispositivo de hw y durante cunto tiempo, lo que se conoce como multiplexado. Hay cuatro grandes tipos de ncleos: 1. Los ncleos monolticos, facilitan abstracciones del hw subyacente realmente potentes y variadas. 2. Los microncleos ( o microkernel) proporcionan un pequeo conjunto de abstracciones simples del hw, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad. Ejemplo: Minix, Mac Os. 3. Los hbridos (microncleos modificados) son muy parecidos a los microncleos puros, excepto porque incluyen cdigo adicional en el espacio de ncleo para que se ejecute ms rpidamente. 4. Los exoncleos, no facilitan ninguna abstraccin, pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hw.

MICRONCLEOS.

El enfoque microncleo consiste en definir una abstraccin muy simple sobre el hw, con un conjunto de primitivas o llamadas al sistema que implementan servicios del sistema operativo mnimos, como la gestin de hilos, el espacio de direccionamiento y la comunicacin entre procesos. Son modulares y simplifican la estructura y diseo del ncleo. Ejemplo: si un servidor falla no se colgar el sistema entero y se podr reiniciar un mdulo independientemente del resto. El objetivo principal es la separacin de la implementacin de los servicios bsicos y de la poltica de funcionamiento del sistema. Los microncleos modernos permiten cargar mdulos, es decir, un mdulo cargable es aquel cdigo que se compila por separado y luego lo incorpora al ncleo.

24

L. I. Rosario Carvajal Hernndez

Sistemas Operativos
Algunos ejemplos de microncleos: AIX La familia de microncleos L4 El microncleo Mach, usado en GNU Hurd y en Mac OS X Minix MorphOS QNX RadiOS VSTa NCLEOS MONOLTICOS EN CONTRAPOSICIN A MICRONCLEOS. Frecuentemente se prefieren los ncleos monolticos frente a los microncleos debido al menor nivel de complejidad que comporta el tratar con todo el cdigo de control del sistema en un solo espacio de direccionamiento. Los ncleos monoltico suelen ser ms fciles de disear correctamente, y por lo tanto pueden crecer ms rpidamente que un sistema basado en microncleo, pero hay casos de xito en ambos bandos. Los microncleos suelen usarse en robtica embebida o computadoras mdicas, ya que la mayora de los componentes del sistema operativo residen en su propio espacio de memoria privado y protegido. Esto no sera posible con los ncleos monolticos, ni siquiera con los modernos que permiten cargar mdulos. QNX es un sistema operativo que ha estado disponible desde principios de los aos 1980, y tien un diseo muy minimalista. Este sistema ha conseguido llegar a las metas del paradigma del microncleo con mucho ms xito que Mach. Se usa en situaciones en que no se puede permitir que haya fallos de sw, lo que incluye desde brazos robticas en naves espaciales, hasta mquinas que pulen cristal donde un pequeo error podra costar centenas de miles de euros. NCLEOS HBRIDOS ( MICRONCLEOS MODIFICADOS) Los ncleos hbridos fundamentalmente son microncleos que tiene algo de cdigo ni esencial en espacio de ncleo para que ste se ejecute ms rpido de lo que hara si estuviera en espacio de usuario. La mayora de los sistemas operativos modernos pertenecen a esta categora, siendo el ms popular Microsoft Windows, XNU, el ncleo de Mac OS S, tambin es un microncleo modificado, debido a la inclusin de cdigo del ncleo de FreeBSD en el ncleo basado en Mach. DragonFly BSD es el primer sistema BSD que adopta la arquitectura de ncleo hbrido sin basarse en Mach. Algunos ejemplos de ncleos hbridos son: Microsoft Windows NT, usado en todos los sistemas que usan el cdigo base de Windows NT 25

L. I. Rosario Carvajal Hernndez

Sistemas Operativos
XNU DragonFly BSD ReactOS Hbrido implica que el ncleo en cuestin usa conceptos de arquitectura o mecanismos tanto del diseo monoltico como del microncleo, especficamente el paso de mensajes y la migracin de cdigo no esencial hacia el espacio de usuario, pero manteniendo cierto cdigo no esencial en el propio ncleo por razones de rendimiento. EXONCLEOS Los exoncleos, tambin conocidos como sistemas operativos verticalmente estructurados, representan una aproximacin radicalmente nueva al diseo de sistemas operativos. Los exoncleos son extremadamente pequeos, ya que limitan expresamente su funcionalidad a la proteccin y el multiplexado( el ncleo decide qu programa podr hacer uso de un dispositivo de hw y durante cunto tiempo )de los recursos. Debido a que el exoncleo slo proporciona una interfaz al hw de muy bajo nivel, careciendo de todas las funcionalidades de alto nivel de otros sistemas operativos, ste es complementado por una biblioteca de sistema operativo. Esta biblioteca se comunica con el exoncleo subyacente, y facilita a los programadores de aplicaciones las funcionalidades que son comunes en otros sistemas operativos. Algunas implicaciones tericas de un sistema exoncleo son que es posible tener distintos tipos de sistemas operativo ( por ejemplo, Windows y Unix) ejecutndose en un solo exoncleo, y que los desarrolladores pueden elegir prescindir de o incrementar funcionalidades por motivos de rendimiento. Actualmente, los diseos de los exoncleos estn fundamentalmente en fase de estudio y no se usan en ningn sistema popular. Un concepto de sistema operativo es Nemesis, creado por la Universidad de Cambridge, la Universidad de Glasgow, Citrix Systems ye el Instituto Sueco de Informtica. El MIT tambin ha diseado algunos sistemas basados en exoncleos.

26

L. I. Rosario Carvajal Hernndez