RSS

jueves, 5 de noviembre de 2009

3.3.5 Planificación el Siguiente con Relación de Respuesta Máxima (HRN)

Corrige algunas de las debilidades del SJF, tales como el exceso de perjuicio hacia los procesos (trabajos) largos y el exceso de favoritismo hacia los nuevos trabajos cortos.



Es una disciplina no apropiativa.


La prioridad de cada proceso está en función no sólo del tiempo de servicio del trabajo, sino que también influye la cantidad de tiempo que el trabajo ha estado esperando ser servido.


Cuando un proceso ha obtenido la cpu, corre hasta terminar.


Las prioridades, que son dinámicas, se calculan según la siguiente fórmula, donde pr es la “prioridad”, te es el “tiempo de espera” y ts es el “tiempo de servicio”:




3.4 MULTIPROCESAMIENTO PROCESADOR

Generalidades de Multiprocesadores.

 
Un multiprocesador se define como una computadora que contiene dos o más unidades de procesamiento que trabajan sobre una memoria común bajo un control integrado.


Si el sistema de multiprocesamiento posee procesadores de aproximadamente igual capacidad, estamos en presencia de multiprocesamiento simétrico; en el otro caso hablamos de multiprocesamiento asimétrico.


Si un procesador falla, los restantes continúan operando, lo cual no es automático y requiere de un diseño cuidadoso.


Un procesador que falla habrá de informarlo a los demás de alguna manera, para que se hagan cargo de su trabajo .




Los procesadores en funcionamiento deben poder detectar el fallo de un procesador determinado.






El Sistema Operativo debe percibir que ha fallado un procesador determinado y ya no podrá asignarlo y también debe ajustar sus estrategias de asignación de recursos para evitar la sobrecarga del sistema que está degradado.







Distribución de Ciclos


Una “estructura de ciclos o de repetición” implica la repetición de una serie de proposiciones (cuerpo del ciclo) hasta que ocurre alguna condición de terminación, por ejemplo:



For i = 1 to 3
Do


El procesador secuencial realizará en secuencia lo siguiente:


• En un sistema de multiprocesamiento con tres procesadores disponibles se podrían


• Ejecutar concurrentemente.


• Reducción de la Altura del Arbol




Utilizando las propiedades asociativa, conmutativa y distributiva de la aritmética, los


compiladores pueden:




1. Detectar el paralelismo implícito en expresiones algebraicas.

2. Producir un código objeto para multiprocesadores que indique las operaciones que se pueden realizar simultáneamente.

3. Reordenar expresiones para que sean más apropiadas para la computación en paralelo.







3.5 CONCEPTOS BASICOS MULTIPROCESAMIENTO

La solución pueden ser los sistemas multiprocesadores:



 o Solución más sencilla, natural y con mejor coste-prestaciones.
 o Las mejoras en microprocesadores cada vez son más complejas: cada avance implica crecer en complejidad, potencia y superficie.
 o Lenta pero clara mejora en el software, que permite explotar el paralelismo.




Las arquitecturas actuales son muy diversas: hay más investigación que resultados definitivos.

Hablaremos de multiprocesadores de pequeña y median escala

Dos factores clave para la extensión de los Multiprocesadores






1. Flexibilidad:
                    El mismo sistema puede usarse para un único usuario incrementado el rendimiento en la ejecución de una única aplicación o para varios usuarios y aplicaciones en un entorno compartido.



2. Coste-rendimiento:
                    Actualmente estos sistemas se basan en procesadores comerciales, por lo que su coste se ha reducido drásticamente. La inversión más fuerte se hace en la memoria y la red de interconexión.




Como su nombre indica son aquellos sistemas operativos que están montados sobre ordenadores que están compuestos por más de un procesador, supongamos un PC que en vez de tener un Pentium, tuviera dos o más Pentium conectados entre si dentro de la misma placa base, esto sería un sistema multiprocesador.






CLASIFICACION POR USO DE LOS RECURSOS






  • Sistemas monoprogramados: Son los que solo permiten la ejecución de un programa en el sistema, se instalan en la memoria y permanecen allí hasta que termine su ejecución. Sistemas multiprogramados: Son aquellos que se basan en las técnicas de multiprogramación, existen dos tipos:

  • Multitarea apropiativa (preemptive): Se utiliza en sistemas operativos cuya gestión es quitar el control del microprocesador al programa que lo tiene.

  • Multitarea cooperativa: El programa tiene el control del microprocesador, el sistema operativo no puede decidir quien usa el microprocesador.

 
  • Sistemas de multiprocesamiento: Formado por varios microprocesadores. Depende del tipo de trabajo y los objetivos que debe cumplir cada sistema para dar el mejor servicio al usuario, se clasifican en:





  • Procesamiento por lotes (batch): Cada programa realiza un conjunto de pasos secuenciales relacionados entre si





  • Multiprocesamiento: Medios de multiprocesamiento que tienen más de un procesador que opera en la misma memoria pero ejecuta procesos simultáneamente. En un sistema de multiprocesamiento procesadores múltiples son empleados a ejecutado más de una actividad en el tiempo, siempre que la informática masiva deba ser realizada con regularidad.






  • Multiprocesador: Como muchas de las actividades principales de la informática se ejecutan simultáneamente por los procesadores diferentes.






Sin embargo, es esencial proporcionar la sincronización entre procesador múltiple ellos tienen acceso a la memoria común tal que ninguna parte del trabajo de informática debería ser descuidada por el procesador individual con una presunción que el otro procesador lo hará.






Un sistema de multiprocesamiento con vario funcionamiento juntos a la vez proporcionará un ambiente de multiprogramación. La multiprogramación permite que programas múltiples residan en áreas separadas de la memoria principal al mismo tiempo. Con este acercamiento, es posible mantener dos o más empleos simultáneamente en la ejecución o en estados de la ejecución.






Los sistemas de ordenador de multiprocesador son caros y encontraron su uso sólo en la aplicación de informática compleja y en la alta velocidad que funda el punto aplicación de cálculo numérica en espacios de Investigación e Industria.

3.6 PARALELISMO MULTIPROCESAMIENTO

Paralelismo



Los multiprocesadores hacen posible la explotación del paralelismo.



Los sistemas de computación obtienen los beneficios del procesamiento concurrente más por la “multiprogramación” de varios procesos y menos por la explotación del “paralelismo” dentro de un solo proceso.



La detección del paralelismo es un problema complejo y la puede efectuar el programador, el traductor del lenguaje, el hardware o el Sistema Operativo.


El paralelismo dentro de los programas puede ser “explícito” o “implícito”.


Las principales características del paralelismo explícito son las que se detallan a continuación:


  • Es indicado de forma específica por un programador mediante una “construcción de concurrencia” como la siguiente:


cobegin;
            proposición 1;
            ................
            proposición n;

coend;


  • Se pueden utilizar procesadores separados para ejecutar cada una de las proposiciones.
  • Es susceptible de errores de programación difíciles de detectar y depurar.
  • El programador puede omitir tratar situaciones donde sería aplicable el paralelismo.


Las principales características del paralelismo implícito son las que se detallan a continuación:


  •   La verdadera esperanza está en la detección automática del paralelismo implícito.
  •   Es el paralelismo intrínseco del algoritmo pero no establecido explícitamente por el programador.
  •   Los compiladores explotan el paralelismo implícito mediante las técnicas de “distribución de ciclos” y de “reducción de la altura del árbol”.


3.7 SISTEMA MULTIPROCESAMIENTO

Sistemas multiprocesador


Como su nombre indica son aquellos sistemas operativos que están montados sobre ordenadores que están compuestos por más de un procesador, supongamosque en vez de tener una Pc, tuviera dos o más Pc´s conectados entre si dentro de la misma placa base, esto sería un sistema multiprocesador.







El concepto de trabajo en equipo, el dividir una tarea entre varias unidades de ejecución para que pueda completarse más rápidamente, fue naturalmente llevado al mundo de las computadoras prácticamente desde sus inicios. David Slotnick, quien fuera colaborador de Von Neumann, le hizo la propuesta de una máquina que contara con varias unidades de procesamiento central; sin embargo, al sentir de Von Neumann, la tecnología de la época no permitía la realización de semejante proyecto. Aun así, Slotnick continuó con sus ideas, lo que eventualmente daría origen a la ILLIAC IV (1964), considerada una de las primeras computadoras masivamente paralelas de la historia. En la actualidad, las computadoras más rápidas del mundo son las máquinas masivamente paralelas.







El cómputo paralelo ofrece una serie de ventajas que lo hacen particularmente atractivo para los requerimientos de capacidad de cómputo, en particular los de la comunidad científica. Una de estas ventajas es económica. El uso de componentes comunmente disponibles, en grandes cantidades, permite ofrecer mayor rendimiento, a un precio menor que el de máquinas con procesadores especialmente diseñados (como por ejemplo las máquinas de procesadores vectoriales y de propósito específico). Adicionalmente, las computadoras paralelas son inherentemente escalables, permitiendo actualizarlas para adecuarlas a una necesidad creciente. Las arquitecturas ``tradicionales'' se actualizan haciendo los procesadores existentes obsoletos por la introducción de nueva tecnología a un costo posiblemente elevado. Por otro lado, una arquitectura paralela se puede actualizar en términos de rendimiento simplemente agregando más procesadores.

3.8 ORGANIZACION DEL MULTIPROCESAMIENTO


Los multiprocesadores se caracterizan por los siguientes aspectos:




  • Un multiprocesador contiene dos o más procesadores con capacidades aproximadamente  comparables.
  • Todos los procesadores comparten el acceso a un almacenamiento común y a canales de Entrada / Salida, unidades de control y dispositivos.
  • Todo está controlado por un Sistema Operativo que proporciona interacción entre procesadores y sus programas en los niveles de trabajo, tarea, paso, archivo y elementos de datos.



Las organizaciones más comunes son las siguientes:


  • Tiempo compartido o bus común (conductor común).
  • Matriz de barras cruzadas e interruptores. 
  • Almacenamiento de interconexión múltiple.


Tiempo Compartido o Bus Común (o Conductor Común)







Usa un solo camino de comunicación entre todas las unidades funcionales


El bus común es en esencia una unidad pasiva.



Un procesador o procesador de Entrada / Salida que desee transferir datos debe efectuar los siguientes pasos:


  • Verificar la disponibilidad del conductor y de la unidad de destino.  
  • Informar a la unidad de destino de lo que se va a hacer con los datos.
  • Iniciar la transferencia de datos.


Las unidades receptoras deben poder reconocer qué mensajes del bus son enviados hacia ellas y seguir y confirmar las señales de control recibidas de la unidad emisora.



Matriz de Barras Cruzadas e Interruptores



En este caso existe un camino diferente para cada unidad de almacenamiento, por lo cual las referencias a dos unidades diferentes de almacenamiento no son bloqueantes sino simultáneas y la multiplicidad de caminos de transmisión puede proporcionar tasas de transferencia muy alta












Almacenamiento de Interconexión Múltiple


Se obtiene al sacar las lógicas de control, de conmutación y de arbitraje de prioridades fuera del interruptor de barras cruzadas y se las coloca en la interfaz de cada unidad de almacenamiento

Cada unidad funcional puede acceder a cada unidad de almacenamiento, pero sólo en una “conexión de almacenamiento” específica, es decir que hay una conexión de almacenamiento por unidad funcional.
 
 

3.9 SISTEMAS OPERATIVOS DEL MULTIPROCESADOR

Las capacidades funcionales de los Sistema Operativo de multiprogramación y de multiprocesadores incluyen lo siguiente:

         • Asignación y administración de recursos.
         • Protección de tablas y conjuntos de datos.
         • Prevención contra el interbloqueo del sistema.
         • Terminación anormal.
         • Equilibrio de cargas de Entrada / Salida.
         • Equilibrio de carga del procesador.
         • Reconfiguración.


Las tres últimas son especialmente importantes en Sistemas Operativos de multiprocesadores, donde es fundamental explotar el paralelismo en el hardware y en los programas y hacerlo automáticamente.

Las organizaciones básicas de los Sistemas Operativos para multiprocesadores son las siguientes:

 

     • Maestro / satélite.
     • Ejecutivo separado para cada procesador.
     • Tratamiento simétrico (o anónimo) para todos los procesadores.





Maestro / Satélite


Es la organización más fácil de implementar.

No logra la utilización óptima del hardware dado que sólo el procesador maestro puede ejecutar el Sistema Operativo y el procesador satélite sólo puede ejecutar programas del usuario.

Ejecutivos Separados


Cada procesador tiene su propio Sistema Operativo y responde a interrupciones de los usuarios que operan en ese procesador.

Existen tablas de control con información global de todo el sistema (por ejemplo, lista de procesadores conocidos por el Sistema Operativo) a las que se debe acceder utilizando exclusión mutua.

Tratamiento Simétrico


Es la organización más complicada de implementar y también la más poderosa y confiable.

El Sistema Operativo administra un grupo de procesadores idénticos, donde cualquiera puede utilizar cualquier dispositivo de Entrada / Salida y cualquiera puede referenciar a cualquier unidad de almacenamiento.

El procesador ejecutivo es el responsable (uno sólo) en un momento dado de las tablas y funciones del sistema; así se evitan los conflictos sobre la información global.