Your SlideShare is downloading. ×
Sistemas operativos
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Sistemas operativos

2,143
views

Published on

Sistemas operativos

Sistemas operativos

Published in: Education

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,143
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
62
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. s 2010 Sistemas Operativos Interfaz entre Hardware y Software En nuestros días, las computadoras son una parte esencial de nuestras vidas, son tan necesarias para la mayoría de los casos en la actualidad, estudiaremos en este documento la manera en que interactúa el Hardware con el software que conocemos, como son software de Ofimática, software de diseño, edición, mails, entre otros. Juan Manuel Pavon Ortiz Jamil Enríquez Deceano 23/10/2010
  • 2. Instituto Tecnológico Superior De Acayucan Ingeniería en Informática Fundamentos de investigación Sistemas Operativos Ing. Gerardo Paxtian Méndez I Semestre Juan Manuel Pavon Ortiz Jamil Enríquez Deceano Octubre 2010
  • 3. IntroducciónUn Sistema operativo (SO) es un software que actúade interfaz entre los dispositivos de hardware y losprogramas de usuario o el usuario mismo para utilizarun computador. Es responsable de gestionar,coordinar las actividades y llevar a cabo elintercambio de los recursos y actúa comointermediario para las aplicaciones que se ejecutan.Nótese que es un error común muy extendidodenominar al conjunto completo de herramientassistema operativo, pues este, es sólo el núcleo y nonecesita de entorno operador para estar operativo yfuncional. Uno de los más prominentes ejemplos deesta diferencia, es el SO Linux, el cual junto a lasherramientas GNU, forman las llamadasdistribuciones Linux.Este error de precisión, se debe a la modernización de la informática llevada a caboa finales de los 80, cuando la filosofía de estructura básica de funcionamiento de losgrandes computadores se rediseñó a fin de llevarla a los hogares y facilitar su uso,cambiando el concepto de computador multiusuario, (muchos usuarios al mismotiempo) por un sistema monousuario (únicamente un usuario al mismo tiempo) mássencillo de gestionar. AmigaOS, beOS o MacOS como los pioneros de dichamodernización, cuando los Amiga, fueron bautizados con el sobrenombre de VideoToasters por su capacidad para la Edición de vídeo en entorno multitarea roundrobin, con gestión de miles de colores e interfaces intuitivos para diseño en 3D conprogramas como Imagine o Scala multimedia, entre muchos otros.Uno de los propósitos de un sistema operativo como intermediario consiste engestionar los recursos de localización y protección de acceso del hardware, hechoque alivia a los programadores de aplicaciones de tener que tratar con estos detalles.Se encuentran en la mayoría de los aparatos electrónicos que utilizanmicroprocesadores para funcionar. (Teléfonos móviles, reproductores de DVD,computadoras, radios, etc.)Parte de la infraestructura de la World Wide Web está compuesta por el SistemaOperativo de Internet, creado por Cisco Systems para gestionar equipos deinterconexión como los conmutadores y los enrutadores.
  • 4. Definición y Concepto.Existen diversas definiciones de lo que es un Sistema Operativo, pero no hay unadefinición exacta, es decir una que sea estándar; a continuación se presentanalgunas:Se pueden imaginar un Sistema Operativo como los programas, instalados en elsoftware o firmware+, que hacen utilizable el hardware. El hardware proporciona la“capacidad bruta de cómputo”; los sistemas operativos ponen dicha capacidad decómputo al alcance de los usuarios y administran cuidadosamente el hardware paralograr un buen rendimiento.Los Sistemas Operativos son ante todo administradores de recursos; el principalrecurso que administran es el hardware del computador; además de losprocesadores, los medios de almacenamiento, los dispositivos de entrada / salida,los dispositivos de comunicación y los datos.¿Que es Sistema Operativo?Es una colección de mecanismos de software destinados a servir de interface entreun sistema informático y sus usuarios, el cual ofrece herramientas y facilidades parasimplificar las tareas de diseño codificación depuración, actualización, etc.¿Que hace?Administrar todos los recursos hardware y software que constituyen el sistemainformático a explotar.¿Como nació?Nació con la necesidad de llevar el control de quien utiliza los recursos softwareusuario(s).
  • 5. Definición Global.Un Sistema Operativo es un programa que actúa como intermediario entre el usuarioy el hardware del computador y su propósito es proporcionar el entorno en el cual elusuario pueda ejecutar programas. Entonces, el objetivo principal de un SistemaOperativo es, lograr que el sistema de computación se use de manera cómoda, y elobjetivo secundario es que el hardware del computador se emplee de maneraeficiente.Un Sistema Operativo es un conjunto de programas que controla la ejecución deprogramas de aplicación y actúa como una interfaz entre el usuario y el hardware deuna computadora, esto es, un Sistema Operativo explota y administra los recursos dehardware de la computadora con el objeto de proporcionar un conjunto de servicios alos usuarios del sistema.En resumen, se podría decir que los Sistemas Operativos son un conjunto deprogramas que crean la interfaz del hardware con el usuario, y que tiene dosfunciones primordiales, que son: Gestionar el hardware. Se refiere al hecho de administrar de una forma más eficiente los recursos de la máquina. Facilitar el trabajo al usuario. Permite una comunicación con los dispositivos de la máquina.El Sistema Operativo se encuentra almacenado en la memoria secundaria. Primerose carga y ejecuta un pedazo de código que se encuentra en el procesador, el cualcarga el BIOS, y este a su vez carga el Sistema Operativo que carga todos losprogramas de aplicación y software variado.Los sistemas operativos pueden emplear memoria virtual para ejecutar procesos queexigen más memoria principal de la realmente disponible. Con esta técnica seemplea espacio en el disco duro para simular la memoria adicional necesaria. Sinembargo, el acceso al disco duro requiere más tiempo que el acceso a la memoriaprincipal, por lo que el funcionamiento del ordenador resulta más lento.
  • 6. Funciones y Características.Un sistema operativo (cuyo acrónimo es SO) es un conjunto de programasdestinados a permitir la comunicación del usuario con un computador y gestionar susrecursos de una forma eficaz. Comienza a trabajar cuando se enciende elcomputador, y gestiona el hardware de la máquina desde los niveles más básicos.Las funciones básicas de un sistema operativo son: Como soporte para la ejecución de software de aplicación. Como elemento de diagnóstico de hardware. Como elemento de una red de computadoras. Como elemento que optimiza el aprovechamiento de los recursos lógicos y físicos de un sistema de cómputo.Evolución Histórica.Un sistema operativo es un software de sistema, es decir, un conjunto de programasde computadora destinado a permitir una administración eficaz de sus recursos.Comienza a trabajar cuando se enciende el computador, y gestiona el hardware de lamáquina desde los niveles más básicos, permitiendo también la interacción con elusuario.Un sistema operativo se puede encontrar normalmente en la mayoría de los aparatoselectrónicos que utilicen microprocesadores para funcionar, ya que gracias a éstospodemos entender la máquina y que ésta cumpla con sus funciones (teléfonosmóviles, reproductores de DVD, autoradios, computadoras, etc).Actualmente el concepto de computadora esta intrínsecamente relacionado al desistema operativo, aunque éste existe en otros aparatos electrónicos y no sólo en lascomputadoras.Años 40A finales de los años 40, con lo que podríamos llamar la aparición de la primerageneración de computadoras, se accedía directamente a la consola de la
  • 7. computadora desde la cual se actuaba sobre una serie de micro interruptores quepermitían introducir directamente el programa en la memoria de la computadora (enrealidad al existir tan pocas computadoras todos podrían considerarse prototipos ycada constructor lo hacía sin seguir ningún criterio predeterminado). Por aquelentonces no existían los sistemas operativos, y los programadores debían interactuarcon el hardware del computador sin ayuda externa. Esto hacía que el tiempo depreparación para realizar una tarea fuera considerable. Además para poder utilizar lacomputadora debía hacerse por turnos. Para ello, en muchas instalaciones, serellenaba un formulario de reserva en el que se indicaba el tiempo que elprogramador necesitaba para realizar su trabajo. En aquel entonces lascomputadoras eran máquinas muy costosas lo que hacía que estuvieran muysolicitadas y que sólo pudieran utilizarse en periodos breves de tiempo. Todo sehacia en lenguaje de máquina.Años 50A principios de los años 50 con el objeto de facilitar la interacción entre persona ycomputador, los sistemas operativos hacen una aparición discreta y bastante simple,con conceptos tales como el monitor residente, el proceso por lotes y elalmacenamiento temporal.Monitor residente Su funcionamiento era bastante simple, se limitaba a cargar losprogramas a memoria, leyéndolos de una cinta o de tarjetas perforadas, yejecutarlos. El problema era encontrar una forma de optimizar el tiempo entre laretirada de un trabajo y el montaje del siguiente.Procesamiento por lotes Como solución para optimizar , en una misma cinta oconjunto de tarjetas, de forma que se ejecutaran uno a continuación de otro sinperder apenas tiempo en la transición.Almacenamiento temporal Su objetivo era disminuir el tiempo de carga de losprogramas, haciendo simultánea la carga del programa o la salida de datos con laejecución de la siguiente tarea. Para ello se utilizaban dos técnicas, el buffering y elspooling.
  • 8. Años 60En los años 60 se produjeron cambios notorios en varios campos de la informática,con la aparición del circuito integrado la mayoría orientados a seguir incrementandoel potencial de los computadores. Para ello se utilizaban técnicas de lo más diversas:MultiprogramaciónEn un sistema multiprogramado la memoria principal alberga a más de un programade usuario. La CPU ejecuta instrucciones de un programa, cuando el que seencuentra en ejecución realiza una operación de E/S; en lugar de esperar a quetermine la operación de E/S, se pasa a ejecutar otro programa. Si éste realiza, a suvez, otra operación de E/S, se mandan las órdenes oportunas al controlador, y pasaa ejecutarse otro. De esta forma es posible, teniendo almacenado un conjuntoadecuado de tareas en cada momento, utilizar de manera óptima los recursosdisponibles.Tiempo compartidoTiempo compartido En este punto tenemos un sistema que hace buen uso de laelectrónica disponible, pero adolece de falta de interactividad; para conseguirla debeconvertirse en un sistema multiusuario, en el cual existen varios usuarios con unterminal en línea, utilizando el modo de operación de tiempo compartido. En estossistemas los programas de los distintos usuarios residen en memoria. Al realizar unaoperación de E/S los programas ceden la CPU a otro programa, al igual que en lamultiprogramación. Pero, a diferencia de ésta, cuando un programa lleva ciertotiempo ejecutándose el sistema operativo lo detiene para que se ejecute otroaplicación. Con esto se consigue repartir la CPU por igual entre los programas de losdistintos usuarios, y los programas de los usuarios no se sienten demasiado lentospor el hecho de que los recursos sean compartidos y aparentemente se ejecutan demanera concurrente.
  • 9. Tiempo realEstos sistemas se usan en entornos donde se deben aceptar y procesar en tiemposmuy breves un gran número de sucesos, en su mayoría externos al ordenador. Si elsistema no respeta las restricciones de tiempo en las que las operaciones debenentregar su resultado se dice que ha fallado. El tiempo de respuesta a su vez debeservir para resolver el problema o hecho planteado. El procesamiento de archivos sehace de una forma continua, pues se procesa el archivo antes de que entre elsiguiente, sus primeros usos fueron y siguen siendo en telecomunicaciones.MultiprocesadorPermite trabajar con máquinas que poseen más de un microprocesador. Sedenomina multiprocesador a un ordenador que cuenta con dos o másmicroprocesadores (CPUs). Gracias a esto, el multiprocesador puede ejecutarsimultáneamente varios hilos pertenecientes a un mismo proceso o bien a procesosdiferentes.Los ordenadores multiprocesador presentan problemas de diseño que no seencuentran en ordenadores monoprocesador. Estos problemas derivan del hecho deque dos programas pueden ejecutarse simultáneamente y, potencialmente, puedeninterferirse entre sí. Concretamente, en lo que se refiere a las lecturas y escrituras enmemoria.Existen dos arquitecturas que resuelven estos problemas:La arquitectura NUMA, donde cada procesador tiene acceso y control exclusivo auna 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é. Cadamicroprocesador cuenta con su propia memoria cache local. De manera que cuandoun microprocesador escribe en una dirección de memoria, lo hace únicamente sobresu copia local en caché. Si otro microprocesador tiene almacenada la mismadirección de memoria en su caché, resultará que trabaja con una copia obsoleta deldato almacenado.
  • 10. Para que un multiprocesador opere correctamente necesita un sistema operativoespecialmente diseñado para ello. La mayoría de los sistemas operativos actualesposeen esta capacidad.Sistemas operativos desarrollados Además del Atlas Supervisor y el OS/360, lossesenta marcaron el inicio de UNIX, a mediados de los 60 aparece Multics, sistemaoperativo multiusuario - multitarea desarrollado por los laboratorios Bell de AT&T yprogramado en PL/1 uno de los pocos SO desarrollados en un lenguaje de alto nivelen aquel tiempo, luego del fracaso del proyecto, UNIX comienza a desarrollarse apartir de este a finales de la década.Años 70Debido al avance de la electrónica, pudo empezar a crearse circuitos con miles detransistores en un centímetro cuadrado de silicio, lo que llevaría, pocos añosdespués, a producir los primeros sistemas integrados. Ésta década se podría definircomo la de los sistemas de propósito general y en ella se desarrollan tecnologías quese siguen utilizando en la actualidad. Es en los años 70 cuando se produce el boomde los miniordenadores y la informática se acerca al nivel de usuario. En lo relativo alenguajes de programación, es de señalar la aparición de Pascal y C, el último de loscuales se creó específicamente para reescribir por completo el código del sistemaoperativo Unix, convirtiéndolo en uno de los pocos SO escritos en un lenguaje de altonivel. En el campo de la programación lógica se dio a luz la primera implementaciónde Prologramas, y en la revolucionaria orientación a objetos, Smalltalk.Inconvenientes de los sistemas existentes Se trataba de sistemas grandes ycostosos, pues antes no se había construido nada similar y muchos de los proyectosdesarrollados terminaron con costos muy por encima del presupuesto y muchodespués de lo que se marcaba como fecha de finalización. Además, aunqueformaban una capa entre el hardware y el usuario, éste debía conocer un complejolenguaje de control para realizar sus trabajos. Otro de los inconvenientes es el granconsumo de recursos que ocasionaban, debido a los grandes espacios de memoriaprincipal y secundaria ocupados, así como el tiempo de procesador consumido. Espor esto que se intentó hacer hincapié en mejorar las técnicas ya existentes de
  • 11. multiprogramación y tiempo compartido.Características de los nuevos sistemas Para solventar los problemas antescomentados, se realizó un costosísimo trabajo para interponer una amplia capa desoftware entre el usuario y la máquina, de forma que el primero no tuviese queconocer ningún detalle de la circuitería.Sistemas operativos desarrolladosMULTICS (Multiplexed Information and Computing Service): Originalmente era unproyecto cooperativo liderado por Fernando Corbató del MIT, con General Electric ylos laboratorios Bell, que comenzó en los 60, pero los laboratorios Bell abandonaronen 1969 para comenzar a crear el sistema UNIX. Se desarrolló inicialmente para elmainframe GE-645, un sistema de 36 bits; después fue soportado por la serie demáquinas Honeywell 6180. Fue uno de los primeros sistemas operativos de tiempocompartido, que implementó un solo nivel de almacenamiento para el acceso a losdatos, desechando la clara distinción entre los ficheros y los procesos en memoria, yuno de los primeros sistemas multiprocesador.MVS (Multiple Virtual Storage): Fue el sistema operativo más usado en los modelosde mainframes -ordenadores grandes, potentes y caros usados principalmente porgrandes compañías para el procesamiento de grandes cantidades de datos-System/370 y System/390 de IBM, desarrollado también por IBM y lanzado almercado por primera vez en 1974. Como características destacables, permitía laejecución de múltiples tareas, además de que introdujo el concepto de memoriavirtual y finalmente añadió la capacidad de que cada programa tuviera su propioespacio de direccionamiento de memoria, de ahí su nombre.CP/M (Control Program/Monitor): Desarrollado por Gary Kildall para elmicroprocesador 8080/85 de Intel y el Zilog Z80, salió al mercado en 1976,distribuyéndose en disquetes de ocho pulgadas. Fue el SO más usado en lascomputadoras personales de esta década. Su éxito se debió a que era portátil,permitiendo que diferentes programas interactuasen con el hardware de una maneraestandarizada.
  • 12. Estaba compuesto de dos subsistemas:CCP (Comand Control Processor): Intérprete de comandos que permitía introducir losmandatos con sus parámetros separados por espacios. Además, los traducía ainstrucciones de alto nivel destinadas a BDOS.BDOS (Basic Disk Operating System): Traductor de las instrucciones en llamadas ala BIOS. El hecho de que, años después, IBM eligiera para sus PCs a MS-DOSsupuso su mayor fracaso, por lo que acabó desapareciendo.Años 80Con la creación de los circuitos LSI -integración a gran escala-, chips que conteníanmiles de transistores en un centímetro cuadrado de silicio, empezó el auge de losordenadores personales. En éstos se dejó un poco de lado el rendimiento y se buscómás que el sistema operativo fuera amigable, surgiendo menús, e interfaces gráficas.Esto reducía la rapidez de las aplicaciones, pero se volvían más prácticos y simplespara los usuarios. En esta época, siguieron utilizándose lenguajes ya existentes,como Smalltalk o C, y nacieron otros nuevos, de los cuales se podrían destacar: C++y Eiffel dentro del paradigma de la orientación a objetos, y Haskell y Miranda en elcampo de la programación declarativa. Un avance importante que se estableció amediados de la década de 1980 fue el desarrollo de redes de computadoraspersonales que corrían sistemas operativos en red y sistemas operativos distribuidos.En esta escena, dos sistemas operativos eran los mayoritarios: MS-DOS, escrito porMicrosoft para IBM PC y otras computadoras que utilizaban la CPU Intel 8088 y sussucesores, y UNIX, que dominaba en los ordenadores personales que hacían uso delMotorola 68000.Apple MacintoshEl lanzamiento oficial se produjo en enero de 1984, al precio de 2495 dólares.Muchos usuarios, al ver que estaba completamente diseñado para funcionar a travésde una GUI (Graphic User Interface), acostumbrados a la línea de comandos, lotacharon de juguete. A pesar de todo, el Mac se situó a la cabeza en el mundo de laedición a nivel gráfico.
  • 13. MS-DOSEn 1981 Microsoft compró un sistema operativo llamado QDOS que, tras realizarunas pocas modificaciones, se convirtió en la primera versión de MS-DOS (MicroSoft Disk Operating System). A partir de aquí se sucedieron una serie de cambioshasta llegar a la versión 7.1, a partir de la cual MS-DOS dejó de existir como tal y seconvirtió en una parte integrada del sistema operativo Windows.Años 90GNU/LinuxEn 1991 aparece la primer versión del núcleo de Linux. Creado por Linus Torvalds yun sinfín de colaboradores a través de Internet. Este sistema se basa en Unix, unsistema que en principio trabajaba en modo comandos, estilo MS-DOS. Hoy en díadispone de Ventanas, gracias a un servidor gráfico y a gestores de ventanas comoKDE, GNOME entre muchos. Recientemente GNU/Linux dispone de un aplicativoque convierte las ventanas en un entorno 3D como por ejemplo Beryl. Lo que permiteutilizar linux de una forma visual atractiva.Microsoft WindowsEn 1985 se crea este sistema operativo pero hasta la salida de windows 95 no se lepuede considerar un sistema operativo, solo era una interfaz gráfica del MS-DOS.Hoy en dia es el sistema operativo más difundido en el ámbito domestico aunquetambién hay versiones para servidores y Microsoft ha diseñado algunas versionespara superordenadores sin mucho exito.
  • 14. Clasificación.Sistema Operativo Multitareas.Es el modo de funcionamiento disponible en algunos sistemas operativos, medianteel cual una computadora procesa varias tareas al mismo tiempo. Existen varios tiposde multitareas. La conmutación de contextos (context Switching) es un tipo muy simple de multitarea en el que dos o más aplicaciones se cargan al mismo tiempo, pero en el que solo se esta procesando la aplicación 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 aplicación. 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 aplicación esta esperando información del usuario), y siempre que esta aplicación lo permita. En los sistemas multitarea de tiempo compartido, como OS/2, cada tarea recibe la atención del microprocesador durante una fracción 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 más lento que la velocidad de procesamiento del ordenador, las operaciones de multitarea en tiempo compartido parecen ser simultáneas.Sistema Operativo Monotareas.Los sistemas operativos monotareas son más primitivos y es todo lo contrario al vistoanteriormente, es decir, solo pueden manejar un proceso en cada momento o que
  • 15. solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadoraesta imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevasinstrucciones hasta que se termine la impresión.Sistema Operativo Monousuario.Los sistemas monousuarios son aquellos que nada más puede atender a un solousuario, gracias a las limitaciones creadas por el hardware, los programas o el tipode aplicación que se este ejecutando.Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada,salida y control dependen de la tarea que se esta utilizando, esto quiere decir, quelas instrucciones que se dan, son procesadas de inmediato; ya que existe un solousuario. Y están orientados principalmente por los microcomputadores.Sistema Operativo Multiusuario.Es todo lo contrario a monousuario; y en esta categoría se encuentran todos lossistemas que cumplen simultáneamente las necesidades de dos o más usuarios, quecomparten mismos recursos. Este tipo de sistemas se emplean especialmente enredes. En otras palabras consiste en el fraccionamiento del tiempo (timesharing).Secuencia por Lotes.La secuencia por lotes o procesamiento por lotes en microcomputadoras, es laejecución de una lista de comandos del sistema operativo uno tras otro sinintervención del usuario. En los ordenadores más grandes el proceso de recogida deprogramas y de conjuntos de datos de los usuarios, la ejecución de uno o unospocos cada vez y la entrega de los recursos a los usuarios. Procesamiento por lotestambién puede referirse al proceso de almacenar transacciones durante un ciertolapso antes de su envío a un archivo maestro, por lo general una operación separadaque se efectúa durante la noche.Los sistemas operativos por lotes (batch), en los que los programas eran tratados porgrupos (lote) en ves de individualmente. La función de estos sistemas operativosconsistía en cargar en memoria un programa de la cinta y ejecutarlo. Al final este, se
  • 16. realizaba el salto a una dirección de memoria desde donde reasumía el control delsistema operativo que cargaba el siguiente programa y lo ejecutaba. De esta manerael tiempo entre un trabajo y el otro disminuía considerablemente.Tiempo Real.Un sistema operativo en tiempo real procesa las instrucciones recibidas al instante, yuna vez que han sido procesadas muestra el resultado. Este tipo tiene relación conlos sistemas operativos monousuarios, ya que existe un solo operador y no necesitacompartir el procesador entre varias solicitudes.Su característica principal es dar respuestas rápidas; por ejemplo en un caso depeligro se necesitarían respuestas inmediatas para evitar una catástrofe.Tiempo Compartido.El tiempo compartido en ordenadores o computadoras consiste en el uso de unsistema por más de una persona al mismo tiempo. El tiempo compartido ejecutaprogramas separados de forma concurrente, intercambiando porciones de tiempoasignadas a cada programa (usuario). En este aspecto, es similar a la capacidad demultitareas que es común en la mayoría de los microordenadores o lasmicrocomputadoras. Sin embargo el tiempo compartido se asocia generalmente conel acceso de varios usuarios a computadoras más grandes y a organizaciones deservicios, mientras que la multitarea relacionada con las microcomputadoras implicala realización de múltiples tareas por un solo usuario.
  • 17. Estructura (Niveles o Estratos deDiseño)En informática, el núcleo (también conocido en español con el anglicismo kernel, deraíces germánicas como kern) es la parte fundamental de un sistema operativo. Es elsoftware responsable de facilitar a los distintos programas acceso seguro alhardware de la computadora o en forma más básica, es el encargado de gestionarrecursos, a través de servicios de llamada al sistema. Como hay muchos programasy el acceso al hardware es limitado, el núcleo también se encarga de decidir quéprograma podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, loque se conoce como multiplexado. Acceder al hardware directamente puede serrealmente complejo, por lo que los núcleos suelen implementar una serie deabstracciones del hardware. Esto permite esconder la complejidad, y proporcionauna interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso para elprogramador.Funciones generalmente ejercidas por un núcleo:Los núcleos tienen como funciones básicas garantizar la carga y la ejecución de losprocesos, las entradas/salidas y proponer un interfaz entre el espacio núcleo y losprogramas del espacio del usuario.Aparte de las funcionalidades básicas, el conjunto de las funciones de los puntossiguientes (incluidos los pilotos materiales, las funciones de redes y sistemas deficheros o los servicios) necesariamente no son proporcionados por un núcleo desistema de explotación. Pueden establecerse estas funciones del sistema deexplotación tanto en el espacio usuario como en el propio núcleo. Su implantación enel núcleo se hace en el único objetivo de mejorar los resultados. En efecto, según laconcepción del núcleo, la misma función llamada desde el espacio usuario o elespacio núcleo tiene un coste temporal obviamente diferente. Si esta llamada defunción es frecuente, puede resultar útil integrar estas funciones al núcleo paramejorar los resultados.
  • 18. Hay que señalar que estas técnicas son utilizadas para atenuar defectos de losnúcleos como los elevados estados. En la medida de lo posible, es preferible escribirun programa informático fuera del núcleo, en el espacio usuario. En efecto, elespacio del núcleo, supone la ausencia de mecanismos como la protección de lamemoria. Es pues más complejo escribir un programa informático que funciona en elespacio del núcleo, que en el espacio usuario; los errores y faltas de seguridadpueden desestabilizar el sistema.Tipos de núcleo :No necesariamente se necesita un núcleo para usar una computadora. Losprogramas pueden cargarse y ejecutarse directamente en una computadora «vacía»,siempre que sus autores quieran desarrollarlos sin usar ninguna abstracción delhardware ni ninguna ayuda del sistema operativo. Ésta era la forma normal de usarmuchas de las primeras computadoras: para usar distintos programas se tenía quereiniciar y reconfigurar la computadora cada vez. Con el tiempo, se empezó a dejaren memoria (aún entre distintas ejecuciones) pequeños programas auxiliares, comoel cargador y el depurador, o se cargaban desde memoria de sólo lectura. A medidaque se fueron desarrollando, se convirtieron en los fundamentos de lo que llegarían aser los primeros núcleos de sistema operativo.Hay cuatro grandes tipos de núcleos:Los núcleos monolíticos facilitan abstracciones del hardware subyacente realmentepotentes y variadas.Los micronúcleos (en inglés microkernel) proporcionan un pequeño conjunto deabstracciones simples del hardware, y usan las aplicaciones llamadas servidorespara ofrecer mayor funcionalidad.Los núcleos híbridos (micronúcleos modificados) son muy parecidos a losmicronúcleos puros, excepto porque incluyen código adicional en el espacio denúcleo para que se ejecute más rápidamente.Los exonúcleos no facilitan ninguna abstracción, pero permiten el uso de bibliotecasque proporcionan mayor funcionalidad gracias al acceso directo o casi directo alhardware.
  • 19. Micronúcleos:El enfoque micronúcleo consiste en definir una abstracción muy simple sobre elhardware, con un conjunto de primitivas o llamadas al sistema que implementanservicios del sistema operativo mínimos, como la gestión de hilos, el espacio dedireccionamiento y la comunicación entre procesos.El objetivo principal es la separación de la implementación de los servicios básicos yde la política de funcionamiento del sistema. Por ejemplo, el proceso de bloqueo deE/S se puede implementar con un servidor en espacio de usuario ejecutándoseencima del micronúcleo. Estos servidores de usuario, utilizados para gestionar laspartes de alto nivel del sistema, son muy modulares y simplifican la estructura ydiseño del núcleo. Si falla uno de estos servidores, no se colgará el sistema entero, yse podrá reiniciar este módulo independientemente del resto. Sin embargo, laexistencia de diferentes módulos independientes origina retardos en la comunicacióndebido a la copia de variables que se realiza en la comunicación entre módulos.Algunos ejemplos de micronúcleos:AIX La familia de micronúcleos L4 El micronúcleo Mach, usado en GNU Hurd y enMac OS X BeOS Minix Morph OS QNX Radi OS? VSTa HurdNúcleos monolíticos en contraposición a micronúcleos:Frecuentemente se prefieren los núcleos monolíticos frente a los micronúcleosdebido al menor nivel de complejidad que comporta el tratar con todo el código decontrol del sistema en un solo espacio de direccionamiento. Por ejemplo, XNU, elnúcleo de Mac OS X, está basado en el núcleo Mach 3.0 y en Free BSD, en elmismo espacio de direccionamiento para disminuir la latencia que comporta el diseñode micronúcleo convencional.A principios de los años 1990, los núcleos monolíticos se consideraban obsoletos. Eldiseño de Linux como un núcleo monolítico en lugar de como un micronúcleo fue eltema de una famosa disputa entre Linus Torvalds y Andrew Tanenbaum. Losargumentos de ambas partes en esta discusión presentan algunas motivacionesinteresantes.Los núcleos monolíticos suelen ser más fáciles de diseñar correctamente, y por lo
  • 20. tanto pueden crecer más rápidamente que un sistema basado en micronúcleo, perohay casos de éxito en ambos bandos. Los micronúcleos suelen usarse en robóticaembebida o computadoras médicas, ya que la mayoría de los componentes delsistema operativo residen en su propio espacio de memoria privado y protegido. Estono sería posible con los núcleos monolíticos, ni siquiera con los modernos quepermiten cargar módulos del núcleo.Aunque Mach es el micronúcleo generalista más conocido, se han desarrollado otrosmicronúcleos con propósitos más específicos. L3 fue creado para demostrar que losmicronúcleos no son necesariamente lentos. La familia de micronúcleos L4 es ladescendiente de L3, y una de sus últimas implementaciones, llamada Pistachio,permite ejecutar Linux simultáneamente con otros procesos, en espacios dedireccionamiento separados.QNX es un sistema operativo que ha estado disponible desde principios de los años1980, y tiene un diseño de micronúcleo muy minimalista. Este sistema ha conseguidollegar a las metas del paradigma del micronúcleo con mucho más éxito que Mach. Seusa en situaciones en que no se puede permitir que haya fallos de software, lo queincluye desde brazos robóticos en naves espaciales, hasta máquinas que pulencristal donde un pequeño error podría costar mucho dinero.Mucha gente cree que como Mach básicamente falló en el intento de resolver elconjunto de problemas que los micronúcleos intentaban subsanar, toda la tecnologíade micronúcleos es inútil. Los partidarios de Mach afirman que ésta es una actitudestrecha de miras que ha llegado a ser lo suficientemente popular para que muchagente la acepte como verdad.Núcleos híbridos (micronúcleos modificados):Los núcleos híbridos fundamentalmente son micronúcleos que tienen algo de código«no esencial» en espacio de núcleo para que éste se ejecute más rápido de lo que loharía si estuviera en espacio de usuario. Éste fue un compromiso que muchosdesarrolladores de los primeros sistemas operativos con arquitectura basada enmicronúcleo adoptaron antes que se demostrara que los micronúcleos pueden tenermuy buen rendimiento. La mayoría de sistemas operativos modernos pertenecen a
  • 21. esta categoría, siendo el más popular Microsoft Windows. XNU, el núcleo de Mac OSX, también es un micronúcleo modificado, debido a la inclusión de código del núcleode Free BSD en el núcleo basado en Mach. Dragon Fly BSD? es el primer sistemaBSD que adopta una arquitectura de núcleo híbrido sin basarse en Mach.Algunos ejemplos de núcleos híbridos:Microsoft Windows NT, usado en todos los sistemas que usan el código base deWindows NT XNU (usado en Mac OS X) Dragon Fly BSD React OS?Hay gente que confunde el término «núcleo híbrido» con los núcleos monolíticos quepueden cargar módulos después del arranque, lo que es un error. «Híbrido» implicaque el núcleo en cuestión usa conceptos de arquitectura o mecanismos tanto deldiseño monolítico como del micronúcleo, específicamente el paso de mensajes y lamigración de código «no esencial» hacia el espacio de usuario, pero manteniendocierto código «no esencial» en el propio núcleo por razones de rendimiento.Exonúcleos:Los exonúcleos, también conocidos como sistemas operativos verticalmenteestructurados, representan una aproximación radicalmente nueva al diseño desistemas operativos.La idea subyacente es permitir que el desarrollador tome todas las decisionesrelativas al rendimiento del hardware. Los exonúcleos son extremadamentepequeños, ya que limitan expresamente su funcionalidad a la protección y elmultiplexado de los recursos. Se llaman así porque toda la funcionalidad deja deestar residente en memoria y pasa a estar fuera, en bibliotecas dinámicas.Los diseños de núcleos clásicos (tanto el monolítico como el micronúcleo) abstraenel hardware, escondiendo los recursos bajo una capa de abstracción del hardware, odetrás de los controladores de dispositivo. En los sistemas clásicos, si se asignamemoria física, nadie puede estar seguro de cuál es su localización real, porejemplo.La finalidad de un exonúcleo es permitir a una aplicación que solicite una regiónespecífica de la memoria, un bloque de disco concreto, etc., y simplemente
  • 22. asegurarse que los recursos pedidos están disponibles, y que el programa tienederecho a acceder a ellos.Debido a que el exonúcleo sólo proporciona una interfaz al hardware de muy bajonivel, careciendo de todas las funcionalidades de alto nivel de otros sistemasoperativos, éste es complementado por una «biblioteca de sistema operativo». Estabiblioteca se comunica con el exonúcleo subyacente, y facilita a los programadoresde aplicaciones las funcionalidades que son comunes en otros sistemas operativos.Algunas de las implicaciones teóricas de un sistema exonúcleo son que es posibletener distintos tipos de sistemas operativos (p.e. Windows, Unix) ejecutándose en unsolo exonúcleo, y que los desarrolladores pueden elegir prescindir de o incrementarfuncionalidades por motivos de rendimiento.Actualmente, los diseños exonúcleo están fundamentalmente en fase de estudio y nose usan en ningún sistema popular. Un concepto de sistema operativo es Nemesis,creado por la Universidad de Cambridge, la Universidad de Glasgow, Citrix Systemsy el Instituto Sueco de Informática. El MIT también ha diseñado algunos sistemasbasados en exonúcleos. Los exonúcleos se manejan en diferente estructura dadoque también cumplen funciones distintas
  • 23. Conclusión.Luego de haber investigado y analizado se puede ver que se han desarrollado variostipos de sistemas operativos con diferentes interfaces y categorías. Pero hemospodido observar que todos los sistemas operativos han sufrido cambios por parte delos programadores, y siguen evolucionando.El diálogo entre el usuario y la máquina suele realizarse a través de una interfaz delínea de comandos o de una interfaz gráfica de usuario (GUI, siglas en inglés). Lasinterfaces de línea de comandos exigen que se introduzcan instrucciones brevesmediante un teclado. Las GUI emplean ventanas para organizar archivos yaplicaciones con iconos y menús que presentan listas de instrucciones. El usuariomanipula directamente estos objetos visuales en el monitor señalándolos,seleccionándolos y arrastrándolos o moviéndolos con un Mouse.El uso de las GUI es más sencillo que el de las interfaces de línea de comandos. Sinembargo, la introducción de instrucciones con una GUI es más lenta, por lo que lasGUI suelen tener la opción de emplear un sistema equivalente al de línea deinstrucciones como alternativa rápida para los usuarios más expertos.Los sistemas operativos empleados normalmente son UNIX, Macintosh OS, MS-DOS, OS/2, Windows 95 y Windows NT. El UNIX y sus clones permiten múltiplestareas y múltiples usuarios. Otros SO multiusuario y multitarea son OS/2,desarrollado inicialmente por Microsoft e IBM, Windows NT y Win95 desarrolladospor Microsoft. El SO multitarea de Apple se denomina Macintosh OS. El MS-DOS esun SO popular entre los usuarios de PCs pero solo permite un usuario y una tarea.
  • 24. Bibliografía.Fundamentos de sistemas operativos. Silberschatz galvin gagne.Sistemas Operativos: Diseño e Implementación, Segunda edición;Prentice Hall; Andrew S. Tenenbaum, Albert S. Woodhull.William Stalling. Prentice Hall.Introducción a los Sistemas Informáticos.Sistemas Operativos, Segunda edición;Sistemas operativos: teoría y práctica, Pablo Martínez Cobo, P. Martinez,Ediciones Díaz de Santos, 1997