Materia: Sistemas Operativos. Maestro: Ing. Aragn Reyes Vera Alexandro.
Unidad I. Introduccin a los Sistemas Operativos.
Integrante: Garca Snchez Jhonatan Alan.
Grupo: o. Grado: 3er Semestre.
Juchitn de Zaragoza, Oaxaca a 6 de septiembre del 2014.
2
Introduccin. En esta unidad veremos lo que es un Sistema Operativo (SO): es una coleccin organizada de rutinas o extensiones de software del hardware. Consiste en rutinas de control que hacen funcionar una computadora y proporcionan un entorno para la ejecucin de los programas. El SO debe brindar una forma de que el usuario se pueda interactuar con l a travs de una interfaz que le brinde una va de comunicacin con el hardware del sistema informtico. El objetivo principal del SO es lograr es el lograr que el hardware de la computadora se emplee de modo eficiente, y el objetivo secundario se use de manera cmoda y segura. El SO debe asegurar el correcto funcionamiento del sistema informtico. Para lograr esto el hardware debe brindar algn mecanismo apropiado que impida que los usuarios intervengan en el funcionamiento del sistema y as mismo el SO debe poder utilizar este recurso de hardware de modo que esto se cumpla. El SO debe ofrecer servicios a los programas y sus usuarios para facilitar la tarea de programacin.
3
ndice Introduccin. ....................................................................................................................................... 2 1.1.-Introduccin a los sistemas operativos. ....................................................................................... 4 1.1 Definicin Y Concepto. .................................................................................................................. 4 1.2 Funciones Y Caractersticas. .......................................................................................................... 6 1.3.- Evolucin Histrica ...................................................................................................................... 9 1.4 Clasificacin. ................................................................................................................................ 13 1.5 Estructura (niveles o estratos de diseo). ................................................................................... 15 1.6 Ncleo. ........................................................................................................................................ 18 1.6.1 Interrupciones (FLIH). ............................................................................................................... 20 1.6.2 Despachador (Schedule). ......................................................................................................... 22 1.6.3 Primitivas de Comunicacin. .................................................................................................... 24 Conclusin. ........................................................................................................................................ 25 BIBLIOGRAFIA. ................................................................................................................................... 26
4 1.1.-Introduccin a los sistemas operativos.
1.1 Definicin Y Concepto.
Se define coleccin de mecanismos de software destinados a servir de interface entre un Sistema informtico y sus usuarios, el cual ofrece herramientas y facilidades para simplificar las tareas de diseo, codificacin, depuracin, actualizacin, etc. Administra los recursos hardware y software que constituyen el sistema informtico a explotar. El S.O naci con la necesidad de llevar el control de quin utiliza los recursos software. Componentes principales: manejo de procesos, entrada/salida, manejo de memoria y del sistema de archivos. Un sistema de computacin consta de hardware, programas del sistema y programas de aplicacin.
El sistema operativo guarda 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 invento, las computadoras digitales han utilizado un sistema de codificado 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, los sistemas operativos no existan y la introduccin de un programa para ser ejecutado se converta en un increble esfuerzo que
5 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 especficas 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 decir de 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.
6
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: 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.2 Funciones Y Caractersticas. Funciones del Sistema Operativo El SO permite al usuario interactuar con el hardware de la computadora y controla la ejecucin de los programas de aplicacin. Puede considerarse que sus funciones ms importantes son: a) Gestionar los recursos hardware y software de la computadora. El Sistema Operativo asiste al procesador en el uso de los recursos y el tiempo empleado para ello, controlando as la ejecucin de los programas y los recursos utilizados en el traslado, almacenamiento y proceso de datos para el control de estas funciones desde y hacia los dispositivos de entrada y salida (e/s).
b) El Sistema Operativo como interfaz usuario/computadora. El SO provee la interfaz de comunicacin entre la computadora y el usuario, as el ltimo puede interactuar de manera sencilla y rpida con el hardware sin tener que conocer a profundidad la arquitectura, permitindole operar la computadora en trminos de aplicaciones. Actualmente, la mayora de los SO implementan una interfaz grfica de usuario (GUI, por sus siglas en ingls: Graphical User Interface) que incrementa notablemente la comodidad
7 del usuario al operar el sistema, pero existen otros SO cuya interfaz es modo consola, tambin conocida como interfaz de lnea de comandos (CLI, por sus siglas en ingls: Command Line Interface), y para operar el sistema el usuario debe conocer una amplia gama de instrucciones conocidas como comandos. El Sistema Operativo, permite al usuario y a los programas de aplicaciones el acceso y uso del hardware, ofrece un conjunto de servicios en las siguientes reas:
Creacin de programas: Editores y depuradores para programar que no forman realmente parte del SO, pero que son accesibles a travs del mismo.
Ejecucin de programas: El SO prepara los recursos, instrucciones y datos que deben cargarse a la memoria principal (RAM) requeridos por un programa antes de ejecutarse.
Acceso a los dispositivos de entrada y salida: El SO cuenta con un conjunto de seales de instrucciones y seales de control para su funcionamiento.
Acceso al sistema: El SO brinda un servicio de proteccin a los recursos y datos ante usuarios no autorizados y resuelve los conflictos de propiedad.
Deteccin y respuesta de errores. Cuando una computadora est funcionando pueden producirse errores (internos o externos) del hardware tales como el desbordamiento de memoria, fallas de lectura en el disco duro y problemas de compatibilidad entre aplicaciones. El SO debe detectar el tipo de error y dar una respuesta que elimine la condicin provocada por el error con el menor impacto posible sobre las aplicaciones que se estn ejecutando.
Contabilidad: El SO puede generar estadsticas de uso de los recursos y su rendimiento.
c) Proveer la plataforma de ejecucin de los programas de aplicacin, as las aplicaciones pueden explotar los recursos de la computadora a travs del SO. Los programas de aplicaciones as como los procesos internos de la computadora tambin son considerados usuarios del sistema, estos programas durante su ejecucin requieren de un conjunto de recursos hardware y para poder usarlos realizan peticiones al SO, quien se encarga de gestionar el uso de los recursos solicitados por los usuarios.
8 Caractersticas De Los Sistemas Operativos
Conveniencia: hace ms eficaz el uso de una computadora.
Eficiencia: permite explotar de la forma ms eficiente los recursos de la computadora.
Escalabilidad: permite el desarrollo, prueba o introduccin efectiva de nuevas funciones del sistema sin interferir con el servicio o introducir errores de funcionalidad.
Administra el hardware de la computadora al gestionar de manera compartida y simultanea el hardware por parte de los procesos.
Permite la comunicacin entre los diferentes dispositivos perifricos, cuando el usuario o los procesos as lo requieren. Organizar datos en la memoria y dispositivos de almacenamiento de manera que el acceso sea lo ms rpido posible y seguro. Manejar las comunicaciones en red.
Procesamiento por bytes de flujo mediante el bus de datos.
Facilitar la entrada y salida de datos e informacin al sistema a travs de los dispositivos de entrada/salida. Integra tcnicas de recuperacin de errores.
Impide que otros usuarios interfieran al evitar que los usuarios se bloqueen entre ellos, comunicndoles si esa aplicacin est siendo ocupada por algn otro usuario.
Generacin de estadsticas.
Permite compartir el hardware y los datos entre los usuarios.
9 1.3.- Evolucin Histrica
Los S.O, al igual que el Hardware de los computadores, han tenido 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.
Generacin Cero (dcada de 1940)
Los primeros sistemas computacionales no posean sistemas operativos. Los usuarios tenan completo acceso al lenguaje de la mquina. Todas las instrucciones eran codificadas a mano. La generacin cero abarca la dcada de los aos 40 y se caracteriza porque no existan los SO, el usuario deba codificar manualmente en lenguaje mquina las instrucciones que le permitan usar los recursos de la computadora y controlar as la ejecucin de sus programas.
10 Primera Generacin (dcada de 1950) Los sistemas operativos de los aos cincuenta fueron diseados para hacer ms 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 tena control total de la mquina. 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. En 1955 General Motors y North American Aviation desarrollan el S.O para la computadora IBM 704, bsicamente lo nico que haca era comenzar la ejecucin de un programa cuando terminaba el anterior; para 1957 ya se haban desarrollado, de manera particular, distintos SO para ese modelo de computadora.
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.
11 Segunda Generacin (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 mquina. La independencia de dispositivos aparece despus. Un usuario que desea escribir datos en una cinta en sistemas de la primera generacin tena que hacer referencia especfica 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 nmero de pistas y cierta densidad. Se desarroll 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 Generacin (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.
12 Estos sistemas introdujeron mayor complejidad a los ambientes computacionales; una complejidad a la cual, en un principio, no estaban acostumbrados los usuarios.
Cuarta Generacin (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 han incrementado mucho ahora que la informacin pasa a travs de varios tipos vulnerables de lneas de comunicacin. La clave de cifrado est 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 ms 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 mquinas virtuales es utilizado, el usuario ya no se encuentra interesado en los detalles fsicos de; sistema de computacin que est siendo accedida. En su lugar, el usuario ve un panorama llamado mquina virtual creada 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.
13 1.4 Clasificacin.
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 est 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 est 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 est 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 est ejecutando. Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se est 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.
14 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,
15 mientras que la multitarea relacionada con las microcomputadoras implica la realizacin de mltiples tareas por un solo usuario. 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.
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.
1.5 Estructura (niveles o estratos de diseo). Internamente los sistemas operativos estructuralmente de se clasifican segn como se hayan organizado internamente en su diseo, por esto la clasificacin ms comn de los S.O. Son: Sistemas Monolticos: 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
16 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: Un programa central que invoque el procedimiento de servicio solicitado (Shell o Kernel). Un conjunto de procedimientos de servicios que realice las llamadas al sistema. 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 a continuacin: 5 Operador de THE.
4 Programas del usuario.
3 Administracin de Entrada/Salida.
2 Comunicacin entre el operador y el proceso.
1 Administracin de la memoria y el tambor magntico. 0 Distribucin del procesador y multiprogramacin.
17 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 estrato 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 est 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 ms comn; bien podra recibir el subttulo 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 ltimo 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 organizacin sugiere una organizacin bsica del sistema operativo: 1.- un programa principal que llama al procedimiento del servicio solicitado.
18 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.
1.6 Ncleo.
Componente que interacta directamente con el hardware. Contiene un conjunto de rutinas que hacen posible la ejecucin de los programas y la comunicacin entre ellos y el Hardware, es el que gestiona la entrada y salida del sistema, adaptndolas al hardware del sistema. Es el software que constituye el ncleo del sistema operativo, dnde se realizan las funcionalidades bsicas como la gestin de procesos, la gestin de memoria y de entrada salida. El kernel del sistema operativo controla todas las operaciones que implican procesos y representa slo una pequea porcin del cdigo de todo el Sistema Operativo pero es de amplio uso. Para que una computadora pueda arrancar y funcionar, no es necesario que tenga un ncleo para poder usarse.
19
Los programas pueden cargarse y ejecutarse directamente en una computadora vaca, siempre que sus autores quieran desarrollarlos sin usar ninguna abstraccin del hardware ni ninguna ayuda del sistema operativo. sta era la forma normal de usar muchas de las primeras computadoras: para usar distintos programas se tena que reiniciar y reconfigurar la computadora cada vez. Con el tiempo, se empez a dejar en memoria (an entre distintas ejecuciones) pequeos programas auxiliares, como el cargador y el depurador, o se cargaban desde memoria de slo lectura. A medida que se fueron desarrollando, se convirtieron en los fundamentos de lo que llegaran a ser los primeros ncleos de sistema operativo.
El kernel presenta al usuario o los programas de aplicacin una interfaz de programacin de alto nivel, implementando la mayora de las facilidades requeridas por stos. Rene el manejo de una serie de siguientes conceptos ligados al hardware de nivel ms bajo: Procesos (tiempo compartido, espacios de direccionamiento protegidos. Seales y Semforos. Memoria Virtual ("swapping", paginado). Sistema de Archivos; Tubos ("pipes") y Conexiones de red.
Tipos de Ncleos:
Kernel Monoltico: Todas las funcionalidades posibles estn integradas en el sistema. Se trata de un programa de tamao considerable que deberemos recompilar al completo cada vez que se quiera aadir una nueva posibilidad. Esta es la estructura original de Linux. Por tratarse de una tcnica clsica y desfasada el creador de Linux fue muy criticado. Ejemplos: los primeros kernels de Linux, UNIX y DOS.
Kernel Modular: Se trata de la tendencia actual de desarrollo. En el kernel se centran las funcionalidades esenciales como la administracin de memoria, la planificacin de procesos, etc. Sin embargo no tiene sentido que el ncleo de un sistema operativo englobe toda la parafernalia para comunicarse con todas las posibles de tarjetas de vdeo o de sonido. En otros sistemas operativos esto se soluciona con unos archivos proporcionados por el
20 fabricante llamados drivers. En Linux se cre una interfaz adecuada para posibilitar el desarrollo de mdulos que cumplieran esas funcionalidades. Esos mdulos pueden ser compilados por separado y aadidos al kernel en tiempo de ejecucin. Ejemplo: Actualmente el kernel de linux.
Estructura De Micro-kernel: Esta tcnica pretende reducir a su mnima expresin el kernel, dejando a los niveles superiores el resto de las funcionalidades. Existen algunos kernels que lo utilizan, si bien el que centra nuestra atencin es Hurd. Se trata del ltimo kernel GNU llamado a sustituir a Linux como ncleo del sistema operativo. Aunque esta estrategia de diseo es tan antigua como la modular, no ha sido tenida en cuenta hasta ahora debido a las limitaciones de rendimiento que tena. Ejemplos: AIX, La familia de micro-ncleos L4, El micro-ncleo Mach (Usado en GNU Hurd y en Mac OS X), Minix, MorphOS, QNX, RadiOS, VSTa).
1.6.1 Interrupciones (FLIH).
La interrupcin es el mecanismo mediante el cual otros mdulos pueden interrumpir una secuencia normal de procesamiento. La interrupcin generada por el hardware del sistema de cmputo. Cuando ocurre la interrupcin: El sistema operativo toma el control (es decir, el hardware pasa el control al sistema operativo) El sistema operativo guarda el estado del proceso interrumpido. En muchos sistemas esta informacin se guarda en el bloque de control de proceso interrumpido. El sistema operativo analiza la interrupcin y transfiere el control a la rutina apropiada para atenderla; en muchos sistemas actuales el hardware se encarga de esto automticamente. La rutina del manejador de interrupciones procesa la interrupcin. Se restablece el estado del proceso interrumpido (o del siguiente proceso). Se ejecuta el proceso interrumpido (o el siguiente proceso). Una interrupcin puede ser iniciada especficamente por un proceso en ejecucin (en cuyo caso se suele denominar trampa (trap), y se dice que est sincronizada con la
21 operacin del proceso) o puede ser causada por algn evento que puede estar relacionado o no con el proceso en ejecucin (en cuyo caso se dice que es asncrona con la operacin del proceso). Los sistemas orientados hacia las interrupciones pueden sobrecargarse. Si ests llegan con mucha frecuencia, el sistema no ser capaz de atenderlas. En algunos sistemas orientados hacia el teclado, cada tecla presionada almacena en la memoria un cdigo de un byte y genera una interrupcin para informar a la UCP que un carcter est listo para ser procesado. Si la UCP no puede procesar el dato antes de que se presione la siguiente tecla, se pierde el primer carcter.
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: Costo Elevado: Un comparador para muchas interrupciones es muy caro.
22 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.
Tipos De Interrupciones:
o Interrupciones que provocan cambios de estado del proceso en ejecucin. o Algunos extracdigos: Peticiones de E/S. o Seales de error para suspensin. o Interrupciones de reloj: Interrupciones por expiracin del temporizador. o Interrupciones que provocan cambios de estado en procesos que no estn en ejecucin. o Interrupciones de E/S.
1.6.2 Despachador (Schedule).
OBJETIVO PRINCIPAL DEL DESPACHADOR: Optimizar la eficiencia del sistema, de acuerdo con criterios considerados importantes para el ambiente del sistema operativo. FUNCIONES: El despachador examina la prioridad de los procesos. Controla los recursos de una computadora y los asigna entre los usuarios. Permite a los usuarios correr sus programas. Controla los dispositivos de perifricos conectados a la mquina. Cambio de contexto. Cambio a modo usuario.
23
Tipos De Despachadores:
De Largo Plazo : El despachador de largo plazo, cuando existe, trabaja con la cola de los trabajos en lotes y selecciona el siguiente trabajo de lotes a ejecutarse. Su objetivo principal es proporcionar una mezcla balanceada de trabajos al despachador de corto plazo. Este tipo de despachador es invocado cada vez que un proceso termina y abandona el sistema. Su utilizacin es relativamente poco frecuente. En trminos del diagrama de transicin de estados de un proceso, el despachador de largo plazo se encarga de la transicin de un proceso del estado de dormido al estado de listo.
De Mediano Plazo: Cuando existen procesos que necesitan un uso intensivo de las facilidades de entrada y salida, y que por ello permanezcan suspendidos, puede ser que stos procesos se quiten temporalmente de memoria principal y se guarden en memoria secundaria, hasta que su condicin de espera haya concluido (a esta actividad se le conoce como:swapping), para darle oportunidad a otros procesos que quieran ser admitidos. El despachador de mediano plazo se encarga del manejo de procesos que temporalmente se han enviado a memoria secundaria. En trminos del diagrama de transicin de estados, el despachador de mediano plazo se encarga de la transicin suspendido a listo.
De Corto Plazo: El despachador de corto plazo asigna el CPU entre los procesos listos en memoria principal. Su objetivo principal es maximizar la eficiencia del sistema de acuerdo con ciertos criterios. Ya que se encarga de las transiciones de 5listo a ejecutndose. En la prctica, el despachador de corto plazo se invoca cada vez que ocurre un evento que modifique el estado global del sistema. Algunos eventos que provocan tales cambios son:
Pulsos de reloj (interrupciones de tiempo). Interrupciones y terminaciones de E/S. La mayora de los llamados operacionales al sistema operativo. Envo y recepcin de seales-Activacin de programas interactivos.
24 1.6.3 Primitivas de Comunicacin.
Los procesos que se ejecutan concurrentemente pueden ser procesos independientes o procesos cooperativos. Un proceso es independiente si no puede afectar o verse afectado por los restantes procesos que se ejecutan en el sistema.
Cualquier proceso que no comparte datos con ningn otro proceso es un proceso independiente. Un proceso es cooperativo si puede afectar o verse afecta-do por los dems procesos que se ejecutan en el sistema. Evidentemente, cualquier proceso que comparte datos con otros procesos es un proceso cooperativo.
Hay varias razones para proporcionar un entorno que permita la cooperacin entre procesos:
Compartir informacin: Dado que varios usuarios pueden estar interesados en la misma informacin (por ejemplo, un archivo compartido), debemos proporcionar un entorno que permita el acceso concurrente a dicha informacin.
Acelerar los clculos: Si deseamos que una determinada tarea se ejecute rpidamente, debemos dividirla en sub-tareas, ejecutndose cada una de ellas en paralelo con las dems. Observe que tal aceleracin solo se puede conseguir si la computadora tiene mltiples elementos de procesamiento, como por ejemplos varias CPU o varios canales de E/S.
Modularidad: Podemos querer construir el sistema de forma modular, dividiendo las funciones del sistema en diferentes procesos o hebras.
Conveniencia: Incluso un solo usuario puede querer trabajar en muchas tareas al mismo tiempo. Por ejemplo, un usuario puede estar editando, imprimiendo y compilando en paralelo. La cooperacin entre procesos requiere mecanismos de comunicacin interprocesos (IPC, interprocesos comunicacin) que les permitan intercambiar datos e informacin. Existen dos modelos fundamentales de comunicacin interprocesos:
25
Conclusin.
Despus de haber Analizado se puede ver que se han desarrollado varios tipos de sistemas operativos con diferentes interfaces y categoras. Pero hemos podido observar que todos los sistemas operativos han sufrido cambios por parte de los programadores, y siguen evolucionando siguen teniendo avances tecnolgicos El uso de las GUI es ms sencillo que el de las interfaces de lnea de comandos. Sin embargo, la introduccin de instrucciones con una GUI es ms lenta, por lo que las GUI suelen tener la opcin de emplear un sistema equivalente al de lnea de instrucciones como alternativa rpida para los usuarios ms expertos. . El sistema operativo multitarea de Apple se denomina Macintosh OS. El MS-DOS es un SO popular entre los usuarios de PCs pero solo permite un usuario y una tarea.