Diferencia entre revisiones de «Sistemas Operativos de Multiprogramación»

De Wikitronica
Saltar a: navegación, buscar
Línea 55: Línea 55:
 
Podemos así subdividir un sistema en diversos estratos que generalmente son implementados:
 
Podemos así subdividir un sistema en diversos estratos que generalmente son implementados:
  
*Núcleo: con frecuencia llamado Kernel, realiza opetaciones proporcionadas directamente sobre el hardware, gestionando los procesos en funcionamiento mediante estructuras de datos que representan el estado del sistema. Es aquí donde se encuentra el planificador el cual se encarga de determinar que proceso se debe ejecutar al finar la tarea actual. Este scheduler se encarga primordualmente de cambiar el contexto de ejecución, lo que incluye guardar el estado en proceso y restaurar el de llegada. Por otro lado, este nivel se encarga de gestionar la interrupaciones y proporcionar las facilidades para la conexión de las rutinas de servicio a las interrupciones de hardware. También se puede proporcionar en este nivel los mecanismos básicos para la sincronización entre procesos y comunicación como semáforos o mensajes.
+
* Núcleo: con frecuencia llamado Kernel, realiza opetaciones proporcionadas directamente sobre el hardware, gestionando los procesos en funcionamiento mediante estructuras de datos que representan el estado del sistema. Es aquí donde se encuentra el planificador el cual se encarga de determinar que proceso se debe ejecutar al finar la tarea actual. Este scheduler se encarga primordualmente de cambiar el contexto de ejecución, lo que incluye guardar el estado en proceso y restaurar el de llegada. Por otro lado, este nivel se encarga de gestionar la interrupaciones y proporcionar las facilidades para la conexión de las rutinas de servicio a las interrupciones de hardware. También se puede proporcionar en este nivel los mecanismos básicos para la sincronización entre procesos y comunicación como semáforos o mensajes.
 +
 
 +
* I/O básica: conformado por las instruciones de bajo nivel que premiten la implementación de los bolques de datos de la memoria secundaria. Proporciona una abstración de almacenamiento como una matriz lineal de bloques de datos.
 +
 
 +
* Gestión de memoria: en este nivel se asigna memoria principal a los procesos a ejecutar y se librea cuando no se necesite más. Es aquí donde se de lleva a cabo la implementación de la memoria virtual, que da al programadar la ilusión de poseer un basto recurso de memoria de almacenamiento. Estos módulos manejan las interrupciones de hardware que señalan los intentos direcionar los datos que no se encuentran en la memoria principal; en tal caso los bloques de datos no encontrados son traídos desde el almacenamiento secundario usando las facilidades del nivel anterior de I/O básica.
 +
 
 +
* Sistema de archivos y dispositivos: proporciona las facilidades para el almacenamiento durante largo tiempo y la manipulación de archivo. Posee un nivel más sofisticado en la asignación de espacio y acceso a los datos en almacenamiento secundario que el nivel de I/O básico. En este nivel, los archivos no se modifican mediante el direccionamiento de los blques de datos ya que la lectura y escritura de datos se hace por medio de direcciones relativas al archivo a modificar. Así también, en este nivel se  puentean y gestionan los dispositivos externos y perifericos mediante una vista uniforme porporcionada por una interfaz estándar que también se extiende a una facilidad de comunicación entre progamas, llamada encauzamiento (pippe), que es esencialmente un canal de comunicación virtual de un sentido.
 +
 
 +
* Intérprete del lenguaje de órdenes: este nivel proporciona la interfaz entre los usuarios interactivos y el sistema operativo. Los módulos de este nivel, emplean las facilidades proporcionadas por niveles bajos para aceptar líneas de órdenes desde los terminal. Entonces se reconocen estas líneas de entrada para separar las órdenes de los parámetros e identificar el tipo de servicio requerido.

Revisión del 22:14 16 nov 2012

También llamado sistemas operativos multitarea o multiproceso, se distingue por la habilidad de soportar dos o más procesos activos simultáneamente. El término multiprogramación denota un sistema operativo que, además de soportar procesos concurrentes múltiples, permite que residan simultáneamente en la memoria primaria las instrucciones y los datos procedentes de dos o más procesos distintos.

El concepto de multiprogramación no se debe confundir con operación de multiproceso. Si bien el primer término emplica el último, no sucede en biceversa. La operación multiproceso es la gestión de la ottalidad de los recursos del sistema de la computadora mediante la implementación de cauce segmentado.

La multiprogramación modificó el esquema de implementación de sistemas operativos por lotes al permitir alcanzar una mayor interacción entre los usuarios y programas en ejecución, un mayor rendimiento total del sistema y la creación de sistemas dinámicos que facilitan la implementación y estandarización de nuevos programas y conexiones con sistemas externos.


Tipos de sistemas operativos de multiprogramación

Sistemas de tiempo compartido

El tiempo compartido es bastante popular en sistemas multiprogramados y multiusuarios. Estos sistemas de multiacceso dedican la mayor parte del tiempo de ejecución de un programa único de una gran applicación. Son elementos dedicados que poseen un buen tiempo de respuesta del terminal y tratan con frecuencia de proporcionar un reparto equitaqtivo del los recursos comunes para dar la ilusión a cada usuario de poseer la máquina para el mismo. Por ejemplo, cuando se carga el sistema, se hace esperar más a los usuarios con más requerimientos de proceso pedido.

El algoritmo empleado en el despacho de las actividades es único de la filosofía de estos sistemas. El mismo consiste en la ejecución de los programas con prioridad rotatoria que se incrementa con las esperas y cae después de que se dispensó el servicio. El sisetma operativo interrumpe un programa y lo pone al final de la cola de programas en espera, cuando es más largo que la fracción de tiempo definida por el sistema, para prevenir a los programas de la monopolización del procesador.

El gestor de memoria del sistema proporciona el aislamiento y protección de los programas en ejecución. Sin embargo, se puede emplear un espacio de memoria compartido controlado por el sistema operativo.

Los componentes de entrada salida se rigen por un gestor I/O que debe permitir la cooperación con múltiples usuarios y dispositivos. Debido a la lenta respuesta de los terminales humanos y la reacción o respuesta humana, el procesamiento de las interrupciones del terminal no necesitan ser críticas para el tiempo.

El gestor de archivos, por otro lado, debe proporcionar protección y control de acceso, dado a la posibilidad de concurrencia y de conflictos al acceder a los archivos.


Sistemas de tiempo real

Se usan en entornos donde se deben aceptar y procesar en tiempo breve y sin tiempos muertos un gran número de sucesos, en su mayoría externos al sistema de computadora. Son asuntos secundarios la conveniencia del usuario y la utilización de recursos.

Estos sistemas se caracterizan principalmente por encargarse de procesos que se activan al ocurrir el suceso relacionado, señalado frecuentemente por una interrupción. Se consigue el multiproceso planificando los procesos independientes unos de otros. Se asigna a cada proceso un cierto nivel de prioridad que corresponde a la importancia relativa de los sucesos que sirve. El procesador está normalmente asignado al proceso con más alta prioridad entre los que están listos para ejecutarse. Esta forma de planificación se llama planificación basada en la prioridad preferente.

A diferencia de los sistemas de tiempo compartido, el gestor de memoria está diseñado para tener un menor tiempo de respuesta debido a que los programas generalmente residen permanetemente en la memoria ya que usualmente son sistemas estáticos no diseñados para permitir la implementación de programas externos.

El tiempo crítico del gestor de dispositivo es una de las características principales de los sistemas de tiempo real. Además de las formas sofisticadas proporcionadas de gestión de interrupciones y almacenamiento intermedio, estos sistemas proporcionan frecuentemente llamadas del sistema que permiten a los procesos de usuario conectars directamente a vectores de intrrupción y sucesos de servicio. Desta forma, los programas pueden seder espacio en procesador a otras ejecuciones con el levantamiento de una interrupción.

Generalmente estos sistemas de operación no poseen ningún tipo de almacenamiento secundario, sólamente en aquellos sistemas de grandes magnitudes en los cuales si es requerido se necesita la implementación de un gestor de archivos que como en otros tipos de sistemas operativos debe manejar protección y control de acceso.


Sistemas operativos combinados

Lamentablemente el uso de sistemas operativos de tiempo son demasiado específicos y por lo tanto, a pesar de su gran utilidad en sistemas estáticos de gran escala, no satisfacen la necesidades de los usuarios en computadoras personales y emergentes dispositivos portátiles. Por dicha razón surge la necesidad de implementar sistemas operativos combinados que emplean las ventajas de los sistemas operativos de multiprogramación conjuntamente con los sistemas operativos por lotes.

Los sistemas combinados se caracterizan por poseer bloques o lotes que se ejecutan con una menor prioridad que el resto de las aplicaciones. Así se logra el uso completo del procesador al eliminar los tiempos muertos o de espera.


Diseño e implementación de los sistemas operativos

Requerimientos funcionales

  • Los procesos se crean en respuesta a los requerimientos explícitos o implícitos de los usuarios.
  • Los procesos emiten peticiones de los servicios y recursos del sistema.
  • El sistema operativo proporciona funciones de supervisión y control para la gestión de los procesos, tales como la creación y la retirada.
  • La gestión de la memoria consiste principalmente en la asignación de la memoria física a los requerimientos de los procesos.
  • Llamadas a sistema por parte de los usuarios.
  • Integridad de los archivos ante malfunciones del equipo y caidas del sistema.
  • Implentación de archivos comunes y documentos compartidos entre las distintas tareas.


Implementación El desarrollo de sistemas operativos de gran complejidad, como cualquier proyecto de programación de grandes extensiones, aunque posible generalmente termina en el fracaso y el desastre. La implementación de subconjuntos del sistema, por otro lado, permite la elaboración de estratos de jerarquía que permiten obtener una mayor abstración de programación, confiabilidad en las etapas inferiores, así como también la habilidad de modificar secciones por separado o la inclución de nuevos elementos o custumización del ambiente de usuario o interface.

Podemos así subdividir un sistema en diversos estratos que generalmente son implementados:

  • Núcleo: con frecuencia llamado Kernel, realiza opetaciones proporcionadas directamente sobre el hardware, gestionando los procesos en funcionamiento mediante estructuras de datos que representan el estado del sistema. Es aquí donde se encuentra el planificador el cual se encarga de determinar que proceso se debe ejecutar al finar la tarea actual. Este scheduler se encarga primordualmente de cambiar el contexto de ejecución, lo que incluye guardar el estado en proceso y restaurar el de llegada. Por otro lado, este nivel se encarga de gestionar la interrupaciones y proporcionar las facilidades para la conexión de las rutinas de servicio a las interrupciones de hardware. También se puede proporcionar en este nivel los mecanismos básicos para la sincronización entre procesos y comunicación como semáforos o mensajes.
  • I/O básica: conformado por las instruciones de bajo nivel que premiten la implementación de los bolques de datos de la memoria secundaria. Proporciona una abstración de almacenamiento como una matriz lineal de bloques de datos.
  • Gestión de memoria: en este nivel se asigna memoria principal a los procesos a ejecutar y se librea cuando no se necesite más. Es aquí donde se de lleva a cabo la implementación de la memoria virtual, que da al programadar la ilusión de poseer un basto recurso de memoria de almacenamiento. Estos módulos manejan las interrupciones de hardware que señalan los intentos direcionar los datos que no se encuentran en la memoria principal; en tal caso los bloques de datos no encontrados son traídos desde el almacenamiento secundario usando las facilidades del nivel anterior de I/O básica.
  • Sistema de archivos y dispositivos: proporciona las facilidades para el almacenamiento durante largo tiempo y la manipulación de archivo. Posee un nivel más sofisticado en la asignación de espacio y acceso a los datos en almacenamiento secundario que el nivel de I/O básico. En este nivel, los archivos no se modifican mediante el direccionamiento de los blques de datos ya que la lectura y escritura de datos se hace por medio de direcciones relativas al archivo a modificar. Así también, en este nivel se puentean y gestionan los dispositivos externos y perifericos mediante una vista uniforme porporcionada por una interfaz estándar que también se extiende a una facilidad de comunicación entre progamas, llamada encauzamiento (pippe), que es esencialmente un canal de comunicación virtual de un sentido.
  • Intérprete del lenguaje de órdenes: este nivel proporciona la interfaz entre los usuarios interactivos y el sistema operativo. Los módulos de este nivel, emplean las facilidades proporcionadas por niveles bajos para aceptar líneas de órdenes desde los terminal. Entonces se reconocen estas líneas de entrada para separar las órdenes de los parámetros e identificar el tipo de servicio requerido.