Está en la página 1de 12

Definicin y concepto Un Sistema Operativo (SO) es el software bsico de una computadora que provee una interfaz entre el resto

de programas del ordenador, los dispositivos hardware y el usuario. Las funciones bsicas del Sistema Operativo son administrar los recursos de la mquina, coordinar el hardware y organizar archivos y directorios en dispositivos de almacenamiento. Los Sistemas Operativos ms utilizados son Dos, Windows, Linux y Mac. Algunos SO ya vienen con un navegador integrado, como Windows que trae el navegador Internet Explorer. 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. 1.2 Funciones y caractersticas. 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. 1.3 Evolucin histrica. Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computadora destinado a permitir una administracin eficaz de sus recursos. Comienza a trabajar cuando se enciende el computador, y gestiona el hardware de la mquina desde los niveles ms bsicos, permitiendo tambin la interaccin con el usuario. Un sistema operativo se puede encontrar normalmente en la mayora de los aparatos electrnicos que utilicen microprocesadores para funcionar, ya que gracias a stos podemos entender la mquina y que sta cumpla con sus funciones (telfonos mviles, reproductores de DVD, autoradios, computadoras, etc). Actualmente el concepto de computadora esta intrnsecamente relacionado al de sistema operativo, aunque ste existe en otros aparatos electrnicos y no slo en las computadoras. Aos 40 A finales de los aos 40, con lo que podramos llamar la aparicin de la primera generacin de computadoras, se acceda directamente a la consola de la computadora desde la cual se actuaba sobre una serie de micro interruptores que permitan introducir directamente el programa en la memoria de la computadora (en realidad al existir tan pocas computadoras todos podran considerarse prototipos y cada constructor lo haca sin seguir ningn criterio predeterminado). Por aquel entonces no existan los sistemas operativos, y los programadores deban interactuar con el hardware del computador sin ayuda externa.

Aos 50 A principios de los aos 50 con el objeto de facilitar la interaccin entre persona y computador, los sistemas operativos hacen una aparicin discreta y bastante simple, con conceptos tales como el monitor residente, el proceso por lotes y el almacenamiento temporal. Monitor residente Su funcionamiento era bastante simple, se limitaba a cargar los programas a memoria, leyndolos de una cinta o de tarjetas perforadas, y ejecutarlos. El problema era encontrar una forma de optimizar el tiempo entre la retirada de un trabajo y el montaje del siguiente. Procesamiento por lotes Como solucin para optimizar , en una misma cinta o conjunto de tarjetas, de forma que se ejecutaran uno a continuacin de otro sin perder apenas tiempo en la transicin. Almacenamiento temporal Su objetivo era disminuir el tiempo de carga de los programas, haciendo simultnea la carga del programa o la salida de datos con la ejecucin de la siguiente tarea. Para ello se utilizaban dos tcnicas, el buffering y el spooling. Aos 60 En los aos 60 se produjeron cambios notorios en varios campos de la informtica, con

la

aparicin

del

circuito

integrado

la

mayora

orientados a seguir incrementando el potencial de los computadores. Para ello se utilizaban tcnicas de lo ms diversas: Multiprogramacin En un sistema multiprogramado la memoria principal alberga a ms de un programa de usuario. La CPU ejecuta instrucciones de un programa, cuando el que se encuentra en ejecucin realiza una operacin de E/S; en lugar de esperar a que termine la operacin de E/S, se pasa a ejecutar otro programa. Si ste realiza, a su vez, otra operacin de E/S, se mandan las rdenes oportunas al controlador, y pasa a ejecutarse otro. De esta forma es posible, teniendo almacenado un conjunto adecuado de tareas en cada momento, utilizar de manera ptima los recursos disponibles. Tiempo compartido Tiempo compartido En este punto tenemos un sistema que hace buen uso de la electrnica disponible, pero adolece de falta de interactividad; para conseguirla debe convertirse en un sistema multiusuario, en el cual existen varios usuarios con un terminal en lnea, utilizando el modo de operacin de tiempo compartido. En estos sistemas los programas de los distintos usuarios residen en memoria. Al realizar una operacin de E/S los programas ceden la CPU a otro programa, al igual que en la multiprogramacin. Pero, a diferencia de sta, cuando un programa lleva cierto tiempo ejecutndose el sistema operativo lo detiene para que se ejecute otro aplicacin. Con esto se consigue repartir la CPU por igual entre los programas de los distintos usuarios, y los programas de los usuarios no se sienten demasiado lentos por el hecho de que los recursos sean compartidos y aparentemente se ejecutan de manera concurrente. Tiempo real Estos sistemas se usan en entornos donde se deben aceptar y procesar en tiempos muy breves un gran nmero de sucesos, en su mayora externos al ordenador. Si el sistema no respeta las restricciones de tiempo en las que las operaciones deben entregar su resultado se dice que ha fallado. El tiempo de respuesta a su vez debe servir para resolver el problema o hecho planteado. El procesamiento de archivos se hace de una forma continua, pues se procesa el archivo antes de que entre el siguiente, sus primeros usos fueron y siguen siendo en telecomunicaciones. Multiprocesador Permite trabajar con mquinas que poseen ms de un microprocesador. Se denomina multiprocesador a un ordenador que cuenta con dos o ms microprocesadores (CPUs). Gracias a esto, el multiprocesador puede ejecutar simultneamente varios hilos pertenecientes a un mismo proceso o bien a procesos diferentes. Los ordenadores multiprocesador presentan problemas de diseo que no se encuentran en ordenadores monoprocesador. Estos problemas derivan del hecho de que dos programas pueden ejecutarse simultneamente y, potencialmente, pueden interferirse entre s. Concretamente, en lo que se refiere a las lecturas y escrituras en memoria. Existen dos arquitecturas que resuelven estos problemas: La arquitectura NUMA, donde cada procesador tiene acceso y control exclusivo a una parte de la memoria. La arquitectura SMP, donde todos los procesadores comparten toda la memoria. Esta ltima debe lidiar con el problema de la coherencia de cach. Cada microprocesador cuenta con su propia memoria cache local. De manera que cuando un microprocesador escribe en una direccin de memoria, lo hace nicamente sobre su copia local en cach. Si

otro

microprocesador

tiene almacenada la misma direccin de memoria en su cach, resultar que trabaja con una copia obsoleta del dato

almacenado. Para que un multiprocesador opere correctamente necesita un sistema operativo especialmente diseado para ello. La mayora de los sistemas operativos actuales poseen esta capacidad. Sistemas operativos desarrollados Adems del Atlas Supervisor y el OS/360, los sesenta marcaron el inicio de UNIX, a mediados de los 60 aparece Multics, sistema operativo multiusuario - multitarea desarrollado por los laboratorios Bell de AT&T y programado en PL/1 uno de los pocos SO desarrollados en un lenguaje de alto nivel en aquel tiempo, luego del fracaso del proyecto, UNIX comienza a desarrollarse a partir de este a finales de la dcada. Aos 70 Debido al avance de la electrnica, pudo empezar a crearse circuitos con miles de transistores en un centmetro cuadrado de silicio, lo que llevara, pocos aos despus, a producir los primeros sistemas integrados. sta dcada se podra definir como la de los sistemas de propsito general y en ella se desarrollan tecnologas que se siguen utilizando en la actualidad. Es en los aos 70 cuando se produce el boom de los miniordenadores y la informtica se acerca al nivel de usuario. En lo relativo a lenguajes de programacin, es de sealar la aparicin de Pascal y C, el ltimo de los cuales se cre especficamente para reescribir por completo el cdigo del sistema operativo Unix, convirtindolo en uno de los pocos SO escritos en un lenguaje de alto nivel. En el campo de la programacin lgica se dio a luz la primera implementacin de Prolog, y en la revolucionaria orientacin a objetos, Smalltalk. Sistemas operativos desarrollados MULTICS (Multiplexed Information and Computing Service): Originalmente era un proyecto cooperativo liderado por Fernando Corbat del MIT, con General Electric y los laboratorios Bell, que comenz en los 60, pero los laboratorios Bell abandonaron en 1969 para comenzar a crear el sistema UNIX. Se desarroll inicialmente para el mainframe GE-645, un sistema de 36 bits; despus fue soportado por la serie de mquinas Honeywell 6180. Fue uno de los primeros sistemas operativos de tiempo compartido, que implement un solo nivel de almacenamiento para el acceso a los datos, desechando la clara distincin entre los ficheros y los procesos en memoria, y uno de los primeros sistemas multiprocesador. MVS (Multiple Virtual Storage): Fue el sistema operativo ms usado en los modelos de mainframes -ordenadores grandes, potentes y caros usados principalmente por grandes compaas para el procesamiento de grandes cantidades de datos- System/370 y System/390 de IBM, desarrollado tambin por IBM y lanzado al mercado por primera vez en 1974. Como caractersticas destacables, permita la ejecucin de mltiples tareas, adems de que introdujo el concepto de memoria virtual y finalmente aadi la capacidad de que cada programa tuviera su propio espacio de direccionamiento de memoria, de ah su nombre. CP/M (Control Program/Monitor): Desarrollado por Gary Kildall para el microprocesador 8080/85 de Intel y el Zilog Z80, sali al mercado en 1976, distribuyndose en disquetes de ocho pulgadas. Fue el SO ms usado en las computadoras personales de esta dcada. Su xito se debi a que era porttil, permitiendo que diferentes programas interactuasen con el hardware de una manera estandarizada. Estaba compuesto de dos subsistemas: CCP (Comand Control Processor): Intrprete de comandos que permita introducir los mandatos con sus parmetros separados por espacios. Adems, los traduca a instrucciones de alto nivel destinadas a BDOS. BDOS (Basic Disk Operating System): Traductor de las instrucciones en llamadas a la BIOS. El hecho de que, aos despus, IBM eligiera para sus PCs a MS-DOS supuso su mayor fracaso, por lo que acab desapareciendo. Aos 80 Con la creacin de los circuitos LSI -integracin a gran escala-, chips que contenan miles de transistores en un centmetro cuadrado de silicio, empez el auge de los ordenadores personales. En stos se dej un poco de lado el rendimiento y se busc ms que el sistema operativo fuera amigable, surgiendo mens, e interfaces grficas. Esto reduca la rapidez de las aplicaciones, pero se volvan ms prcticos y simples para los usuarios. En esta poca, siguieron utilizndose lenguajes ya existentes, como Smalltalk o C, y nacieron otros nuevos, de los cuales se podran destacar: C++ y Eiffel dentro del paradigma de la orientacin a objetos, y Haskell y Miranda en el campo de la programacin declarativa. Un avance importante que se estableci a mediados de la dcada de 1980 fue el desarrollo de redes de computadoras personales que corran sistemas operativos en red y sistemas operativos distribuidos. En esta escena, dos sistemas operativos eran los mayoritarios: MS-DOS, escrito por Microsoft para IBM PC y otras computadoras que utilizaban la CPU Intel 8088 y sus sucesores, y UNIX, que dominaba en los ordenadores personales que hacan uso del Motorola 68000. Apple Macintosh

El lanzamiento oficial se produjo en enero de 1984, al precio de 2495 dlares. Muchos usuarios, al ver que estaba completamente diseado para funcionar a travs de una GUI (Graphic User Interface), acostumbrados a la lnea de comandos, lo tacharon de juguete. A pesar de todo, el Mac se situ a la cabeza en el mundo de la edicin a nivel grfico. MS-DOS En 1981 Microsoft compr un sistema operativo llamado QDOS que, tras realizar unas pocas modificaciones, se convirti en la primera versin de MS-DOS (Micro Soft Disk Operating System). A partir de aqu se sucedieron una serie de cambios hasta llegar a la versin 7.1, a partir de la cual MS-DOS dej de existir como tal y se convirti en una parte integrada del sistema operativo Windows. Aos 90 GNU/Linux En 1991 aparece la primer versin del ncleo de Linux. Creado por Linus Torvalds y un sinfn de colaboradores a travs de Internet. Este sistema se basa en Unix, un sistema que en principio trabajaba en modo comandos, estilo MS-DOS. Hoy en da dispone de Ventanas, gracias a un servidor grfico y a gestores de ventanas como KDE, GNOME entre muchos. Recientemente GNU/Linux dispone de un aplicativo que convierte las ventanas en un entorno 3D como por ejemplo Beryl. Lo que permite utilizar linux de una forma visual atractiva. Microsoft Windows En 1985 se crea este sistema operativo pero hasta la salida de windows 95 no se le puede considerar un sistema operativo, solo era una interfaz grfica del MS- DOS. Hoy en da es el sistema operativo ms difundido en el mbito domestico aunque tambin hay versiones para servidores y Microsoft ha diseado algunas versiones para superordenadores sin mucho xito. 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.

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 vez de individualmente. La funcin de estos sistemas operativos consista en cargar en memoria un programa de la cinta y ejecutarlo. Al final este, se realizaba el salto a una direccin de memoria desde donde reasuma el control del sistema operativo que cargaba el siguiente programa y lo ejecutaba. De esta manera el tiempo entre un trabajo y el otro disminua considerablemente. Tiempo Real. Un sistema operativo en tiempo real procesa las instrucciones recibidas al instante, y una vez que han sido procesadas muestra el resultado. Este tipo tiene relacin con los sistemas operativos monousuarios, ya que existe un solo operador y no necesita compartir el procesador entre varias solicitudes. Su caracterstica principal es dar respuestas rpidas; por ejemplo en un caso de peligro se necesitaran respuestas inmediatas para evitar una catstrofe. Tiempo Compartido. El tiempo compartido en ordenadores o computadoras consiste en el uso de un sistema por ms de una persona al mismo tiempo. El tiempo compartido ejecuta programas separados de forma concurrente, intercambiando porciones de tiempo asignadas a cada programa (usuario). En este aspecto, es similar a la capacidad de multitareas que es comn en la mayora de los microordenadores o las microcomputadoras. Sin embargo el tiempo compartido se asocia generalmente con el acceso de varios usuarios a computadoras ms grandes y a organizaciones de servicios, mientras que la multitarea relacionada con las microcomputadoras implica la realizacin de mltiples tareas por un solo usuario. 1.5 Estructura (niveles o estratos de diseo). En informtica, el ncleo (tambin conocido en espaol con el anglicismo kernel, de races germnicas como kern) es la parte fundamental de un sistema operativo. Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma ms bsica, es el encargado de gestionar recursos, a travs de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, el ncleo tambin se encarga de decidir qu programa podr hacer uso de un dispositivo de hardware y durante cunto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los ncleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso para el programador. Funciones generalmente ejercidas por un ncleo: Los ncleos tienen como funciones bsicas garantizar la carga y la ejecucin de los procesos, las entradas/salidas y proponer un interfaz entre el espacio ncleo y los programas del espacio del usuario. Aparte de las funcionalidades bsicas, el conjunto de las funciones de los puntos siguientes (incluidos los pilotos materiales, las funciones de redes y sistemas de ficheros o los servicios) necesariamente no son proporcionados por un ncleo de sistema de explotacin. Pueden establecerse estas funciones del sistema de explotacin tanto en el espacio usuario como en el propio ncleo. Su implantacin en el ncleo se hace en el nico objetivo de mejorar los resultados. En efecto, segn la concepcin del ncleo, la misma funcin llamada desde el espacio usuario o el espacio ncleo tiene un coste temporal obviamente diferente. Si esta llamada de funcin es frecuente, puede resultar til integrar estas funciones al ncleo para mejorar los resultados. Hay que sealar que estas tcnicas son utilizadas para atenuar defectos de los ncleos como los elevados estados. En la medida de lo posible, es preferible escribir un programa informtico fuera del ncleo, en el espacio usuario. En efecto, el espacio del ncleo, supone la ausencia de

mecanismos como la proteccin de la memoria. Es pues ms complejo escribir un programa informtico que funciona en el espacio del ncleo, que en el espacio usuario; los errores y faltas de seguridad pueden desestabilizar el sistema. Tipos de ncleo : No necesariamente se necesita un ncleo para usar una computadora. 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. Hay cuatro grandes tipos de ncleos: Los ncleos monolticos facilitan abstracciones del hardware subyacente realmente potentes y variadas. Los microncleos (en ingls microkernel) proporcionan un pequeo conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad. Los ncleos 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. Los exoncleos no facilitan ninguna abstraccin, pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware. Microncleos: El enfoque microncleo consiste en definir una abstraccin muy simple sobre el hardware, 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. El objetivo principal es la separacin de la implementacin de los servicios bsicos y de la poltica de funcionamiento del sistema. Por ejemplo, el proceso de bloqueo de E/S se puede implementar con un servidor en espacio de usuario ejecutndose encima del microncleo. Estos servidores de usuario, utilizados para gestionar las partes de alto nivel del sistema, son muy modulares y simplifican la estructura y diseo del ncleo. Si falla uno de estos servidores, no se colgar el sistema entero, y se podr reiniciar este mdulo independientemente del resto. Sin embargo, la existencia de diferentes mdulos independientes origina retardos en la comunicacin debido a la copia de variables que se realiza en la comunicacin entre mdulos. Algunos ejemplos de 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. Por ejemplo, XNU, el ncleo de Mac OS X, est basado en el ncleo Mach 3.0 y en Free BSD, en el mismo espacio de direccionamiento para disminuir la latencia que comporta el diseo de microncleo convencional. A principios de los aos 1990, los ncleos monolticos se consideraban obsoletos. El diseo de Linux como un ncleo monoltico en lugar de como un microncleo fue el tema de una famosa disputa entre Linus Torvalds y Andrew Tanenbaum. Los argumentos de ambas partes en esta discusin presentan algunas motivaciones interesantes. Los ncleos monolticos 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 del ncleo. Aunque Mach es el microncleo generalista ms conocido, se han desarrollado otros microncleos con propsitos ms especficos. L3 fue creado para demostrar que los microncleos no son necesariamente lentos. La familia de microncleos L4 es la descendiente de L3, y una de sus ltimas implementaciones, llamada Pistachio, permite ejecutar Linux simultneamente con otros procesos, en espacios de direccionamiento separados.

QNX es un sistema operativo que ha estado disponible desde principios de los aos 1980, y tiene un diseo de microncleo 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 software, lo que incluye desde brazos robticos en naves espaciales, hasta mquinas que pulen cristal donde un pequeo error podra costar mucho dinero.

Mucha gente cree que como Mach bsicamente fall en el intento de resolver el conjunto de problemas que los microncleos intentaban subsanar, toda la tecnologa de microncleos es intil. Los partidarios de Mach afirman que sta es una actitud estrecha de miras que ha llegado a ser lo suficientemente popular para que mucha gente la acepte como verdad. Ncleos hbridos (microncleos modificados): Los ncleos hbridos fundamentalmente son microncleos que tienen algo de cdigo no esencial en espacio de ncleo para que ste se ejecute ms rpido de lo que lo hara si estuviera en espacio de usuario. ste fue un compromiso que muchos desarrolladores de los primeros sistemas operativos con arquitectura basada en microncleo adoptaron antes que se demostrara que los microncleos pueden tener muy buen rendimiento. La mayora de sistemas operativos modernos pertenecen a esta categora, siendo el ms popular Microsoft Windows. XNU, el ncleo de Mac OS X, tambin es un microncleo modificado, debido a la inclusin de cdigo del ncleo de Free BSD en el ncleo basado en Mach. Dragon Fly BSD? es el primer sistema BSD que adopta una arquitectura de ncleo hbrido sin basarse en Mach. Algunos ejemplos de ncleos hbridos: Microsoft Windows NT, usado en todos los sistemas que usan el cdigo base de Windows NT XNU (usado en Mac OS X) Dragon Fly BSD React OS? Hay gente que confunde el trmino ncleo hbrido con los ncleos monolticos que pueden cargar mdulos despus del arranque, lo que es un error. 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. La idea subyacente es permitir que el desarrollador tome todas las decisiones relativas al rendimiento del hardware. Los exoncleos son extremadamente pequeos, ya que limitan expresamente su funcionalidad a la proteccin y el multiplexado de los recursos. Se llaman as porque toda la funcionalidad deja de estar residente en memoria y pasa a estar fuera, en bibliotecas dinmicas. Los diseos de ncleos clsicos (tanto el monoltico como el microncleo) abstraen el hardware, escondiendo los recursos bajo una capa de abstraccin del hardware, o detrs de los controladores de dispositivo. En los sistemas clsicos, si se asigna memoria fsica, nadie puede estar seguro de cul es su localizacin real, por ejemplo. La finalidad de un exoncleo es permitir a una aplicacin que solicite una regin especfica de la memoria, un bloque de disco concreto, etc., y simplemente asegurarse que los recursos pedidos estn disponibles, y que el programa tiene derecho a acceder a ellos. Debido a que el exoncleo slo proporciona una interfaz al hardware 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 de las implicaciones tericas de un sistema exoncleo son que es posible tener distintos tipos de sistemas operativos (p.e. Windows, Unix) ejecutndose en un solo exoncleo, y que los desarrolladores pueden elegir prescindir de o incrementar funcionalidades por motivos de rendimiento. Actualmente, los diseos exoncleo 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 y el Instituto Sueco de Informtica. El MIT tambin ha diseado algunos sistemas basados en exoncleos. Los exoncleos se manejan en diferente estructura dado que tambin cumplen funciones distintas.

1.6 Ncleo. El Ncleo (o kernel) es una coleccin de mdulos de software que se ejecutan en forma privilegiada lo que significa que tienen acceso pleno a los recursos del sistema. El ncleo normalmente representa slo una pequea parte de lo que por lo general se piensa que es todo el sistema operativo, pero es tal vez el cdigo que ms se utiliza. Por esta razn, el ncleo reside por lo regular en la memoria principal, mientras que otras partes del sistema operativo son cargadas en la memoria principal slo cuando se necesitan. Los ncleos se disean para realizar el mnimo posible de procesamiento en cada interrupcin y dejar que el resto lo realice el proceso

apropiado del sistema, que puede operar mientras el ncleo se habilita para atender otras interrupciones. El ncleo de un sistema operativo normalmente contiene el cdigo necesario para realizar las siguientes funciones: Manejo de interrupciones. Creacin y destruccin de procesos. Cambio de estado de los procesos. Despacho. Suspensin y reanudacin de procesos. Sincronizacin de procesos. Comunicacin entre procesos. Manipulacin de los bloques de control de procesos. Apoyo para las actividades de entrada/salida. Apoyo para asignacin y liberacin de memoria. Apoyo para el sistema de archivos. Apoyo para el mecanismo de llamada y retorno de un procedimiento. Apoyo para ciertas funciones de contabilidad del sistema. El Kernel consiste en la parte principal del cdigo del sistema operativo, el cual se encargan de controlar y administrar los servicios y peticiones de recursos y de hardware con respecto a uno o varios procesos, este se divide en 5 capas: Nivel 1. Procesador. (Ncleo) Se encarga de activar los tiempos para cada uno de los procesos, creando interrupciones de hardware cuando no son respetadas. Se

introduce la nocin de proceso como un programa en ejecucin. Entre los requisitos fundamentales de un sistema operativo que ofrezca soporte para mltiples procesos se incluye la capacidad de suspender y reanudar los procesos. Esto exige salvaguardar los registros del hardware, de modo que la ejecucin pueda cambiar de un proceso a otro. Adems, si los procesos necesitan cooperar, hace falta algn mtodo de sincronizacin. Una de las tcnicas ms simples, pero un concepto importante en el diseo de sistemas operativos, es el semforo. Objetos proceso y semforo Operaciones tpicas crear, destruir, suspender, reanudar, sealizar y esperar. El ncleo (Kernel) de un sistema operativo es un conjunto de rutinas cuya misin es la de gestionar el procesador, la memoria, la entrada/salida y el resto de procesos disponibles en la instalacin. Toda esta gestin la realiza para atender al funcionamiento y peticiones de los trabajos que se ejecutan en el sistema. Procesos Uno de los conceptos ms 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. Un proceso es una actividad que se apoya en datos, recursos, un estado en cada momento y un programa. Semforos. Dos o ms procesos pueden cooperar por medio de simples seales, de forma que se pueda obligar a detenerse a un proceso en una posicin de terminada hasta que reciba una seal especifica. Para la sealizacin se usan variables especiales llamadas semforos. Para transmitir una seal por el semforo s, los procesos ejecutan la primitiva signal (s). Para recibir una seal del semforo s, los procesos ejecutan la primitiva wait (s); si la seal correspondiente aun no se ha transmitido el proceso es suspendido hasta que tenga lugar la transmisin.

Nivel 2. Entrada/Salida. Proporciona las facilidades para poder utilizar los dispositivos de E/S requeridos por procesos. Tiene que ver con los dispositivos de almacenamiento secundario. En este nivel se sitan las funciones de ubicacin de las cabezas de lectura y escritura, y se producen las transferencias reales de bloques. Este nivel se apoya en el nivel anterior para planificar las operaciones y notificar al proceso que hizo la solicitud que la operacin ha culminado.

Objetos bloques de datos.

Dispositivos de Entrada y Salida.

Operaciones tpicas leer, escribir, asignar y liberar.

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 las 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. 1. 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. Los dispositivos ms comunes orientados a bloques son los discos duros, la memoria, discos compactos y, posiblemente, unidades de cinta. 2. 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. No son dispositivos direccionables. Ejemplos de estos dispositivos son el teclado, la pantalla o display y las impresoras. Principios del Software de Entrada y Salida. Los principios de software en la entrada - salida se resumen en cuatro puntos: el software debe ofrecer manejadores de interrupciones,

manejadores de dispositivos, software que sea independiente de los dispositivos y software para usuarios. Manejadores de Interrupciones. El primer objetivo referente a los manejadores de interrupciones consiste en que el programador o el usuario no debe darse cuenta de los manejos de bajo nivel para los casos en que el dispositivo est ocupado y se debe suspender el proceso o sincronizar algunas tareas. Desde el punto de vista del proceso o usuario, el sistema simplemente se tard ms o menos en responder a su peticin. Manejadores de Dispositivos. El sistema debe proveer los manejadores de dispositivos necesarios para los perifricos, as como ocultar las peculiaridades del manejo interno de cada uno de ellos, tales como el formato de la informacin, los medios mecnicos, los niveles de voltaje y otros. Por ejemplo, si el sistema tiene varios tipos diferentes de discos duros, para el usuario o programador las diferencias tcnicas entre ellos no le deben importar, y los manejadores le deben ofrecer el mismo conjunto de rutinas para leer y escribir datos. Software que sea independiente de los dispositivos. Este es un nivel superior de independencia que el ofrecido por los manejadores de dispositivos. Aqu el sistema operativo debe ser capaz, en lo ms posible, de ofrecer un conjunto de utileras para accesar perifricos o programarlos de una manera consistente. Por ejemplo, que para todos los dispositivos orientados a bloques se tenga una llamada para decidir si se desea usar buffer o no, o para posicionarse en ellos. Software para Usuarios. La mayora de las rutinas de entrada - salida trabajan en modo privilegiado, o son llamadas al sistema que se ligan a los programas del usuario formando parte de sus aplicaciones y que no le dejan ninguna flexibilidad al usuario en cuanto a la apariencia de los datos. Existen otras libreras en donde el usuario si tiene poder de decisin (por ejemplo la llamada a printf en el lenguaje C). Otra facilidad ofrecida son las reas de trabajos encolados (spooling reas), tales como las de impresin y correo electrnico. Nivel 3. Gestin de Memoria. Proporciona las facilidades de bajo nivel para la gestin de memoria secundaria necesaria para la ejecucin de procesos. Crea un espacio de direcciones lgicas para los procesos. Este nivel organiza el espacio de direcciones virtuales en bloques que se pueden mover entre la memoria principal y la memoria secundaria. Son tres los esquemas de uso ms habitual: los que utilizan pginas de longitud fija, los que usan segmentos de longitud variable y los que utilizan los dos. Objetos segmentos y paginas Operaciones tpicas leer, escribir y acceder.

La memoria es uno de los principales recursos de la computadora, la cual debe de administrarse con mucho cuidado. Aunque actualmente la mayora de los sistemas de cmputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones actuales tienen tambin altos requerimientos de memoria, lo que sigue generando escasez de memoria en los sistemas multitarea y/o multiusuario. La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste en llevar un registro de las partes de memoria que se estn utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando stos la necesiten y liberndola cuando terminen, as como administrar el intercambio entre la memoria principal y el disco en los casos en los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ella. Nivel 4. Sistema de Archivos. Proporciona la facilidad para el almacenamiento a largo plazo y manipulacin de archivos con nombre, va asignando espacio y acceso de datos en memoria. Da soporte al almacenamiento a largo plazo de los archivos con nombre. En este nivel, los datos del almacenamiento secundario se contemplan en trminos de entidades abstractas de longitud variable, en contraste con el enfoque orientado al hardware del nivel de E/S bsicas, en trminos de pistas, sectores y bloques de tamao fijo. Objetos archivos dispositivos Operaciones tpicas crear, destruir, abrir, cerrar, leer y escribir Un archivo es un conjunto de datos al cual se asigna un nombre. Normalmente reside un dispositivo de almacenamiento secundario como un disco o una cinta. Se puede manipular como una unidad con operaciones tales como: Abrir: Preparar un archivo para hacer referencia a l. Cerrar: Evitar cualquier otra referencia al archivo en tanto no se le abra otra vez. Crear: Construir un nuevo archivo. Destruir: Eliminar un archivo. Copiar: Crear otra versin del archivo con un nombre nuevo. Renombrar: Cambiar el nombre de un archivo. Listar: Imprimir o exhibir el contenido de un archivo.

Los elementos de informacin individuales dentro del archivo se pueden manipular con operaciones tales como: Leer: Introducir un elemento de informacin de un archivo a un proceso. Escribir: Transferir un elemento de informacin de un proceso a un archivo. Modificar: Alterar un elemento de informacin ya existente en un archivo. Insertar: Aadir un nuevo elemento de informacin a un archivo. Eliminar: Borrar un elemento de informacin de un archivo.

Los archivos pueden caracterizarse por su:

Volatibilidad: Se refiere a la frecuencia con que se aade informacin a un archivo y se borra de l. Actividad: Se refiere al porcentaje de los registros de un archivo al cual se tuvo acceso durante un periodo dado.

Tamao: Se refiere a la cantidad de informacin almacenada en el archivo.

Nivel 5. Informacin o Aplicacin o Intrprete de Lenguajes. Facilita la comunicacin con los lenguajes y el sistema operativo para aceptar las ordenes en cada una de las aplicaciones. Cuando se solicitan ejecutando un programa el software de este nivel crea el ambiente de trabajo e invoca a los procesos correspondientes. Ofrece al usuario una interfaz con el sistema operativo. Se denomina shell y separa al usuario de los detalles, le presenta el sistema operativo como un simple conjunto de servicios. El shell acepta las rdenes del usuario o las sentencias de control de trabajos, las interpreta, crea y controla los procesos segn sea necesario. El intrprete de comandos representa la interfaz entre el usuario y el sistema operativo. Algunos sistemas operativos incluyen el intrprete en el kernel. Otros como el DOS o UNIX, poseen un programa especial para cumplir esta funcin que se ejecuta cuando se inicia el sistema. Objetos datos del entorno Operaciones tpicas sentencias del lenguaje de ordenes Datos del entorno. Son aquel conjunto de informacin que tiene comunicacin directa con el usuario, y viceversa. Es lo nico que el usuario puede ver del sistema operativo en funcionamiento. El formato en el que la informacin se presente al usuario depender de la interfaz del sistema operativo, pero para todos los casos sern datos con los que el usuario pueda trabajar. El funcionamiento del intrprete de comandos est relacionado con los dems niveles del sistema operativo, ya que es en este en donde se ve el resultado del trabajo en conjunto del sistema. 1.6.1 Interrupciones (FLIH). La interrupcin es el mecanismo mediante el cual otros mdulos pueden interrumpir una secuencia normal de procesamiento. Programa: por ejemplo divisin por cero. Temporizador: cuando se cumple un tiempo especfico. E/S: cuando hay algo que comunicar. Hardware: cuando ocurre una falla. La gestin de interrupciones la realiza el manipulador (controlador) de interrupciones (FLIH, First Level Interrupt Handler). El manipulador de interrupciones es la parte del sistema operativo responsable de proporcionar la respuesta adecuada a las seales procedentes tanto del exterior como del interior del sistema (interrupciones externas e internas). 1.6.2 Despachador (Scheduler). Se encarga de asignar los procesadores a los diferentes procesos, por lo tanto debe actuar cuando se debe comprobar si es necesario cambiar el proceso que est activo. Esto involucra: Cambio de contexto. Cambio a modo usuario.

Salto a la direccin de memoria que corresponda al programa de usuario para continuar su ejecucin.

Criterios de Despachador Utilizacin de CPU: mantener la CPU ocupada la mayor cantidad del tiempo posible. Productividad (Throughput): # de procesos por unidad de tiempo. Tiempo de servicio (Turnaround time): tiempo necesario para la ejecucin de un proceso particular. Tiempo de espera (Waiting time): tiempo total que el proceso se encuentra en la fila ready. Tiempo de respuesta (Response time): tiempo que transcurre desde el requerimiento hasta que se produce la primera respuesta (en ambientes de tiempo compartido).

Criterios de Optimizacin 1.6.3 Primitivas de comunicacin (IPC). Es una funcin bsica de los Sistemas Operativos. Los procesos pueden comunicarse entre s a travs de compartir espacios de memoria, ya sean variables compartidas o buffers, o a travs de las herramientas provistas por las rutinas de IPC. La IPC provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre s. Normalmente a travs de un sistema de bajo nivel de paso de mensajes que ofrece la red subyacente. La comunicacin se establece siguiendo una serie de reglas (protocolos de comunicacin). Los protocolos desarrolados para internet son los mayormente usados: Protocolo de internet (capa de red). Protocolo de control de transmisin (capa de transporte). Protocolo de transferencia de archivos. Protocolo de transferencia de hipertexto (capa de aplicacin). Mxima utilizacin de CPU. Mxima productividad. Mnimo tiempo de servicio. Mnimo tiempo de espera. Mnimo tiempo

También podría gustarte