Anda di halaman 1dari 13

SISTEMAS OPERATIVOS 1

Unidad 1 Introduccin a los sistemas operativos. 1.1 Definicin, objetivos y funciones de un S.O. 1.2 Historia y evolucin de los S.O. 1.3 Subsistemas de un S.O. 1.4 Estructuras de los sistemas operativos 1.5 Anlisis de los SO ms comerciales. (LINUX, UNX, Windows, MACH, OS/2, VAX, MVS, etc.). 1.1 Definicin, objetivos y funciones de un S.O. Definicin de Sistema Operativo El sistema operativo es el programa (o software) ms importante de un ordenador. Para que funcionen los otros programas, cada ordenador de uso general debe tener un sistema operativo. Los sistemas operativos realizan tareas bsicas, tales como reconocimiento de la conexin del teclado, enviar la informacin a la pantalla, no perder de vista archivos y directorios en el disco, y controlar los dispositivos perifricos tales como impresoras, escner, etc. En sistemas grandes, el sistema operativo tiene incluso mayor responsabilidad y poder, es como un polica de trfico, se asegura de que los programas y usuarios que estn funcionando al mismo tiempo no interfieran entre ellos. El sistema operativo tambin es responsable de la seguridad, asegurndose de que los usuarios no autorizados no tengan acceso al sistema. Clasificacin de los Sistemas Operativos Los sistemas operativos pueden ser clasificados de la siguiente forma: Multiusuario: Permite que dos o ms usuarios utilicen sus programas al mismo tiempo. Algunos sistemas operativos permiten a centenares o millares de usuarios al mismo tiempo. Multiprocesador: soporta el abrir un mismo programa en ms de una CPU. Multitarea: Permite que varios programas se ejecuten al mismo tiempo. Multitramo: Permite que diversas partes de un solo programa funcionen al mismo tiempo. Tiempo Real: Responde a las entradas inmediatamente. Los sistemas operativos como DOS y UNIX, no funcionan en tiempo real. Cmo funciona un Sistema Operativo Los sistemas operativos proporcionan una plataforma de software encima de la cual otros programas, llamados aplicaciones, puedan funcionar. Las aplicaciones se programan para que funcionen encima de un sistema operativo particular, por tanto, la eleccin del sistema operativo determina en gran medida las aplicaciones que puedes utilizar. Los sistemas operativos ms utilizados en los PC son DOS, OS/2, y Windows, pero hay otros que tambin se utilizan, como por ejemplo Linux. Cmo se utiliza un Sistema Operativo Un usuario normalmente interacta con el sistema operativo a travs de un sistema de comandos, por ejemplo, el sistema operativo DOS contiene comandos como copiar y pegar para copiar y pegar archivos respectivamente. Los comandos son aceptados y ejecutados por

una parte del sistema operativo llamada procesador de comandos o intrprete de la lnea de comandos. Las interfaces grficas permiten que utilices los comandos sealando y pinchando en objetos que aparecen en la pantalla. Ejemplos de Sistema Operativo A continuacin detallamos algunos ejemplos de sistemas operativos: Familia Windows Windows 95 Windows 98 Windows ME Windows NT Windows 2000 Windows 2000 server Windows XP Windows Server 2003 Windows CE Windows Mobile Windows XP 64 bits Windows Vista (Longhorn) Familia Macintosh Mac OS 7 Mac OS 8 Mac OS 9 Mac OS X Familia UNIX AIX AMIX GNU/Linux GNU / Hurd HP-UX Irix Minix System V Solaris Unix Ware? El objetivo fundamental de los sistemas operativos Es gestionar y administrar eficientemente los recursos hardware, permitiendo que se ejecuten concurrentemente varios programas, sin que haya conflictos en el acceso de cada uno de ellos a cada uno de los recursos que necesite, y sin que ningn programa monopolice alguno de ellos. Un sistema operativo es un programa (o conjunto de programas) de control que tiene por objeto facilitar el uso de la computadora y conseguir que sta se utilice eficientemente. Es un programa de control, ya que se encarga de gestionar y asignar los recursos hardware que requieren los programas. Pensemos en una computadora que es utilizada desde diversos terminales por varios usuarios. Los recursos hardware son: el procesador (CPU), la memoria principal, los discos, y otros perifricos. Obviamente, si varios usuarios estn utilizando la misma Computadora, debe haber alguien o algo que asigne los recursos y evite los conflictos que puedan surgir cuando dos programas requieran los mismos elementos (la misma unidad de disco, o la impresora, por ejemplo). Esta es una de las funciones del sistema operativo. Adems de esta funcin de asignar los recursos a cada programa, el sistema operativo se encarga de contabilizar de stos, y de la seguridad (que un usuario no pueda acceder sin autorizacin a la informacin de otro, por ejemplo). El sistema operativo facilita el uso de la computadora. Veamos un ejemplo de cmo lo hace. Cada dispositivo de E/S, para ser utilizado, requiere varias instrucciones mquina que establezcan un dialogo entre las unidades centrales y el perifrico, enviando o captando el dato de salida o de entrada, respectivamente. Estas instrucciones dependen considerablemente de las caractersticas concretas del perifrico. Si se trata, por ejemplo, de una unidad de disco, hay que considerar el ancho de los buses, el tamao de su memoria intermedia, el arranque (y parada) de los motores de la unidad, el cdigo identificador de la posicin a donde hay que acceder, etc. Por otra parte, un dispositivo dado, estas instrucciones u operaciones son comunes para grabar o leer cual tipo de informacin (programas o datos), sea cual sea su naturaleza. El sistema operativo, con objetivo de facilitar el trabajo de los programadores, contiene mdulos de gestin de entradas / salidas que evitan a los usuarios tener que incluir esas instrucciones cada vez que hacen una operacin de entrada o salida. Se puede decir que esos programas del sistema operativo hacen transparente al usuario las caractersticas hardware concretas de los dispositivos. El sistema operativo tambin hace que la computadora se utilice eficientemente. Para poner de manifiesto cmo el sistema operativo puede incrementar la eficiencia consideremos un ejemplo sencillo. Los programas tradicionalmente se ejecutan secuencialmente; es decir, hasta que no concluye la ejecucin de una instruccin no se ejecuta la siguiente. Supongamos que dentro de un programa hay una instruccin que implica la escritura de una pgina en una impresora lser. Hasta que no acabe de imprimirse dicha pgina el programa no puede continuar ejecutndose. En resumen, el sistema operativo efecta, entre otras, las siguientes funciones: - Facilita el uso de la computadora, en general, la comunicacin computadora / usuario - Gestiona y asigna recursos hardware (procesador, memoria y perifricos) a los distintos programas o tareas - Gestiona y mantiene los archivos en dispositivos de memoria masiva - Apoya a otros programas - Protege los datos y los

programas, cuestin especialmente compleja en sistemas multiusuario - Identifica y autentifica a los usuarios que hacen uso de la computadora. - Contabiliza la utilizacin de los recursos realizada por los distintos usuarios Sus funciones mas importantes son: -Gestiona los recursos del ordenador en sus niveles mas bajos. -Dispone de una interface (elemento que hace posible la fcil comunicacin usuario maquina) liberando al usuario del conocimiento del hardware. El SO windows se basa en una interface graficas, GUI (Interface Grafica de Usuario), permitiendo al usuario interactuar con el hardware de una forma sencilla y rpida. -Sobre el SO funcionan el resto de programas y aplicaciones del software. Grafico interno de la fusin entre el software y el hardware. Una de las caractersticas he imnovaciones mas importantes de un SO es la llamada multitarea. Un SO opera entre la CPU y los perifricos y con la tecnologa multi-tarea reparte el tiempo entre ellos dos. Suponiendo que se lancen tres procesos (A,B,C), (proceso: conjunto de rutina, algoritmos, etc.). Lo que el SO hace internamente con esta tecnologa es: recoger la primera operacin del proceso A en CPU luego pasa a los perifricos con lo que la CPU descansa y en ese momento, recoge la primera operacin del proceso B en CPU, posteriormente en cuanto va a los perifricos pasa al proceso C, y cuando a este le llegan los turnos que corresponden a los perifricos pasa a la segunda operacin del proceso A. Y asi sucesivamente. Con esta tecnologa se logra apurar y reducir enormemente el tiempo de proceso del SO, podemos llegar a unas 50 tareas simultneamente. Sistemas operativos como, el ms-dos no disponen de ella, pero otros como windows si alcanzan esta tecnologa. Mulprogramacion o multiproceso: Es la tcnica que permite cargar varios programas o procesos al mismo tiempo de forma simultanea. Cada programa o proceso ha de usar unos recursos y el SO ha de gestionar esto. Se pueden dar los llamados interbloqueos en la que 2 o mas programas estan a la espera por solicitar un dispositivo o memoria. El SO debe solucionar esto. Batch: sirve para aprovechar tiempos muertos (noches), etc. En grandes empresas los usan para hacer copias de seguridad. Tiempo real: Asigna de forma primaria unos tiempos si se pasa de ellos da paso al siguiente. Seguridad: El SO debe suministrar los medios para la ejecucin concurrente de los procesos, sincronizacion entre procesos, comunicacin entre procesos. El SO debe suministrar algoritmos de gestion y planificacin de procesos que se encarguen de decidir que proceso se ejecutara o cual tomara al procesador y de llevar cuenta de los estados y procesos, sus prioridades y todo la restante informacin relevante. Estado de los procesos Activo: Ejecutndose en un instante de tiempo. En un sistema monoprocesador, solo puede haber uno. Preparado: Listos para ejecutarse. Esperando que un procesador quede libre, bloqueado o suspendido, a la espera de que se cumpla una condicion. Muerto: Ha terminado su ejecucin o el sistema ha detectado un error fatal y la ha transferido ha estado nonato. Nonato: El programa existe pero todava no es conocido por el SO. El estado global del SO en un instante determinado, es el conjunto de recursos y procesos existentes con sus estados correspondientes Transicin entre procesos El distribuidor: es uin modulo del SO que activa procesos preparados de acuerdo con unos criterios determinados por ejemplo: prioridad. Interrupcion: Son las llamadas del SO para solicitar servicios por ejemplo: una operacin.de E/S. Planificador: Modulo del SO que

translada procesos de ejecucin a preparados, por ejemplo: en sistemas de tiempo compartido porque se les ajusta el tiempo. O llega uno de mayor prioridad. Paso de preparado a bloqueado: Cuando tiene lugar un evento que estuviera esperandopara poder perseguirlo 1.2 Historia y evolucin de los S.O. 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 50s 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 50s 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 50s 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. Sus generaciones:

-Generacin 0: dcada de los 40 los sistemas informticos no disponan de SO con lo que los usuarios de estos deban introducir las instrucciones en cdigo binario lo que hacia su uso restringido a personas de mucho conocimiento en esa materia. -Generacin 1: dcada de los 50. Aparece el primer SO para lograr la fluidez en la trasmisin de informacin. Aparece el JLC (lenguaje de control de trabajo), se usaban tarjetas perforadas y eran controladas por operadores (personas con cierto conocimiento). Posteriormente se pasaron de las tarjetas a las cintas perforadas y estas iban mucho mas rpido. En el primer SO haba en ocupaba en memoria 64 KB (bastante en funcin de la capacidad total de la memoria en aquella poca). Grafico interno de un sistema operativo de la poca y en parte en la actualidad Generacin 2: Se dan los primeros pasos de la multiprogramacin es decir varios programas de usuario. El SO reparte tiempos del procesador. Aparece la llamada tecnologa DMA usa buffers entre terminales: impresora, etc. Qu es un buffer?: Es una fuente de almacenamiento temporal que reside en el propio dispositivo ya sea de entrada, o de salida. Aparece el termino spooding: viene a ser como lo que gestiona la cola de instrucciones en el buffer. Terminales de Impresora Durante esta generacin aparecen los primeros multiprocesarodes (varios procesadores trabajando simultneamente, a la vez). Generacin 3: segunda mitad de la dcada de los 60 y 1 mitad de los 70. Es entonces cuando se desarrollan los SO tan importantes como el UNS para la gestin de grandes mainframes. Durante esta generacin el usuario perdi el control del hardware. Los equipos informticos venan con el software (SO) de regalo. Generacin 4: segunda mitad de los 70 y primera de los 80. Los SO aumentan sus prestaciones y gestionan eficientemente los recursos del ordenador. Es en esta poca donde mas facilidad se le da al usuario para su manejo. IBM separa los costos de hardware y software con esta estrategia de marketing se pensaba que facturaran el doble en ganancias. Pero no fue as. Los vendedores de software pasan a hacerse responsables de los bugs (o fallos de sus programas). Proliferaron las empresas desarrolladoras de software esto perjudico seriamente a IBM ya que as perdi la exclusividad. Posteriormente se abri el mercado de computadoras compatibles con IBM, estos son los llamados clnicos (varios dispositivos informticos de distintas fabricas o procedencias intercomunicados y compatibles entre si constituyendo un nico equipo informtico. Este tipo de ordenadores es de precio mucho mas reducido que los IBM y sus prestaciones son las mismas). Generacin 5: dcada de los 90. Los entornos grficos cobraron mucha importancia, proliferaron y evolucionaron las llamadas GUIs (interfaces graficas del usuario). Los sistemas operativos tipo windows 9*, millenium o NT para empresas proliferaron y desplazaron de las empresas al ya consolidado UNS.

1.3. SUBSISTEMAS DE UN SISTEMA OPERATIVO Administracin de Archivos. Un archivo es un conjunto de informacin, que se encuentra almacenada o guardada en la memoria principal del computador, en el disco duro, en el disquete flexible o en los discos compactos (Cd-Rom). Antes de que un archivo pueda leerse o escribirse en l, debe abrirse, momento en el cual se verifican los permisos. Estos archivos se abren especificando en el computador la ruta de acceso al archivo desde el directorio raz, que es la unidad principal del disco del computador, este puede ser un disco duro o disco flexible.

Uno de los problemas mas frecuentes en el manejo de archivos son los deadlock, un deadlock es una situacin no deseada de espera indefinida y se da cuando en un grupo de procesos, dos o ms procesos de ese grupo esperan por llevar a cabo una tarea que ser ejecutada por otro proceso del mismo grupo, entonces se produce el bloqueo. Dispositivos de Entrada y Salida El cdigo destinado a manejar la entrada y salida de los diferentes perifricos en un sistema operativo es de una extensin considerable y sumamente complejo. Resuelve la necesidades de sincronizar, atrapar interrupciones y ofrecer llamadas al sistema para los programadores. Los dispositivos de entrada salida se dividen, en general, en dos tipos: dispositivos orientados a bloques y dispositivos orientados a caracteres. Orientados a Bloques. Los dispositivos orientados a bloques tienen la propiedad de que se pueden direccionar, esto es, el programador puede escribir o leer cualquier bloque del dispositivo realizando primero una operacin de posicionamiento sobre el dispositivo. Orientados a Caracteres. Los dispositivos orientados a caracteres son aquellos que trabajan con secuencias de bytes sin importar su longitud ni ninguna agrupacin en especial. Administracin de Proceso. Uno de los conceptos mas importantes que gira entorno a un sistema operativo es el de proceso. Un proceso es un programa en ejecucin junto con el entorno asociado (registros, variables ,etc.).

El corazn de un sistema operativo es el ncleo, un programa de control que reacciona ante cualquier interrupcin de eventos externos y que da servicio a los procesos, crendolos, terminndolos y respondiendo a cualquier peticin de servicio por parte de los mismos. Planificacin del Procesador.

La planificacin del procesador se refiere a la manera o tcnicas que se usan para decidir cunto tiempo de ejecucin y cuando se le asignan a cada proceso del sistema. Obviamente, si el sistema es monousuario y monotarea no hay mucho que decidir, pero en el resto de los sistemas esto es crucial para el buen funcionamiento del sistema. Caractersticas a Estas caractersticas pueden ser: considerar de los Procesos:

Cantidad de Entrada/Salida: Existen procesos que realizan una gran cantidad de operaciones de entrada y salida. Cantidad de Uso de CPU: Existen procesos que no realizan muchas operaciones de entrada y salida, sino que usan intensivamente la unidad central de procesamiento. Procesos de Lote o Interactivos: Un proceso de lote es ms eficiente en cuanto a la lectura de datos, ya que generalmente lo hace de archivos. Procesos en Tiempo Real: Si los procesos deben dar respuesta en tiempo real se requiere que tengan prioridad para los turnos de ejecucin. Longevidad de los Procesos: Existen procesos que tpicamente requerirn varias horas para finalizar su labor, mientras que existen otros que solo necesitan algunos segundos. Gestin de la memoria :

El sistema operativo se encarga de gestionar el espacio de memoria asignado para cada aplicacin y para cada usuario, si resulta pertinente. Cuando la memoria fsica es insuficiente, el sistema operativo puede crear una zona de memoria en el disco duro, denominada memoria virtual. La memoria virtual permite ejecutar aplicaciones que requieren una memoria superior a la memoria RAM disponible en el sistema. Sin embargo, esta memoria es mucho ms lenta. 1.4. ESTRUCTURA DE LOS SISTEMAS OPERATIVOS TIPOS DE SISTEMAS OPERATIVOS En esta seccin se describirn las caractersticas que clasifican a los sistemas operativos, bsicamente se cubrirn tres clasificaciones: sistemas operativos por su estructura (visin interna), sistemas operativos por los servicios que ofrecen y, finalmente, sistemas operativos por la forma en que ofrecen sus servicios (visin externa). 2.1 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. 2.1.1 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. 2.1.2 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 (Ver Fig. 3). Se puede pensar tambin en estos sistemas como si fueran `multicapa. Multics y Unix caen en esa categora. [Feld93]. 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). 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. 2.1.3 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). 2.1.4 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. 2.2 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.

2.2.1 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. 2.2.2 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. 2.2.3 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 se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez. 2.2.4 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. 2.2.5 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?. 2.2.6 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 cualesquira 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. Us 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.

2.3. 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 distribudos. 2.3.1 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 cinjunto 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/codigo 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/codigo/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. 2.3.2 Sistemas Operativos Distribudos Los sistemas operativos distribudos 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 simplementa 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 distribudo, pero en la realidad no se ha conseguido crear uno del todo, por la complejidad que suponen: distribur los procesos en las varias unidades de procesamiento, reintegrar subresultados, 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 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. 2.3.2.1 Ventajas de los Sistemas Distribudos

En general, los sistemas distribudos (no solamente los sistemas operativos) exhiben algunas ventajas sobre los sistemas centralizados que se describen enseguida. Economa: El cociente precio/desempeo de la suma del poder de los procesadores separados contra el poder de uno solo centralizado es mejor cuando estn distribudos. Velocidad: Relacionado con el punto anterior, la velocidad sumada es m uy superior. Confiabilidad: Si una sola mquina falla, el sistema total sigue funcionando. Crecimiento: El poder total del sistema puede irse incrementando al aadir pequeos sistemas, lo cual es mucho ms difcil en un sistema centralizado y caro. Distribucin: Algunas aplicaciones requieren de por s una distribucin fsica. Por otro lado, los sistemas distribudos tambin exhiben algunas ventajas sobre sistemas aislados. Estas ventajas son: Compartir datos: Un sistema distribudo permite com partir datos ms fcilmente que los sistemas aislados, que tendrian que duplicarlos en cada nodo para lograrlo. Compartir dispositivos: Un sistema distribudo permite accesar dispositivos desde cualquier nodo en forma transparente, lo cual es imposible con los sistemas aislados. El sistema distribudo logra un efecto sinergtico. Comunicaciones: La comunicacin persona a persona es factible en los sistemas distribudos, en los sistemas aislados no. _ Flexibilidad: La distribucin de las cargas de trabajo es factible en el sistema distribudos, se puede incrementar el poder de cmputo. 2.3.2.2 Desventajas de los Sistemas Distribudos As como los sistemas distribudos exhiben grandes ventajas, tambin se pueden identificar algunas desventajas, algunas de ellas tan serias que han frenado la produccin comercial de sistemas operativos en la actualidad. El problema ms importante en la creacin de sistemas distribudos es el software: los problemas de comparticin de datos y recursos es tan complejo que los mecanismos de solucin generan mucha sobrecarga al sistema hacindolo ineficiente. El checar, por ejemplo, quines tienen acceso a algunos recursos y quines no, el aplicar los mecanismos de proteccin y registro de permisos consume demasiados recursos. En general, las soluciones presentes para estos problemas estn an en paales. Otros problemas de los sistemas operativos distribudos surgen debido a la concurrencia y al paralelismo. Tradicionalmente las aplicaiones son creadas para computadoras que ejecutan secuencialmente, de manera que el identificar secciones de cdigo `paralelizable es un trabajo ardo, pero necesario para dividir un proceso grande en sub-procesos y enviarlos a diferentes unidades de procesamiento para lograr la distribucin. Con la concurrencia se deben implantar mecanismos para evitar las condiciones de competencia, las postergaciones indefinidas, el ocupar un recurso y estar esperando otro, las condiciones de espera circulares y , finalmente, los abrazos mortales (deadlocks). Estos problemas de por s se presentan en los sistemas operativos multiusuarios o multitareas, y su tratamiento en los sistemas distribudos es an ms complejo, y por lo tanto, necesitar de algoritmos ms complejos con la inherente sobrecarga esperada. Por otro lado, en el tema de sistemas distribudos existen varios conceptos importantes referentes al hadware que no se ven en este trabajo: multicomputadoras, multiprocesadores, sistemas acoplados dbil y fuertemente, etc. En [Tan92] pginas 366 - 376 puede encontrarse material relacionado a estos conceptos.

1.5 Anlisis de los SO ms comerciales. (LINUX, UNX, Windows, MACH, OS/2, VAX, MVS, etc.). TAREA 1