Professional Documents
Culture Documents
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
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.
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.
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.
Planificación de memoria sencilla, generalmente se divide en dos: parte residente del S.O.
y programas transitorios.
Determinismo
Sensibilidad
Fiabiidad
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.
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.
Uso de archivos secuénciales especiales que puedan acumular datos a alta
velocidad.
Primitivas para demorar tareas durante un tiempo fijo y para detenerlas y
reanudarlas.
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.
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
• 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 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
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.