Este documento describe diferentes tipos de sistemas operativos, incluyendo sistemas operativos de 16, 32 y 64 bits, sistemas operativos de tiempo real, sistemas operativos multiproceso y multiprocesador. También discute conceptos clave como tareas únicas vs multitarea, planificación preventiva vs cooperativa, y diseños guiados por eventos vs de compartición de tiempo.
1. Tipos de sistemas operativos<br />Existen varios tipos de sistemas operativos, definidos según su capacidad para administrar simultáneamente información de 16 bits, 32 bits, 64 bits o más. <br />Sistema Programación Usuario único Usuario múltiple Tarea única Multitarea DOS16 bitsX X Windows3.116/32 bitsX no preventivoWindows95/98/Me32 bitsX cooperativoWindowsNT/200032 bits X preventivoWindowsXP32/64 bits X preventivoUnix / Linux32/64 bits X preventivoMAC/OS X32 bits X preventivoVMS 32 bits X preventivo <br />Sistema operativo de tiempo real<br />Un sistema operativo de tiempo real (SOTR o RTOS -Real Time Operating System en inglés), es un sistema operativo que ha sido desarrollado para aplicaciones de tiempo real. Como tal, se le exige corrección en sus respuestas bajo ciertas restricciones de tiempo. Si no las respeta, se dirá que el sistema ha fallado. Para garantizar el comportamiento correcto en el tiempo requerido se necesita que el sistema sea predecible (determinista).<br />Usado típicamente para aplicaciones integradas, normalmente tiene las siguientes características:<br />No utiliza mucha memoria<br />Cualquier evento en el soporte físico puede hacer que se ejecute una tarea<br />Multi-arquitectura (código portado a cualquier tipo de CPU)<br />Muchos tienen enfermedades predecibles para eventos electrónicos<br />*Se caracterizan por presentar requisitos especiales en cinco áreas generales:<br />ð Determinismo<br />ð Sensibilidad<br />ð Control del usuario<br />ð Fiabilidad<br />ð Tolerancia a los fallos<br />Diseño<br />Hay dos diseños básicos:<br />Un sistema operativo guiado por eventos sólo cambia de tarea cuando un evento necesita el servicio.<br />Un diseño de compartición de tiempo cambia de tareas por interrupciones del reloj y por eventos.<br />El diseño de compartición de tiempo gasta más tiempo de la UCP en cambios de tarea innecesarios. Sin embargo, da una mejor ilusión de multitarea. Normalmente se utiliza un sistema de prioridades fijas.<br />Uno de los algoritmos que suelen usarse para la asignación de prioridades es el Rate-Monotonic Schedule. Si el conjunto de tareas que tenemos es viable con alguna asignación de prioridades fijas, también es viable con el Rate-Monotonic Schedule, donde la tarea más prioritaria es la de menor periodo. Esto no quiere decir que si no es viable con Rate-Monotonic Schedule no sea viable con asignaciones de prioridad variable. Puede darse el caso de encontrarnos con un sistema viable con prioridades variables y que no sea viable con prioridades fijas.<br />Algunos Ejemplos<br />MaRTE OS<br />EasyTasks<br />QNX<br />LynxOS<br />RedHat Embedded Linux<br />eCos (Linux)<br />SOOS<br />Ubuntu Studio (Linux)<br />VxWorks<br />Windows CE<br />Linchos<br />UNIX (Some)<br />DuinOS<br />RTAI<br />Symbian<br />Ejemplos:<br />Cámaras de seguridad<br />Sistemas de tiempo real<br />Los sistemas de tiempo real se utilizan principalmente en la industria y son sistemas diseñados para funcionar en entornos con limitaciones de tiempo. Un sistema de tiempo real debe tener capacidad para operar en forma fiable según limitaciones de tiempo específicas; en otras palabras, debe tener capacidad para procesar adecuadamente la información recibida a intervalos definidos claramente (regulares o de otro tipo). <br />Estos son algunos ejemplos de sistemas operativos de tiempo real: <br />OS-9; <br />RTLinux (RealTime Linux); <br />QNX; <br />VxWorks. <br />Sistemas de multiprocesos<br />Un sistema operativo se denominade multiprocesos cuando muchas quot;
tareasquot;
(también conocidas como procesos) se pueden ejecutar al mismo tiempo. <br />Las aplicaciones consisten en una secuencia de instrucciones llamadas quot;
procesosquot;
. Estos procesos permanecen activos, en espera, suspendidos, o se eliminan en forma alternativa, según la prioridad que se les haya concedido, o se pueden ejecutar en forma simultánea. <br />Un sistema se considera preventivo cuando cuenta con un programador (también llamado planificador) el cual, según los criterios de prioridad, asigna el tiempo de los equipos entre varios procesos que lo solicitan. <br />Se denomina sistema de tiempo compartido a un sistema cuando el programador asigna una cantidad determinada de tiempo a cada proceso. Éste es el caso de los sistemas de usuarios múltiples que permiten a varios usuarios utilizar aplicaciones diferentes o similares en el mismo equipo al mismo tiempo. De este modo, el sistema se denomina quot;
sistema transaccionalquot;
. Para realizar esto, el sistema asigna un período de tiempo a cada usuario. <br />Sistemas de multiprocesadores<br />La técnica de multiprocesamiento consiste en hacer funcionar varios procesadores en forma paralela para obtener un poder de cálculo mayor que el obtenido al usar un procesador de alta tecnología o al aumentar la disponibilidad del sistema (en el caso de fallas del procesador). <br />Las siglas SMP (multiprocesamiento simétrico o multiprocesador simétrico) hacen referencia a la arquitectura en la que todos los procesadores acceden a la misma memoria compartida. <br />Un sistema de multiprocesadores debe tener capacidad para gestionar la repartición de memoria entre varios procesadores, pero también debe distribuir la carga de trabajo. <br />Maleabilidad.Políticas de planificación de trabajos a largo plazo.Políticas de planificación de procesadores a corto/medio plazo.Coordinación entre niveles.Gestión de memoria: colocación de páginas.<br />MULTITRAMO<br />Permite que diversas partes de un solo programa funcionen al mismo tiempo.<br />Ej: <br />