You are on page 1of 6

Características de los Sistemas Operativos

Sistema Operativo Multitareas.

Se llama multitarea al sistema operativo donde varios procesos pueden ser ejecutados al mismo
tiempo compartiendo uno o más procesadores. En caso contrario, se habla de un sistema operativo
monotarea.

Tipos de multitarea:

 Nula: El sistema operativo es monotarea. El ejemplo típico es MS-DOS. Aún asi puede
lograrse a veces algo parecido a una multitarea implementandola en espacio de usuario, o
usando trucos como los TSR de MS-DOS.
 Cooperativa: Los procesos de usuario son quienes ceden la CPU al sistema operativo a
intervalos regulares. Muy problemática, puesto que si el proceso de usuario se cuelga y no
cede la CPU al sistema operativo, todo el sistema quedará entonces colgado. Da lugar
también a latencias muy irregulares, y la imposibilidad de tener en cuenta este esquema en
sistemas operativos de tiempo real. Un ejemplo seria Windows, hasta la version 3.11.
 Preemptiva: El sistema operativo es el encargado de administrar el/los procesador/es,
repartiendo el tiempo de uso de este entre los procesos que estén esperando para
utilizarlo. Cada proceso utiliza el procesador durante cortos periodos de tiempo, pero el
resultado final es prácticamente igual que si estuviesen ejecutandose al mismo tiempo.
Ejemplos de sistemas de este tipo serian Unix y clones (FreeBSD, Linux, etc.), VMS y
derivados, AmigaOS, etc.
 Real: Solo se da en sistemas multiprocesador. Es aquella en la que varios procesos se
ejecutan realmente al mismo tiempo, en distintos microprocesadores. Suele ser también
preemptiva. Ejemplos de sistemas operativos con esa capacidad: Linux y OS X

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.

El MS-DOS es un sistema operativo monousuario y monotarea, tiene estas limitaciones pero, ala
vez, es muy robusto y permite realizar tareas que otros no lo harían.

Aunque el MS-DOS necesite ejecutar un programa padre para correr otro programa hijo, sólo está
ejecutando uno en cada momento (hijo), y si el programa padre deja de funcionar, el programa hijo
se bloquea automáticamente.

El MS-DOS original es capaz de gestionar 1MB y de trabajar directamente sólo con 640 KB, este
es un gran problema para programas que precisen de más memoria.

La solución adoptada consiste en reordenar la memoria en diferentes partes, y un gestionador de


memoria adecuado para ello.

En Windows 95 y 98 se basan en MS-DOS “sufriendo” esta limitación de memoria a partir de


Windows Millenium (Windows NT, Windows 2000 y Windows XP) se abandona, definitivamente el
MS-DOS ampliando la memoria a usar.

Sistema Operativo Multiusuario.

Un Sistema Operativo multiusuario permite a mas de un solo usuario accesar una computadora.
Claro que, para llevarse esto a cabo, el Sistema Operativo también debe ser capaz de efectuar
multitareas.

Unix es el Sistema Operativo Multiusuario más utilizado. Debido a que Unix fue originalmente
diseñado para correr en una minicomputadora, era multiusuario y multitarea desde su concepción.

Actualmente se producen versiones de Unix para PC tales como The Santa Cruz Corporation
Microport, Esix, IBM,y Sunsoft. Apple también produce una versión de Unix para la Machintosh
llamada: A/UX.Unix
Unix proporciona tres maneras de permitir a múltiples personas utilizar la misma PC al mismo
tiempo:

 Mediante Módems.
 Mediante conexión de terminales a través de puertos seriales
 Mediante Redes.

Sistemas Operativos por lotes.

Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna
interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes
para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el
procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos, y fueron
introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas.

Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecución muy alto, porque
el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la
secuenciabilidad de la ejecución de los trabajos.

Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual
está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a
procesamiento académico.

Algunas otras características con que cuentan los Sistemas Operativos por lotes son:

 Requiere que el programa, datos y órdenes al sistema sean remitidos todos juntos en
forma de lote.

 Permiten poca o ninguna interacción usuario/programa en ejecución.

 Mayor potencial de utilización de recursos que procesamiento serial simple en sistemas


multiusuarios.

 No conveniente para desarrollo de programas por bajo tiempo de retorno y depuración


fuera de línea.

 Conveniente para programas de largos tiempos de ejecución (ej, análisis estadísticos,


nóminas de personal, etc.).

 Se encuentra en muchos computadores personales combinados con procesamiento serial.

 Planificación del procesador sencilla, típicamente procesados en orden de llegada.

 Planificación de memoria sencilla, generalmente se divide en dos: parte residente del S.O.
y programas transitorios.

 No requieren gestión crítica de dispositivos en el tiempo.

 Suelen proporcionar gestión sencilla de manejo de archivos: se requiere poca protección y


ningún control de concurrencia para el acceso.

Sistemas Operativos en Tiempo Real

  Se caracterizan por presentar requisitos especiales en cinco áreas generales:

     Determinismo

     Sensibilidad

     Control del usuario

     Fiabiidad

     Tolerancia a los fallos

 
Un sistema operativo es determinista si realiza las operaciones en instantes fijos y
predeterminados o en intervalos de tiempos predeterminados. Cuando compiten varios procesos
por los recursos y por el tiempo del procesador, depende, en primer lugar, de la velocidad con la
que pueda responder a las interrupciones y en segundo lugar, de si el sistema posee suficiente
capacidad para gestionar  todas las peticiones en el tiempo requerido.

Un sistema operativo para operar de forma determinista es el retardo máximo que se


produce de la llegada de la interrupción de un dispositivo de alta prioridad hasta que comienza el
servicio.

La sensibilidad. El determinismo hace referencia a cuanto tiempo consume un sistema


operativo en reconocer una interrupción. La sensibilidad se refiere a cuanto tiempo consume un
sistema operativo en dar servicio a la interrupción después de reconocerla.

Las características de la sensibilidad son, entre otras:

1-     La cantidad de tiempo necesario para iniciar la gestión de la interrupción y


comenzar la ejecución de su rutina de tratamiento (ISR, interrupt service routine).

2-     La cantidad de tiempo necesario para ejecutar la ISR. Generalmente, depende


de la plataforma del hardware.

3-     El efecto del tratamiento de interrupciones. El servicio se retrasara si una ISR


puede ser interrumpida por la llegada de otra interrupción.

El determinismo y la sensibilidad forman conjuntamente el tiempo de respuesta a sucesos


externos. Los requisitos en tiempo de respuesta son críticos ya que cada sistema debe cumplir los
requisitos de tiempo impuesto por los individuos, dispositivos y flujos de datos externos al sistema.

El control del usuario es generalmente mucho mayor en un sistema operativo en tiempo real
que en un sistema operativo ordinario. En sistema operativo típico que no sea en tiempo real, el
usuario no tiene control sobre la función de planificación del sistema operativo. En un sistema en
tiempo real resulta esencial permitir al usuario un control preciso sobre la prioridad de las tareas. El
usuario debe poder distinguir entre tareas rígidas y flexibles y especificar prioridades relativas
dentro de cada clase. Un sistema en tiempo real también permitirá al usuario especificar
características. Que procesos deben estar siempre residente en la memoria principal.

La fiabilidad es normalmente mucho mas importante en sistemas en tiempo real que en los
que no lo son. Un fallo transitorio en un sistema que no sea en tiempo real puede resolverse
simplemente volviendo a reiniciar el sistema. Un fallo de un procesador en un multiprocesador que
no sea en tiempo real produce una reducción del nivel de servicio hasta que se repara o sustituye
el procesador averiado. Pero un sistema en tiempo real responde y controla sucesos en tiempo
real. Las perdidas o degradaciones del rendimiento pueden tener consecuencias catastróficas, que
pueden ir desde perdida financieras hasta daños en equipo e incluso perdida de vidas humanas.

La tolerancia a los fallos es una característica que hace referencia a la capacidad de un


sistema de conservar la máxima capacidad y los máximos datos posibles en caso de fallos por Ej.,
un sistema UNIX clásico típico, cuando detecta datos corruptos en el núcleo, genera un mensaje
de error en la consola del sistema, vuelca el contenido de la memoria en el disco para un análisis
posterior y finaliza la ejecución del sistema. Un sistema en tiempo real intentara corregir el
problema o minimizar sus efectos mientras continua la ejecución.

Un aspecto importante a la tolerancia a los fallos es la estabilidad. Un sistema en tiempo real


si, en los casos en los que es imposible cumplir todos los plazos de ejecución de las tareas, el
sistema cumple los plazos de las tareas mas criticas y de mayor prioridad, incluso si no se cumple
los de alguna tarea menos critica.
Para cumplir los requisitos anteriores los sistemas operativos actuales en tiempo real incluyen
normalmente las siguientes características:

      Cambios rápidos de procesos o hilos.

      Pequeño tamaño (con una mínima funcionalidad asociada).

      Capacidad de responder rápidamente a interrupciones externas.

       Multitarea con herramientas de comunicación entre procesos, como


semáforos, señales y sucesos.

       Uso de archivos secuénciales especiales que puedan acumular datos a alta
velocidad.

      Planificación preferente basadas en prioridades.

       Reducción de intervalos en los que están inhabilitadas las interrupciones.

       Primitivas para demorar tareas durante un tiempo fijo y para detenerlas y
reanudarlas.

      Alarmas  especiales y temporizadores.

El corazón de un sistema en tiempo real es el planificador de tares a corto plazo. Lo que resulta
importante es que todas las tareas rígidas  de tiempo real acaben (o comiencen) en su plazo y que
también acaben (o comiencen) en su plazo tantas tareas flexibles de tiempo real como sea posible.

La mayoría de los sistemas operativos actuales en tiempo real son incapaces de trabajar
directamente con plazos. En su lugar, se han diseñado para ser tan sensibles como sea posible a
las tareas de tiempo real, de forma que, cuando se aproxima un plazo se pueda planificar
rápidamente la traerá. Las aplicaciones de tiempo real normalmente necesitan tiempos de
respuesta deterministas en un rango de varios milisegundo, las aplicaciones al límite, como los
simuladores de aviones militares, por Ej. presentan a menudo restricciones en un rango de diez a
cien microsegundos.

Sistemas Operativos Distribuidos

Los sistemas operativos distribuidos desempeñan las mismas funciones que un sistema operativo
normal, pero con la diferencia de trabajar en un entorno distribuido. Su Misión principal consiste en
facilitar el acceso y la gestión de los recursos distribuidos en la red.

En un sistema operativo distribuido los usuarios pueden acceder a recursos remotos de la misma
manera en que lo hacen para los recursos locales. Permiten distribuir trabajos, tareas o procesos,
entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un
equipo o en diferentes, lo cual es transparente para el usuario.

Los sistemas distribuidos deben de ser muy confiables y estables ya que si un componente del
sistema se descompone otro componente debe de ser capaz de reemplazarlo inmediatamente y no
afectar los procesos del sistema.

Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite,
Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.

Características básicas

Los sistemas operativos distribuidos están basados en las ideas básicas:

• Transparencia

• Eficiencia

• Flexibilidad

• Escalabilidad
• Sincronización

Existen dos esquemas básicos: Los Fuertemente Acoplados y los débiles. Un sistema fuertemente
acoplado es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son
similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no
comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.

Transparencia

El concepto de transparencia de un Sistema operativo distribuido va ligado a la idea de que todo el


sistema funcione de forma similar en todos los puntos de la red, debido a esto queda como labor
del sistema operativo coordinar el mecanismo que logre la unificación de todos los sistemas y
recursos totalmente transparente para el usuario o aplicación.

El que el sistema disponga de varios procesadores debe lograr un mayor rendimiento del sistema,
pero el sistema operativo debe controlar que tanto los usuarios como los programadores vean el
núcleo del sistema distribuido como un único procesador, Es decir que la programación y la
ejecución de los programas y tareas sean exactamente iguales que las de los sistemas operativos
normales en aspectos visuales y de programación, pero mas rápidos y eficientes por la distribución
de la tareas.

Eficiencia

La idea base de los sistemas operativos distribuido es la de obtener sistemas mucho mas rápidos
que los utilizados de procesador único, Y para lograr esto tenemos que olvidar la idea antigua de
ejecutar los programas en estos procesadores y pensar en distribuir las tareas a los procesadores
libres mas rápidos en cada momento.

El concepto global de que un procesador haga todas las tareas y la desarrolle rápido depende de
muchos factores concretos: Velocidad, Memoria y tipo de procesamiento, Pero para un sistema
operativo distribuido esto es mucho mas fácil y eficiente, solo buscara un procesador mas rápido y
mas libre para que desarrolle las tareas y hará un display de los resultados obtenidos.

Flexibilidad

La Flexibilidad dentro de sistema operativo distribuido, describe su capacidad para soportar


cambios, actualizaciones y mejoras que le permitan irse desarrollando al mismo ritmo de la
evolución tecnológica.

Dicha capacidad es una virtud y un conflicto. Una Virtud debido a las grandes necesidades de los
sistemas operativos de mejorar después de las primeras versiones y un conflicto que surge entre
los sistemas de con Núcleo Monolítico y los sistemas con Micro núcleo las cuales son dos
arquitecturas distintas del núcleo del sistema operativo.

Escalabilidad

Un sistema operativo distribuido debería funcionar tanto para una docena de computadoras como
para mil en una sola red, el tipo de red utilizada no debe de ser un problema ni su topología (LAN o
WAN) (TOKEN RING o ETHERNET) y mucho menos la distancia entre los equipos. Sin embargo
todo esto influye, Aunque estos puntos serian muy deseables, pude que la solución valida para
unas cuantas computadoras no sean aplicables como para mil. Del mismo modo el tipo de red
condiciona grandemente el rendimiento del sistema y puede que lo funcione para un tipo de red
requiera modificaciones para otro.

Los sistemas operativos distribuidos necesitan de grandes estándares para trabajar y sobre todo
de ajustes a las necesidades principales de cada red y sus usuarios. Este concepto propone que
cualquier computador debe funcionar perfectamente como un sistema operativo distribuido, pero de
la misma forma debe de formar parte y trabajar como más equipos no importan la cantidad o los
recursos que estos le puedan proporcionar.

Sincronización

La sincronización es un punto clave para los sistemas operativos distribuidos. Para computadores
únicos no es nada importante, pero en el caso de los recursos compartidos de la red, la
sincronización es sumamente importante.

Los sistemas operativos distribuidos tienen un reloj por cada ordenador del sistema, con lo que es
fundamental una coordinación entre todos los relojes para mostrar una hora única. Los osciladores
de cada ordenador son ligeramente diferentes, y como consecuencia todo los relojes sufren un
desfase y deben ser sincronizados continuamente. La sincronización no es trivial, porque se realiza
a través de mensajes por la red. Cuyo tiempo de envió pude ser variable y depender de muchos
factores como la distancia, la velocidad de transmisión y la propia estructura de la red.

You might also like