5. Clasificación de los Sistemas Operativos
Transcripción
5. Clasificación de los Sistemas Operativos
ISI – Sistemas Operativos – Resumen Capitulo 5 5. Clasificación de los Sistemas Operativos • Según el Hardware Subyacente: Gran Equipo: uso intensivo, gran administración, autogestión, varias formas de acceso, multipropósito, Pequeño Equipo: uso menos intensivo, administración sencilla, tendencia a un tipo de uso y acceso • Según el Método Primario de Acceso: Sistemas Conversacionales Sistemas de Tiempo Real Sistemas de Procesamiento en Lotes • Según las Características del Usuario: Sists de Programación Computadoras Personales (PC) Sistemas de Consultas • Según la sofisticación de las funciones particulares: ∃ una relación entre esto y el tamaño de la máquina, por ejemplo: un Sistema de multiprogramación básica sugiere que el hardware subyacente no es suficientemente avanzado para se convenientemente explotado con técnicas avanzadas de administración dinámica. • Clasificación Tradicional: SO DE TIEMPO REAL: Sus características son: 1. La actividad de procesamiento es disparada por eventos aleatorios externos. 2. Las actividades de procesamiento deben ser completadas dentro de un estrecho margen de tiempo. 3. La utilización del hardware es menos importante que la capacidad de respuesta al medio, aún en momentos de carga máxima. 4. Suele usarse como dispositivo de control en una aplicación dedicada. 5. No hay almacenamiento secundario, los datos se almacenan en memoria o en ROM. 6. Planificación expropiativa basada en prioridades. Los procesos de mayor prioridad expropian la ejecución de procesos de prioridad inferior. 7. La conveniencia del usuario es una preocupación secundaria 8. Proporcionar formas sofisticadas de gestión de interrupciones y de almacenamiento de E/S; llamadas al sistema. 9. Mínima intervención humana (modificación de parámetros, violación de limites, desperfectos) 10. El recurso crítico puede ser la CPU o los canales. 11. Pueden tener memoria virtual pero casi nunca se aplica 12. Es conveniente para estos sistemas la asignación estática ya que son más veloces. 13. Están desarrollados para atender la ocurrencia de determinados eventos. 14. Relativa pobreza de los algoritmos de administración de recursos. Se subclasifican en: • Adquisición de datos: datos adquiridos y almacenados en tiempo real para un uso posterior • De control a lazo abierto: el sistema toma los datos del proceso externo, los procesa y los muestra a un operador quien toma las decisiones. • De control a lazo cerrado: el sistema adquiere los datos y toma las decisiones (sin intervención humana). Atributos de un computador que lo hacen un buen procesador en tiempo real: ISI – Sistemas Operativos – Resumen Capitulo 5 1. Diseño del manejo y análisis de las interrupciones (ya que deben responder a las interrupciones externas rápidamente) 2. Diseño de mecanismos de conmutación de tareas (ya que deben disparar procesos muy rápidamente) 3. Flexibilidad de sus mecanismos para determinar intervalos de tiempo y la hora real (ya que se necesita mucha precisión). Uso de múltiples procesadores en Tiempo real: se divide el hard en dos, dedicando una computadora con características adecuadas a manejar el proceso externo en tiempo real (front-end procesor) y otro sin dichas características a los procesos de cálculos y almacenamientos. La multiplicidad se usa p’ lograr > confiabilidad y/o p’ distribuir funciones. Software: 1. Estructura “Event-Driven” o “Queve-Driven”, es decir el sistema selecciona a los programas como resultado de una señal externa de determinada características. 2. Corazón es el”Queve-Manager” que cumple con las funciones del monitor, o sea recibe o solicita las señales del proceso externo, las analiza y hace ejecutar un programa que procesa esa señal. La aplicación tiene el control del equipo, se desprende de la CPU al finalizar su ejecución o después del tiempo fijado por el Queve-Manager. 3. Simples mecanismos de conmutación de la CPU. 4. No se intenta balancear el consumo de los recursos. 5. Los programas de aplicación comparten la responsabilidad de la integridad. 6. La programación y el desarrollo del sistema separados de la fase operacional del mismo se utilizan Cross-Compiler o Cross-Assember (programas que ejecutados en una máquina generan código para otra). Una generalización de estos programas es el Meta-Assembler que puede generar códigos para cualquier arquitectura que le sea previamente descripta. 7. Información en línea. Todos los programas (o la gran mayoría en memoria) Observación: El mantenimiento de estados de control y del concepto de instrucciones privilegiadas representa una sobrecarga al sistema. Se resigna un buen control para obtener mayor velocidad. PROCESAMIENTO BATCH: 1. Ejecutan bloques de demandas sin relación entre sí. 2. Permite la separación de las tareas de programación y operación debido a que permite al programador desarrollar su programa, enviar el “lote de tarjetas” y juntarse con los resultados después de un tiempo (TAT=turn-around-time) el cual debe ser lo mas corto posible. Objetivos: 1. Aumentar la productividad del programador (lo libera de tiempos de espera frente a al máquina y le permite organizar su trabajo durante el TAT). 2. Aumentar la productividad del equipo (troughtput), disminuyendo el tiempo de transición entre trabajos. 3. Aumentar la eficiencia del programador. SERIE SIMPLE: El sistema atiende los trabajos en la secuencia en que se presentaban para su ejecución, por lo tanto el “ordenamiento” se hace a mano. Los conceptos que introdujo fueron: 1. Control Stream ISI – Sistemas Operativos – Resumen Capitulo 5 2. 3. 4. 5. Soporte de E/S Reubicación de programas Independencia de periféricos Encapsulamiento de la máquina por medio de su SO y el paquete de software. Fortran Monitor System (FMS): 1. Sólo admite lenguaje Fortran. 2. Compilaciones y ejecuciones consecutivas. 3. Aceptaba directivas sofisticadas de “depuración”(debugging) y permitía realizar vuelcos. 4. Programa en ejecución tenia completo control del hard. No existen estado de control (modo monitor) y operaciones privilegiadas. Tampoco funciones del monitor residente. 5. Asignaciones de dispositivos de E/S mantenidas en una tabla por el compilador, para cambiar las asignaciones era necesario usar el editor. 6. Compilación absoluta 7. Dispositivos comunes para los Job Stream 8. Cintas comunes a todos los trabajos (simplificando el tiempo de montaje) IBSYS - IBJOB: 1. Admite lenguajes Fortran, Cobol y Map(Macro Assembly Program). 2. Introdujo funciones del monitor residente para soporte de E/S. 3. Tablas de asignaciones de periféricos manipuladas por el operador mediante tarjetas de control del IBSYS (paso importante hacia la independencia de dispositivos) 4. Asignación estática de memoria y periféricos y al mismo tiempo. 5. Compilación relativa 6. Programas linkeditados IBSYS es residente y contiene: • Funciones residentes para soporte de E/S (o sea que maneja las E/S) • Posibilidad de almacenamiento • Interfase para el IBJOB IBJOB contenía: • Intérprete de sentencias de control que permitía seleccionar el compilador. • Cargador responsable de la asignación de dispositivos del programa, de la carga y de subrutinas del sistema solicitadas por el programa. • Biblioteca de rutinas de control de operaciones de E/S (IOCS=Input Output Control System). MULTIPROGRAMACION BATCH: Fue importante la aparición de los discos rígidos ya que presentaron 4 posibilidades fundamentales: • Mayor variedad de dispositivos de almacenamiento masivo. • Capacidad de memoria auxiliar On-Line y la necesidad de organizarla y administrarla para una utilización eficiente. • Posibilidad de direccionamiento directo en la memoria auxiliar. • Aparición de una cola interna de trabajos ⇒ Permitió que el job stream fuera internalizado de manera que las funciones de ordenamiento pasen a formar parte del SO (en serie simple se hacía a mano). Esta cola se hace accesible a un ordenador (Scheduler) que puede buscar el trabajo en espera que tenga mayor prioridad o el que más convenga. Facilidades brindadas por este nuevo hardware: • Aparición y/o mejoramiento de conceptos de interrupción. • Instrucciones privilegiadas. • Mecanismos de protección. ISI – Sistemas Operativos – Resumen Capitulo 5 MULTIPROGRAMACION BASICA Características: 1. Planificación Off-Line 2. Administración rígida de memoria con particiones fijas o redefinidas por el operador.(asignación estática). La memoria es el recurso crítico. 3. Gestión de conmutación de la CPU con mínimo esfuerzo por balancear el uso de los recursos, o sea que la administración de la CPU es “simple” 4. Asignación estática de archivos y periféricos (válidos durante toda la vida activa del programa). 5. Las primeras versiones permitían la ejecución concurrente de un predeterminado número fijo de procesos que compartían el sistema en un rígido medio de asignación de recursos. La memoria estaba divida en particiones en el momento de la instalación. Los compiladores y ensambladores traducían los proceso para ser ejecutados en una partición determinada (compilación absoluta). Definían múltiples máquinas independientes (una en cada partición) que eran atendidas independientemente, compartiendo periféricos y el uso de la CPU, las colas de trabajo eran creadas para cada partición (si la compilación es relativa existe una única cola) y las funciones de ordenamiento se corrían en forma independiente de cada partición. Presentaban inconvenientes por la prepartición de memoria, ya que tiende a producir una considerable subutilización de la memoria debido a que se generan programas más pequeños que el tamaño de las particiones, y como se preasignan los programas a determinadas particiones, puede darse el caso de que un programa esté esperando a la cola para el cual fue asignado mientras puede haber otras inactivas por falta de carga; además aumentan los costos de programación y disminuye la productividad de los programadores que tiene como efectos nocivos la distorsión en la estructura del programa ya que la distribución de funciones, en lugar de hacerse acorde a la lógica, se hace en función del tamaño de las particiones. El lenguaje de Control de Job (JCL) provee un soporte mínimo del concepto de independencia de dispositivos. A medida que el hardware se fue expandiendo, pudieron verse los siguientes avances: 1. Posibilidad de redefinir la partición desde la consola del operador. 2. Ensamblado y compilación de programas reasignables (permitiendo la ejecución de un programa en cualquier partición de tamaño adecuado) 3. Asignación simbólica de dispositivos a través de sentencias de control. 4. Mecanismos de soportes avanzados con facilidades para centralizar el Spooling. Recurso crítico (o límite): Es el recurso más usado. Aquel que debido a su uso intensivo está saturado siendo que hay capacidad ociosa de los demás recursos. MULTIPROGRAMACIÓN AVANZADA: La principal diferencia entre multiprogramación básica y avanzada, está dada por el grado en que los SOs administran los recursos del sistema. 1. Son sistemas desarrollados como soporte de grandes máquinas a ser usadas en ámbitos donde la carga de trabajo es impredecible y diversa. 2. Se desarrollan para atender tanto el desarrollo de programación, como el procesamiento. 3. Proveen grandes posibilidades de administración de recursos 4. Brindan importantes funciones que amplían las posibilidades de programación. 5. Proveen además un lenguaje de control considerablemente expandido en cuanto a su poder expresivo. 6. Cierto grado de administración dinámica de la memoria (adquisición y liberación dinámica de memoria). 7. Cierta posibilidad de compartir códigos, diseñando áreas especiales para la residencia en memoria de determinadas rutinas de control. 8. Elaboración de los sistemas de bibliotecas con administración, acceso y actualización de archivos On-line. 9. Desarrolladas estructuras de envíos de trabajos (job-submission). ISI – Sistemas Operativos – Resumen Capitulo 5 10. Dependencia de la gestión del operador, este tiene capacidad para determinar el nivel de multiprogramación, cambiar prioridades, cancelar trabajos y colocar trabajos en las colas de espera, aunque actualmente la tendencia es disminuir la intervención del operador. 11. Técnicas más elaboradas de los mecanismos de administración de la CPU. 12. Planificación On-Line (la maneja el SO) 13. Extienden su memoria física menor por medio de su memoria virtual, conservando con una mínima perturbación la estructura e interfaces de los sistemas anteriores. TIEMPO COMPARTIDO: La intención principal es distribuir la capacidad de procesamiento entre un conjunto de usuarios asociados c/u a una terminal de E/S, brindando a c/u la imagen de tener una computadora “dedicada” p’ soportar sus demandas de servicios. 1. Los usuarios pueden interactuar con cada programa mientras se ejecuta. Ofrece comunicación en línea entre el usuario y el sistema. 2. Sistema de archivos en línea 3. Los trabajos suelen estar formados por varias acciones breves, con resultados impredecibles. Tiempo de respuesta breve. 4. Usa la planificación de la CPU y la multiprogramación para dar a cada usuario, que tiene su programa en memoria, una pequeña porción de la computadora. 5. Como el sistema pasa rápidamente de un usuario al siguiente cada uno tiene la sensación de que cuenta con su propia computadora. 6. Requiere: administración de memoria, protección y administración de CPU, administración de disco. 7. Los objetivos principales son brindar un servicio efectivo en cuanto a la disponibilidad y una respuesta eficiente a los requerimientos por lo que la efectiva utilización del hardware puede verse afectada. Los sistemas de tiempo compartido pueden ser: Sistemas Orientados al Desarrollo de programas: Deben incluir: 1. Un conjunto de comandos para la activación, testeo y modificación de programas. 2. Sistema de administración de archivos con mecanismos de protección, facilidades para compartirlos y mantenimiento de objetos (programas, datos, stream de control, etc.). 3. Uno o más lenguajes de programación. 4. Una interface para procesamiento que puede superponerse con el lenguaje de comandos. 5. Estos sistemas no necesariamente deben estar asociados a un sistema de tiempo compartido. Sists Orientados al Procesamiento de transacciones: 1. No son sistemas de tiempo compartido en el estricto sentido de la palabra: en un sistema de procesamiento de transacciones es común que se permita procesar la transacción hasta su finalización, o por un período de tiempo determinado. Si el procesamiento no se completa en ese período, la transacción se aborta (en lugar de suspenderla como en tiempo compartido). 2. Se asemejan a los de tiempo real por estar diseñados para atender a eventos y en la relativa pobreza de sus algoritmos 3. El proceso de ejecución es relativamente sencillo y consiste en recibir y analizar un mensaje proveniente de una terminal, transferir dicho mensaje a un programa que lo procesa, algunas referencias a bases de datos en línea para preparar la información necesaria para responder el mensaje y direccionar la respuesta hacia la terminal. 4. Características que los diferencian de los sistemas de multiprogramación en lotes: 1. Manejo de bases de datos integradas con un sistema sencillo de acceso. 2. Facilidad de telecomunicaciones como parte integrante del SO. 3. El sistema de base no provee lenguaje de control ni facilidades para el desarrollo de programas. 4. El principal constituyente del SO, es un programa de ejecución cerrada (loop). 5. Ámbito de procesamiento simple. ISI – Sistemas Operativos – Resumen Capitulo 5 6. La asignación de memoria es realizada de acuerdo a demandas en bloques de memoria de tamaño fijo. SO MULTIPROPÓSITOS: El operador como lo hace funcionar estableciendo parámetros previamente Características: 1. Administración dinámica de recursos 2. Soporte de memoria virtual 3. Permiten distintas formas de acceso. PROCESAMIENTO DISTRIBUIDO: 1. Constituido por varios procesadores (nodos), c/u con funciones particulares que combinadas brindan la totalidad del sistema. 2. Los SOs y el hardware de c/nodo, no necesariamente deben ser iguales (en cuanto a tamaño y/o fabricante). 3. Su procesamiento se puede aplicar tanto al procesamiento de transacciones como a los sistemas de procesamiento en lotes. 4. Se desea independizar a las aplicaciones de la ubicación física de los datos y de los programas Estos procesos corren sobre un Sistema Distribuido montado en una Red de Procesamiento. SISTEMAS DISTRIBUIDOS: 1. Es una colección de sist. informáticos autónomos capaces de comunicación y cooperación mediante hard y software. 2. Proporciona una abstracción de máquina virtual a los usuarios. 3. Pueden ser: - Sistema fuertemente acoplado: comparten la memoria y un reloj (ideal para procesamiento distribuido) - Sistema débilmente acoplado: no comparten ni memoria ni reloj, se comunican a través de ≠ líneas de comunicación (a éstos se los conoce como sistemas distribuidos) 4. Ventajas: - Compartimiento de recursos - Aceleración de los cálculos - Confiabilidad - Comunicación SISTEMAS MONOUSUARIOS: 1. Carecen de protección al SO. 2. Los SO no son ni multiusuario ni multitarea. 3. Objetivos: Comodidad y rapidez de respuesta. Tipos de acceso: En general, podemos definir: • En batch: Lenguaje de control = Lenguaje de control • En On-line: Lenguaje de control = Lenguaje de comandos Existen distintos tipos de acceso: 1. Acceso organizado por el operador. Forma más antigua de acceso. Se utilizan en condiciones especiales (creación de un SO). Ordenador humano con periodos fijo de uso. Sin SO. 2. Acceso local en modo batch. Los trabajos se ejecutan automática y secuencialmente (puede haber resecuenciamiento). La demanda de servicios se realiza enviando el control stream (se eliminó la interfase humana). SO de Serie Simple. ISI – Sistemas Operativos – Resumen Capitulo 5 3. Acceso remoto en modo batch. Actúa por demandas desde terminales fuera del centro de cómputos utilizando colas de espera . SO de Multiprogramación Básica. 4. Acceso interactivo en modo batch. El usuario realiza requerimientos dinámicamente. Disponde de lenguaje de manipulación de archivos y bibliotecas, también puede ingresar sentencias de lenguajes de programación y recibir una validación línea por línea. El usuario envía el control stream al ámbito de procesamiento y pierde el control sobre el trabajo, cuando el trabajo está listo, sólo ve los resultados. SO de Multiprogramación Avanzada. 5. Acceso interactivo para programación. Es posible intercalar actos de programación y ejecución por lo que los programas no necesitan estar completos y las entradas de datos y ejecución se fusionan. Fueron similares a los anteriores en sus orígenes cuando se requería que la totalidad de un programa estuviese grabado para su ejecución. SO de Tiempo Compartido. 6. Acceso a un procesamiento distribuido. Permite a un usuario acceder a procesos o información de otras computadoras. SO de Procesamiento Distribuido.