Sistemas Operativos de multitarea
Un
sistema operativo multiproceso o multitarea es aquel que permite ejecutar
varios procesos de forma concurrente, la razón es porque actualmente nuestras
CPUs sólo pueden ejecutar un proceso cada vez. La única forma de que se
ejecuten de forma simultánea varios procesos es tener varias CPUs (ya sea en
una máquina o en varias, en un sistema distribuido).
La magia de un sistema operativo multiproceso reside en la operacíon llamada cambio de contexto. Esta operación consiste en quitar a un proceso de la CPU, ejecutar otro proceso y volver a colocar el primero sin que se entere de nada.
Tipos de Multitarea:
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 interrumpe y no cede la CPU al sistema operativo, todo el sistema estará trabado, es decir, sin poder hacer nada. 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 sería Windows hasta la versión 2000.
Preferente
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 períodos de tiempo, pero el resultado final es prácticamente igual que si estuviesen ejecutándose al mismo tiempo. Ejemplos de sistemas de este tipo serían Unix y sus derivados (FreeBSD, Linux), VMS y derivados, AmigaOS, Windows NT.
Real
Sólo 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 preferente. Ejemplos de sistemas operativos con esa capacidad: variantes Unix, Linux, Windows NT, Mac OS X, etc.
La magia de un sistema operativo multiproceso reside en la operacíon llamada cambio de contexto. Esta operación consiste en quitar a un proceso de la CPU, ejecutar otro proceso y volver a colocar el primero sin que se entere de nada.
Tipos de Multitarea:
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 interrumpe y no cede la CPU al sistema operativo, todo el sistema estará trabado, es decir, sin poder hacer nada. 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 sería Windows hasta la versión 2000.
Preferente
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 períodos de tiempo, pero el resultado final es prácticamente igual que si estuviesen ejecutándose al mismo tiempo. Ejemplos de sistemas de este tipo serían Unix y sus derivados (FreeBSD, Linux), VMS y derivados, AmigaOS, Windows NT.
Real
Sólo 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 preferente. Ejemplos de sistemas operativos con esa capacidad: variantes Unix, Linux, Windows NT, Mac OS X, etc.
Sistemas Operativos multiusuarios
Un Sistema Operativo es el software encargado de
ejercer el control y coordinar el uso del hardware entre diferentes programas
de aplicación y los diferentes usuarios.El sistema operativo se encarga
de crear el vínculo entre los recursos materiales, el usuario y las
aplicaciones (procesador de texto, videojuegos, etcétera). Cuando un programa
desea acceder a un recurso material, no necesita enviar información específica
a los dispositivos periféricos; simplemente envía la información al sistema operativo, el cual la transmite
a los periféricos correspondientes a través de su driver (controlador). Si no
existe ningún driver, cada programa debe reconocer y tener presente la
comunicación con cada tipo de periférico
Sistemas Operativos multiprocesador
Un sistema operativo multiproceso se refiere al número de
procesadores del sistema, que es más de uno y éste es capaz de usarlos todos
para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de
dos formas: simétrica o asimétricamente. Cuando se trabaja de manera
asimétrica, el sistema operativo selecciona a uno de los procesadores el cual
jugará el papel de procesador maestro y servirá como pivote para distribuir la
carga a los demás procesadores, que reciben el nombre de esclavos. Cuando se
trabaja de manera simétrica, los procesos o partes de ellos (threads) son
enviados indistintamente a cualquiera de los procesadores disponibles,
teniendo, teóricamente, una mejor distribución y equilibrio en la carga de
trabajo bajo este esquema.
Sistemas Operativos multitramo
Multitramo:
Permite que diversas partes de un solo programa funcionen al mismo tiempo.
tiempo real: Es aquel sistema que interactúa activamente con un entorno con dinámica conocida en relación con sus entradas, salidas y restricciones temporales, para darle un correcto funcionamiento de acuerdo con los conceptos de estabilidad, controlabilidad y alcanzabilidad.
tiempo real: Es aquel sistema que interactúa activamente con un entorno con dinámica conocida en relación con sus entradas, salidas y restricciones temporales, para darle un correcto funcionamiento de acuerdo con los conceptos de estabilidad, controlabilidad y alcanzabilidad.
Básicamente los sistemas de tiempo
real se definen como sistemas informáticos que tienen la capacidad de
interactuar rápidamente con su entorno físico, el cual puede realizar funciones de supervisión o control para su mismo beneficio.
Todos los sistemas de tiempo real
tienen la facultad de ejecutar actividades o tareas en de intervalos de
tiempo bien definidos.
Todas las tareas son ejecutadas
inmediatamente en una forma concurrente, esto es para sincronizar el
funcionamiento del sistema con la simultaneidad de acciones que se presentan en
el mundo físico.
En los sistemas de tiempo real los
intervalos de tiempo en que se ejecutan las tareas se definen por un esquema
de activación y por un plazo de ejecución. En lo que respecta al
esquema de activación puede ser periódico, es decir en intervalos
regulares, o también puede ser aperiódico, es decir, en respuesta a
sucesos externos que ocurren de forma irregular.
La mayoría de los STR son utilizados
cuando existen requerimientos de tiempo muy rígidos en las operaciones o en el flujo de datos, generalmente son requeridos como
sistemas de control en una aplicación dedicada.
La eficiencia de los STR no solo depende de la
exactitud de los resultados de cómputo, sino también del momento en que los
entrega. La predictibilidad es su característica principal de este tipo de
sistemas.
Este tipo de sistemas se caracterizan
por tener que producir una salida, como respuesta a una entrada, en un tiempo
determinado. El intervalo de tiempo que se presenta entre la entrada y la
salida debe ser muy pequeño para que la respuesta temporal del sistema sea
aceptable.
Cuando se diseña un sistema de tiempo
real se pasa por varias fases:
1.- Se identifican todas las tareas
que se tienen que realizar y también se identifican las restricciones
temporales que se pretenden cumplir.
2.- Posteriormente se codifican los programas que ejecutarán las tareas
3.- Posteriormente se pasa a medir el
tiempo de cómputo de cada tarea y se realiza un análisis de planificabilidad.
Este análisis consiste en aplicar
unas pruebas al conjunto de tareas de tal forma que
si éstas pasan el test entonces se puede garantizar que ninguna
tarea perderá su plazo de ejecución. De lo contrario si no pasan el test se
tiene que volver a comenzar desde el principio, es decir, comenzar de nuevo,
utilizando otro procesador más potente o utilizando otros algoritmos para implementar las tareas.
No hay comentarios:
Publicar un comentario