sistemas operativos

24
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. 2010 Juan Manuel Pavon Ortiz Jamil Enríquez Deceano 23/10/2010

Upload: juan-pavon-ortiz

Post on 04-Jun-2015

2.186 views

Category:

Education


3 download

DESCRIPTION

Sistemas operativos

TRANSCRIPT

Page 1: Sistemas operativos

s

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.

2010

Juan Manuel Pavon Ortiz Jamil Enríquez Deceano

23/10/2010

Page 2: Sistemas operativos

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

Page 3: Sistemas operativos

Introducción

Un Sistema operativo (SO) es un software que actúa

de interfaz entre los dispositivos de hardware y los

programas de usuario o el usuario mismo para utilizar

un computador. Es responsable de gestionar,

coordinar las actividades y llevar a cabo el

intercambio de los recursos y actúa como

intermediario para las aplicaciones que se ejecutan.

Nótese que es un error común muy extendido

denominar al conjunto completo de herramientas

sistema operativo, pues este, es sólo el núcleo y no

necesita de entorno operador para estar operativo y

funcional. Uno de los más prominentes ejemplos de

esta diferencia, es el SO Linux, el cual junto a las

herramientas GNU, forman las llamadas

distribuciones Linux.

Este error de precisión, se debe a la modernización de la informática llevada a cabo

a finales de los 80, cuando la filosofía de estructura básica de funcionamiento de los

grandes computadores se rediseñó a fin de llevarla a los hogares y facilitar su uso,

cambiando el concepto de computador multiusuario, (muchos usuarios al mismo

tiempo) por un sistema monousuario (únicamente un usuario al mismo tiempo) más

sencillo de gestionar. AmigaOS, beOS o MacOS como los pioneros de dicha

modernización, cuando los Amiga, fueron bautizados con el sobrenombre de Video

Toasters por su capacidad para la Edición de vídeo en entorno multitarea round

robin, con gestión de miles de colores e interfaces intuitivos para diseño en 3D con

programas como Imagine o Scala multimedia, entre muchos otros.

Uno de los propósitos de un sistema operativo como intermediario consiste en

gestionar los recursos de localización y protección de acceso del hardware, hecho

que 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 utilizan

microprocesadores 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 Sistema

Operativo de Internet, creado por Cisco Systems para gestionar equipos de

interconexión como los conmutadores y los enrutadores.

Page 4: Sistemas operativos

Definición y Concepto.

Existen diversas definiciones de lo que es un Sistema Operativo, pero no hay una

definición exacta, es decir una que sea estándar; a continuación se presentan

algunas:

Se pueden imaginar un Sistema Operativo como los programas, instalados en el

software o firmware+, que hacen utilizable el hardware. El hardware proporciona la

“capacidad bruta de cómputo”; los sistemas operativos ponen dicha capacidad de

cómputo al alcance de los usuarios y administran cuidadosamente el hardware para

lograr un buen rendimiento.

Los Sistemas Operativos son ante todo administradores de recursos; el principal

recurso que administran es el hardware del computador; además de los

procesadores, 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 entre

un sistema informático y sus usuarios, el cual ofrece herramientas y facilidades para

simplificar las tareas de diseño codificación depuración, actualización, etc.

¿Que hace?

Administrar todos los recursos hardware y software que constituyen el sistema

informático a explotar.

¿Como nació?

Nació con la necesidad de llevar el control de quien utiliza los recursos software

usuario(s).

Page 5: Sistemas operativos

Definición Global.

Un Sistema Operativo es un programa que actúa como intermediario entre el usuario

y el hardware del computador y su propósito 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 computación se use de manera cómoda, y el

objetivo secundario es que el hardware del computador se emplee de manera

eficiente.

Un Sistema Operativo es un conjunto de programas que controla la ejecución de

programas de aplicación y actúa 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 podría 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 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. Primero

se carga y ejecuta un pedazo de código 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 aplicación y software variado.

Los sistemas operativos pueden emplear memoria virtual para ejecutar procesos que

exigen más memoria principal de la realmente disponible. Con esta técnica se

emplea espacio en el disco duro para simular la memoria adicional necesaria. Sin

embargo, el acceso al disco duro requiere más tiempo que el acceso a la memoria

principal, por lo que el funcionamiento del ordenador resulta más lento.

Page 6: Sistemas operativos

Funciones y Características.

Un sistema operativo (cuyo acrónimo es SO) es un conjunto de programas

destinados a permitir la comunicación del usuario con un computador y gestionar sus

recursos de una forma eficaz. Comienza a trabajar cuando se enciende el

computador, 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 programas

de computadora destinado a permitir una administración eficaz de sus recursos.

Comienza a trabajar cuando se enciende el computador, y gestiona el hardware de la

máquina desde los niveles más básicos, permitiendo también la interacción con el

usuario.

Un sistema operativo se puede encontrar normalmente en la mayoría de los aparatos

electrónicos que utilicen microprocesadores para funcionar, ya que gracias a éstos

podemos entender la máquina y que ésta cumpla con sus funciones (teléfonos

móviles, reproductores de DVD, autoradios, computadoras, etc).

Actualmente el concepto de computadora esta intrínsecamente relacionado al de

sistema operativo, aunque éste existe en otros aparatos electrónicos y no sólo en las

computadoras.

Años 40

A finales de los años 40, con lo que podríamos llamar la aparición de la primera

generación de computadoras, se accedía directamente a la consola de la

Page 7: Sistemas operativos

computadora desde la cual se actuaba sobre una serie de micro interruptores que

permitían introducir directamente el programa en la memoria de la computadora (en

realidad al existir tan pocas computadoras todos podrían considerarse prototipos y

cada constructor lo hacía sin seguir ningún criterio predeterminado). Por aquel

entonces no existían los sistemas operativos, y los programadores debían interactuar

con el hardware del computador sin ayuda externa. Esto hacía que el tiempo de

preparación para realizar una tarea fuera considerable. Además para poder utilizar la

computadora debía hacerse por turnos. Para ello, en muchas instalaciones, se

rellenaba un formulario de reserva en el que se indicaba el tiempo que el

programador necesitaba para realizar su trabajo. En aquel entonces las

computadoras eran máquinas muy costosas lo que hacía que estuvieran muy

solicitadas y que sólo pudieran utilizarse en periodos breves de tiempo. Todo se

hacia en lenguaje de máquina.

Años 50

A principios de los años 50 con el objeto de facilitar la interacción entre persona y

computador, los sistemas operativos hacen una aparición 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, leyéndolos 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 solución para optimizar , en una misma cinta o

conjunto de tarjetas, de forma que se ejecutaran uno a continuación de otro sin

perder apenas tiempo en la transición.

Almacenamiento temporal Su objetivo era disminuir el tiempo de carga de los

programas, haciendo simultánea la carga del programa o la salida de datos con la

ejecución de la siguiente tarea. Para ello se utilizaban dos técnicas, el buffering y el

spooling.

Page 8: Sistemas operativos

Años 60

En 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 incrementando

el potencial de los computadores. Para ello se utilizaban técnicas de lo más diversas:

Multiprogramación

En un sistema multiprogramado la memoria principal alberga a más de un programa

de usuario. La CPU ejecuta instrucciones de un programa, cuando el que se

encuentra en ejecución realiza una operación de E/S; en lugar de esperar a que

termine la operación de E/S, se pasa a ejecutar otro programa. Si éste realiza, a su

vez, otra operación 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

electrónica 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 línea, utilizando el modo de operación de tiempo compartido. En estos

sistemas los programas de los distintos usuarios residen en memoria. Al realizar una

operación de E/S los programas ceden la CPU a otro programa, al igual que en la

multiprogramación. Pero, a diferencia de ésta, cuando un programa lleva cierto

tiempo ejecutándose el sistema operativo lo detiene para que se ejecute otro

aplicación. 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.

Page 9: Sistemas operativos

Tiempo real

Estos sistemas se usan en entornos donde se deben aceptar y procesar en tiempos

muy breves un gran número de sucesos, en su mayoría 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 máquinas que poseen más de un microprocesador. Se

denomina multiprocesador a un ordenador que cuenta con dos o más

microprocesadores (CPUs). Gracias a esto, el multiprocesador puede ejecutar

simultáneamente varios hilos pertenecientes a un mismo proceso o bien a procesos

diferentes.

Los ordenadores multiprocesador presentan problemas de diseño que no se

encuentran en ordenadores monoprocesador. Estos problemas derivan del hecho de

que dos programas pueden ejecutarse simultáneamente 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 dirección de memoria, lo hace únicamente sobre

su copia local en caché. Si otro microprocesador tiene almacenada la misma

dirección de memoria en su caché, resultará que trabaja con una copia obsoleta del

dato almacenado.

Page 10: Sistemas operativos

Para que un multiprocesador opere correctamente necesita un sistema operativo

especialmente diseñado para ello. La mayoría de los sistemas operativos actuales

poseen esta capacidad.

Sistemas operativos desarrollados Además 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 década.

Años 70

Debido al avance de la electrónica, pudo empezar a crearse circuitos con miles de

transistores en un centímetro cuadrado de silicio, lo que llevaría, pocos años

después, a producir los primeros sistemas integrados. Ésta década se podría definir

como la de los sistemas de propósito general y en ella se desarrollan tecnologías que

se siguen utilizando en la actualidad. Es en los años 70 cuando se produce el boom

de los miniordenadores y la informática se acerca al nivel de usuario. En lo relativo a

lenguajes de programación, es de señalar la aparición de Pascal y C, el último de los

cuales se creó específicamente para reescribir por completo el código del sistema

operativo Unix, convirtiéndolo en uno de los pocos SO escritos en un lenguaje de alto

nivel. En el campo de la programación lógica se dio a luz la primera implementación

de Prologramas, y en la revolucionaria orientación a objetos, Smalltalk.

Inconvenientes de los sistemas existentes Se trataba de sistemas grandes y

costosos, pues antes no se había construido nada similar y muchos de los proyectos

desarrollados terminaron con costos muy por encima del presupuesto y mucho

después de lo que se marcaba como fecha de finalización. Además, aunque

formaban una capa entre el hardware y el usuario, éste debía conocer un complejo

lenguaje de control para realizar sus trabajos. Otro de los inconvenientes es el gran

consumo de recursos que ocasionaban, debido a los grandes espacios de memoria

principal y secundaria ocupados, así como el tiempo de procesador consumido. Es

por esto que se intentó hacer hincapié en mejorar las técnicas ya existentes de

Page 11: Sistemas operativos

multiprogramación y tiempo compartido.

Características de los nuevos sistemas Para solventar los problemas antes

comentados, se realizó un costosísimo trabajo para interponer una amplia capa de

software entre el usuario y la máquina, de forma que el primero no tuviese que

conocer ningún detalle de la circuitería.

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; después fue soportado por la serie de

máquinas 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 distinción entre los ficheros y los procesos en memoria, y

uno de los primeros sistemas multiprocesador.

MVS (Multiple Virtual Storage): Fue el sistema operativo más usado en los modelos

de mainframes -ordenadores grandes, potentes y caros usados principalmente por

grandes compañías para el procesamiento de grandes cantidades de datos-

System/370 y System/390 de IBM, desarrollado también por IBM y lanzado al

mercado por primera vez en 1974. Como características destacables, permitía la

ejecución de múltiples tareas, además de que introdujo el concepto de memoria

virtual y finalmente añadió 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,

distribuyéndose en disquetes de ocho pulgadas. Fue el SO más usado en las

computadoras personales de esta década. Su éxito se debió a que era portátil,

permitiendo que diferentes programas interactuasen con el hardware de una manera

estandarizada.

Page 12: Sistemas operativos

Estaba compuesto de dos subsistemas:

CCP (Comand Control Processor): Intérprete de comandos que permitía introducir los

mandatos con sus parámetros separados por espacios. Además, los traducía 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, años después, IBM eligiera para sus PCs a MS-DOS

supuso su mayor fracaso, por lo que acabó desapareciendo.

Años 80

Con la creación de los circuitos LSI -integración a gran escala-, chips que contenían

miles de transistores en un centímetro cuadrado de silicio, empezó el auge de los

ordenadores 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 simples

para 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 el

campo de la programación declarativa. Un avance importante que se estableció a

mediados de la década de 1980 fue el desarrollo de redes de computadoras

personales que corrían 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 hacían uso del

Motorola 68000.

Apple Macintosh

El 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és

de una GUI (Graphic User Interface), acostumbrados a la línea de comandos, lo

tacharon de juguete. A pesar de todo, el Mac se situó a la cabeza en el mundo de la

edición a nivel gráfico.

Page 13: Sistemas operativos

MS-DOS

En 1981 Microsoft compró un sistema operativo llamado QDOS que, tras realizar

unas pocas modificaciones, se convirtió en la primera versión de MS-DOS (Micro

Soft Disk Operating System). A partir de aquí se sucedieron una serie de cambios

hasta llegar a la versión 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.

Años 90

GNU/Linux

En 1991 aparece la primer versión del núcleo de Linux. Creado por Linus Torvalds y

un sinfín de colaboradores a través de Internet. Este sistema se basa en Unix, un

sistema que en principio trabajaba en modo comandos, estilo MS-DOS. Hoy en día

dispone de Ventanas, gracias a un servidor gráfico 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 gráfica del MS-DOS.

Hoy en dia es el sistema operativo más difundido en el ámbito domestico aunque

también hay versiones para servidores y Microsoft ha diseñado algunas versiones

para superordenadores sin mucho exito.

Page 14: Sistemas operativos

Clasificación.

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 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 visto

anteriormente, es decir, solo pueden manejar un proceso en cada momento o que

Page 15: Sistemas operativos

solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora

esta imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas

instrucciones hasta que se termine la impresión.

Sistema Operativo Monousuario.

Los sistemas monousuarios son aquellos que nada más puede atender a un solo

usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo

de 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, que

las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo

usuario. 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 los

sistemas que cumplen simultáneamente las necesidades de dos o más 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

ejecución de una lista de comandos del sistema operativo uno tras otro sin

intervención del usuario. En los ordenadores más grandes el proceso de recogida de

programas y de conjuntos de datos de los usuarios, la ejecución de uno o unos

pocos cada vez y la entrega de los recursos a los usuarios. Procesamiento por lotes

también puede referirse al proceso de almacenar transacciones durante un cierto

lapso antes de su envío a un archivo maestro, por lo general una operación separada

que se efectúa durante la noche.

Los sistemas operativos por lotes (batch), en los que los programas eran tratados por

grupos (lote) en ves de individualmente. La función de estos sistemas operativos

consistía en cargar en memoria un programa de la cinta y ejecutarlo. Al final este, se

Page 16: Sistemas operativos

realizaba el salto a una dirección de memoria desde donde reasumía el control del

sistema operativo que cargaba el siguiente programa y lo ejecutaba. De esta manera

el tiempo entre un trabajo y el otro disminuía 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 relación con

los sistemas operativos monousuarios, ya que existe un solo operador y no necesita

compartir el procesador entre varias solicitudes.

Su característica principal es dar respuestas rápidas; por ejemplo en un caso de

peligro se necesitarían respuestas inmediatas para evitar una catástrofe.

Tiempo Compartido.

El tiempo compartido en ordenadores o computadoras consiste en el uso de un

sistema por más 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 común en la mayoría de los microordenadores o las

microcomputadoras. Sin embargo el tiempo compartido se asocia generalmente con

el acceso de varios usuarios a computadoras más grandes y a organizaciones de

servicios, mientras que la multitarea relacionada con las microcomputadoras implica

la realización de múltiples tareas por un solo usuario.

Page 17: Sistemas operativos

Estructura (Niveles o Estratos de Diseño)

En informática, el núcleo (también conocido en español con el anglicismo kernel, de

raíces germánicas 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 más básica, es el encargado de gestionar

recursos, a través de servicios de llamada al sistema. Como hay muchos programas

y 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, lo

que se conoce como multiplexado. Acceder al hardware directamente puede ser

realmente complejo, por lo que los núcleos 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 núcleo:

Los núcleos tienen como funciones básicas garantizar la carga y la ejecución de los

procesos, las entradas/salidas y proponer un interfaz entre el espacio núcleo y los

programas del espacio del usuario.

Aparte de las funcionalidades básicas, 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 núcleo de

sistema de explotación. Pueden establecerse estas funciones del sistema de

explotación tanto en el espacio usuario como en el propio núcleo. Su implantación en

el núcleo se hace en el único objetivo de mejorar los resultados. En efecto, según la

concepción del núcleo, la misma función llamada desde el espacio usuario o el

espacio núcleo tiene un coste temporal obviamente diferente. Si esta llamada de

función es frecuente, puede resultar útil integrar estas funciones al núcleo para

mejorar los resultados.

Page 18: Sistemas operativos

Hay que señalar que estas técnicas son utilizadas para atenuar defectos de los

núcleos como los elevados estados. En la medida de lo posible, es preferible escribir

un programa informático fuera del núcleo, en el espacio usuario. En efecto, el

espacio del núcleo, supone la ausencia de mecanismos como la protección de la

memoria. Es pues más complejo escribir un programa informático que funciona en el

espacio del núcleo, que en el espacio usuario; los errores y faltas de seguridad

pueden desestabilizar el sistema.

Tipos de núcleo :

No necesariamente se necesita un núcleo para usar una computadora. Los

programas pueden cargarse y ejecutarse directamente en una computadora «vacía»,

siempre que sus autores quieran desarrollarlos sin usar ninguna abstracción 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 tenía que

reiniciar y reconfigurar la computadora cada vez. Con el tiempo, se empezó a dejar

en memoria (aún entre distintas ejecuciones) pequeños programas auxiliares, como

el cargador y el depurador, o se cargaban desde memoria de sólo lectura. A medida

que se fueron desarrollando, se convirtieron en los fundamentos de lo que llegarían a

ser los primeros núcleos de sistema operativo.

Hay cuatro grandes tipos de núcleos:

Los núcleos monolíticos facilitan abstracciones del hardware subyacente realmente

potentes y variadas.

Los micronúcleos (en inglés microkernel) proporcionan un pequeño conjunto de

abstracciones simples del hardware, y usan las aplicaciones llamadas servidores

para ofrecer mayor funcionalidad.

Los núcleos híbridos (micronúcleos modificados) son muy parecidos a los

micronúcleos puros, excepto porque incluyen código adicional en el espacio de

núcleo para que se ejecute más rápidamente.

Los exonúcleos no facilitan ninguna abstracción, pero permiten el uso de bibliotecas

que proporcionan mayor funcionalidad gracias al acceso directo o casi directo al

hardware.

Page 19: Sistemas operativos

Micronúcleos:

El enfoque micronúcleo consiste en definir una abstracción muy simple sobre el

hardware, con un conjunto de primitivas o llamadas al sistema que implementan

servicios del sistema operativo mínimos, como la gestión de hilos, el espacio de

direccionamiento y la comunicación entre procesos.

El objetivo principal es la separación de la implementación de los servicios básicos y

de la política de funcionamiento del sistema. Por ejemplo, el proceso de bloqueo de

E/S se puede implementar con un servidor en espacio de usuario ejecutándose

encima del micronúcleo. Estos servidores de usuario, utilizados para gestionar las

partes de alto nivel del sistema, son muy modulares y simplifican la estructura y

diseño del núcleo. Si falla uno de estos servidores, no se colgará el sistema entero, y

se podrá reiniciar este módulo independientemente del resto. Sin embargo, la

existencia de diferentes módulos independientes origina retardos en la comunicación

debido 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 en

Mac OS X BeOS Minix Morph OS QNX Radi OS? VSTa Hurd

Núcleos monolíticos en contraposición a micronúcleos:

Frecuentemente se prefieren los núcleos monolíticos frente a los micronúcleos

debido al menor nivel de complejidad que comporta el tratar con todo el código de

control del sistema en un solo espacio de direccionamiento. Por ejemplo, XNU, el

núcleo de Mac OS X, está basado en el núcleo Mach 3.0 y en Free BSD, en el

mismo espacio de direccionamiento para disminuir la latencia que comporta el diseño

de micronúcleo convencional.

A principios de los años 1990, los núcleos monolíticos se consideraban obsoletos. El

diseño de Linux como un núcleo monolítico en lugar de como un micronúcleo fue el

tema de una famosa disputa entre Linus Torvalds y Andrew Tanenbaum. Los

argumentos de ambas partes en esta discusión presentan algunas motivaciones

interesantes.

Los núcleos monolíticos suelen ser más fáciles de diseñar correctamente, y por lo

Page 20: Sistemas operativos

tanto pueden crecer más rápidamente que un sistema basado en micronúcleo, pero

hay casos de éxito en ambos bandos. Los micronúcleos suelen usarse en robótica

embebida o computadoras médicas, ya que la mayoría de los componentes del

sistema operativo residen en su propio espacio de memoria privado y protegido. Esto

no sería posible con los núcleos monolíticos, ni siquiera con los modernos que

permiten cargar módulos del núcleo.

Aunque Mach es el micronúcleo generalista más conocido, se han desarrollado otros

micronúcleos con propósitos más específicos. L3 fue creado para demostrar que los

micronúcleos no son necesariamente lentos. La familia de micronúcleos L4 es la

descendiente de L3, y una de sus últimas implementaciones, llamada Pistachio,

permite ejecutar Linux simultáneamente con otros procesos, en espacios de

direccionamiento separados.

QNX es un sistema operativo que ha estado disponible desde principios de los años

1980, y tiene un diseño de micronúcleo muy minimalista. Este sistema ha conseguido

llegar a las metas del paradigma del micronúcleo con mucho más éxito que Mach. Se

usa en situaciones en que no se puede permitir que haya fallos de software, lo que

incluye desde brazos robóticos en naves espaciales, hasta máquinas que pulen

cristal donde un pequeño error podría costar mucho dinero.

Mucha gente cree que como Mach básicamente falló en el intento de resolver el

conjunto de problemas que los micronúcleos intentaban subsanar, toda la tecnología

de micronúcleos es inútil. 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.

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 lo

haría si estuviera en espacio de usuario. Éste fue un compromiso que muchos

desarrolladores de los primeros sistemas operativos con arquitectura basada en

micronúcleo adoptaron antes que se demostrara que los micronúcleos pueden tener

muy buen rendimiento. La mayoría de sistemas operativos modernos pertenecen a

Page 21: Sistemas operativos

esta categoría, siendo el más popular Microsoft Windows. XNU, el núcleo de Mac OS

X, también es un micronúcleo modificado, debido a la inclusión de código del núcleo

de Free BSD en el núcleo basado en Mach. Dragon Fly BSD? es el primer sistema

BSD 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 de

Windows 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 que

pueden cargar módulos después del arranque, lo que es un error. «Híbrido» implica

que el núcleo en cuestión usa conceptos de arquitectura o mecanismos tanto del

diseño monolítico como del micronúcleo, específicamente el paso de mensajes y la

migración de código «no esencial» hacia el espacio de usuario, pero manteniendo

cierto código «no esencial» en el propio núcleo por razones de rendimiento.

Exonúcleos:

Los exonúcleos, también conocidos como sistemas operativos verticalmente

estructurados, representan una aproximación radicalmente nueva al diseño de

sistemas operativos.

La idea subyacente es permitir que el desarrollador tome todas las decisiones

relativas al rendimiento del hardware. Los exonúcleos son extremadamente

pequeños, ya que limitan expresamente su funcionalidad a la protección 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 dinámicas.

Los diseños de núcleos clásicos (tanto el monolítico como el micronúcleo) abstraen

el hardware, escondiendo los recursos bajo una capa de abstracción del hardware, o

detrás de los controladores de dispositivo. En los sistemas clásicos, si se asigna

memoria física, nadie puede estar seguro de cuál es su localización real, por

ejemplo.

La finalidad de un exonúcleo es permitir a una aplicación que solicite una región

específica de la memoria, un bloque de disco concreto, etc., y simplemente

Page 22: Sistemas operativos

asegurarse que los recursos pedidos están disponibles, y que el programa tiene

derecho a acceder a ellos.

Debido a que el exonúcleo sólo 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 exonúcleo subyacente, y facilita a los programadores

de aplicaciones las funcionalidades que son comunes en otros sistemas operativos.

Algunas de las implicaciones teóricas de un sistema exonúcleo son que es posible

tener distintos tipos de sistemas operativos (p.e. Windows, Unix) ejecutándose en un

solo exonúcleo, y que los desarrolladores pueden elegir prescindir de o incrementar

funcionalidades por motivos de rendimiento.

Actualmente, los diseños exonúcleo están fundamentalmente en fase de estudio y no

se usan en ningún 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 Informática. El MIT también ha diseñado algunos sistemas

basados en exonúcleos. Los exonúcleos se manejan en diferente estructura dado

que también cumplen funciones distintas

Page 23: Sistemas operativos

Conclusión.

Luego de haber investigado y analizado se puede ver que se han desarrollado varios

tipos de sistemas operativos con diferentes interfaces y categorías. Pero hemos

podido observar que todos los sistemas operativos han sufrido cambios por parte de

los programadores, y siguen evolucionando.

El diálogo entre el usuario y la máquina suele realizarse a través de una interfaz de

línea de comandos o de una interfaz gráfica de usuario (GUI, siglas en inglés). Las

interfaces de línea de comandos exigen que se introduzcan instrucciones breves

mediante un teclado. Las GUI emplean ventanas para organizar archivos y

aplicaciones con iconos y menús que presentan listas de instrucciones. El usuario

manipula 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. Sin

embargo, la introducción de instrucciones con una GUI es más lenta, por lo que las

GUI suelen tener la opción de emplear un sistema equivalente al de línea de

instrucciones 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últiples

tareas y múltiples usuarios. Otros SO multiusuario y multitarea son OS/2,

desarrollado inicialmente por Microsoft e IBM, Windows NT y Win95 desarrollados

por Microsoft. El SO 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.

Page 24: Sistemas operativos

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