jueves, 16 de octubre de 2014

UNIDAD 3 PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS


PROCESOS Y PROCESADORES EN
 
 SISTEMAS DISTRIBUIDOS
 
CONCEPTOS BASICOS
 
Un hilo de ejecución, en sistemas operativos, es una característica que permite a una aplicación realizar varias tareas concurrentemente. Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente. 
Los hilos de ejecución que comparten los mismos recursos, sumados a estos recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos de ejecución de un mismo proceso compartan los recursos hace que cualquiera de estos hilos pueda modificar éstos.

Cuando un hilo modifica un dato en la memoria, los otros hilos acceden e ese dato modificado
inmediatamente.
Un ejemplo de la utilización de hilos es tener un hilo atento a la interfaz gráfica (iconos, botones, ventanas), mientras otro hilo hace una larga operación internamente. De esta manera el programa responde de manera más ágil a la interacción con el usuario. También pueden ser utilizados por una aplicación servidora para dar servicio a múltiples clientes
 
Proceso
Un proceso puede informalmente entenderse como un programa en ejecución. Formalmente un proceso es "Una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistemas asociados"
 
Hilos
Los hilos de ejecución que comparten los mismos recursos, sumados a estos recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos de ejecución de un mismo proceso compartan los recursos hace que cualquiera de estos hilos pueda modificar éstos. Cuando un hilo modifica un dato en la memoria, los otros hilos acceden e ese dato modificado inmediatamente.
Lo que es propio de cada hilo es el contador de programa, la pila de ejecución y el estado de la CPU (incluyendo el valor de los registros).
El proceso sigue en ejecución mientras al menos uno de sus hilos de ejecución siga activo. Cuando el proceso es terminado, todos sus hilos de ejecución también lo son. Asimismo en el momento en el que todos los hilos de ejecución finalizan, el proceso no existe más y todos sus recursos son liberados.
 
 
Multihilo
Sincronización de hilos
Todos los hilos comparten el mismo espacio de direcciones y otros recursos como pueden ser archivos abiertos. Cualquier modificación de un recurso desde un hilo afecta al entorno del resto de los hilos del mismo proceso. Por lo tanto, es necesario sincronizar la actividad de los distintos hilos para que no interfieran unos con otros o corrompan estructuras de datos.
Una ventaja de la programación multihilo es que los programas operan con mayor velocidad en sistemas de computadores con múltiples CPU (sistemas multiprocesador o a través de grupo de máquinas) ya que los hilos del programa se prestan verdaderamente para la ejecución concurrente.
Formas de Multihilos
Los sistemas operativos generalmente implementan hilos de dos maneras:
Multihilo apropiativo
Permite al sistema operativo determinar cuándo debe haber un cambio de contexto. La desventaja de esto es que el sistema puede hacer un cambio de contexto en un momento inadecuado, causando un fenómeno conocido como inversión de prioridades y otros problemas.
 
Multihilo cooperativo
Depende del mismo hilo abandonar el control cuando llega a un punto de detención, lo cual puede traer problemas cuando el hilo espera la disponibilidad de un recurso.
El soporte de Hardware para multihilo desde hace poco se encuentra disponible. 
 
 
MODELOS DE PROCESADORES
 
8086 y 8088 (de 1978 a 1982)
*Son los primeros procesadores utilizados en PC.
Carecían de instrucciones de coma flotante, pero para implementar estas se podían complementar con el coprocesador matemático 8087, que era el más utilizado, aunque no el único.
i386SX –  Procesador de 32bits, pero externamente se comunicaba a 16bits, lo que hacía que fuera a la mitad de la velocidad de un 80386 normal.
 
i386SX Now - Versión del 80386SX,  compatible pin a pin con los procesadores 80286, desarrollado por Intel para poder actualizar los 80286 sin necesidad de cambiar de placa base.

 
Pentium (de 1993 a 1997)
Los primeros Pentium tenían una frecuencia de entre 60Mhz, 66Mhz, 75Mhz y 133Mhz, y a pesar de las mejoras en su estructura, entre las que destaca su arquitectura escalable, no llegaban a superar a los i486 de Intel que en ese momento había en el mercado, y mucho menos a los Cyrix y Am486 DX4.
 
Pentium Pro (de 1995 hasta 1998)
El Pentium PRO no fue diseñado como sustituto de ningún procesador, sino como un procesador para ordenadores de altas prestaciones destinados a estaciones de trabajo y servidores.
 
 
El sistema consta de estaciones de trabajo (PC) dispersas conectadas entre sí mediante una red de área local (LAN).
 
Los usuarios tienen:
·  Una cantidad fija de poder de cómputo exclusiva.
·  Un alto grado de autonomía para asignar los recursos de su estación de trabajo.
 
Uso de los discos en las estaciones de trabajo:
Sin disco:
·  Bajo costo, fácil mantenimiento del hardware y del software, simetría y flexibilidad.
·  Gran uso de la red, los servidores de archivos se pueden convertir en cuellos de botella.
 
Disco para paginación y archivos de tipo borrador:
·  Reduce la carga de la red respecto del caso anterior.
·  Alto costo debido al gran número de discos necesarios.
 
Disco para paginación, archivos de tipo borrador y archivos binarios (ejecutables):
·  Reduce aún más la carga sobre la red.
·  Alto costo y complejidad adicional para actualizar los binarios.
 
Disco para paginación, borrador, binarios y ocultamiento de archivos:
·  Reduce aún más la carga de red y de los servidores de archivos.
·  Alto costo.
·  Problemas de consistencia del caché.
 
Sistema local de archivos completo:
·  Escasa carga en la red.
·  Elimina la necesidad de los servidores de archivos.
·  Pérdida de transparencia.
 
 
 
 
 
 
Se dispone de un conjunto de CPU que se pueden asignar dinámicamente a los usuarios según la demanda.
Los usuarios no disponen de estaciones de trabajo sino de terminales gráficas de alto rendimiento.
No existe el concepto de propiedad de los procesadores, los que pertenecen a todos y se utilizan compartidamente.
 
El modelo de pila es más eficiente que el modelo de búsqueda de estaciones inactivas.
También existe el modelo híbrido que consta de estaciones de trabajo y una pila de procesadores.
 
 
 HIBRIDO
Se puede establecer una mediación al proporcionar cada usuario una estación de trabajo personal y además tener una pila de procesadores. Aunque esta solución es mas cara que cualquiera de los modelos puros, combina las ventajas de ambos.
 
El trabajo interactivo se puede llevar acabo en las estaciones de trabajo con una respuesta garantizada. Sin embargo las estaciones iniciativas no se utilizan, lo cual hace mas sencillo el diseño del sistema. Solo se dejan sin utilizar. En vez de esto, todos los procesos no interactivos se ejecutan en la pila de procesadores, asi como todo el computo pesado en general. Este modelo proporciona una respuesta interactiva mas rápida, un uso eficiente de los recursos y un diseño sencillo.
 
 
 
 ASIGNACION DE PROCESOS
Hay 3 cuestiones:
Un proceso puede pasar de información a otro
Hacer que 2 o mas procesos no se interpongan entre si
Obtener la secuencia apropiada cuando hay dependencias presentes

 
Exclucion mutua
Es una forma de asegurar que si un proceso esta usando una variable o archivo compartido se excluiran de hacer lo mismo.

 
REGION O SECCION CRITICA
Un proceso esta ocupado realizando cálculos internos y otras cosas que no producen condiciones de carrera; algunas veces un proceso tiene que acceder a la memoria compartida o a archivos compartidos, o hacer otras cosas criticas que pueden producir carreras. Es la parte del programa en el que se accede a la memoria compartida
 
CONDICIONES:
No puede haber 2 procesos de manera simultanea dentro de sus regiones criticas
1) No puede haber dos procesos de manera simultanea dentro del sus regiones criticas
2) No puede hacerse suposiciones acerca de las velocidades o el numero de cpu`s
3)Ningùn procesos que se ejecute fuera de su región critica puede bloquear otros procesos
4)Nungun proceso tiene que esperar para siempre para entrara a su región critica
 
 
 
COPLANIFICACION 
 
  • TOMA EN CUENTA LOS PATRONES DE COMUNICACION ENTRE LOS PROCESOS DURANTE LA PLANIFICACION.
  • DEBE GARANTIZAR QUE TODOS LOS MIEMBROS DEL GRUPO SE EJECUTEN AL MISMO TIEMPO.
  • SE EMPLEA UNA MATRIZ CONCEPTUAL DONDE: LAS FILAS SON ESPACIOS DE TIEMPO.
  • LAS COLUMNAS SON LAS TABLAS DE PROCESOS DE LOS PROCESADORES. CADA PROCESADOR DEBE UTILIZAR UN ALGORITMO DE PLANIFICACION.
 
TOLERANCIA DE FALLAS
 
Los sistemas de computo pueden fallar debido a una falla en algún componente, como procesador, la memoria, un dispositivo de E/S un cable o el software.
Una falla es un desperfecto, causado tal vez por un error de diseño, un error de fabricación, un error de programación, un daño físico, el deterioro con el curso del tiempo, condiciones ambientales adversas, entradas inesperadas, un error del operador, roedores comiendo parte de sistema, etc.

 
 SISTEMAS DISTRIBUIDOS EN TIEMPO REAL
 
Los sistemas operativos en tiempo real o RTOS (Real-Time Operating System), son sistemas los cuales manejan sucesos o eventos de gran importancia, por lo que deben cumplir con sus tareas bajo ciertas restricciones.
El Objetivo principal de estos sistemas es proporcionar minimizar los tiempos de respuesta de cada petición o tarea por medio de algoritmos de  planificación, los cuales definen que tareas deben ejecutarse en cada momento.
 
No utiliza mucha memoria
Cualquier evento en el soporte físico puede hacer que se ejecute una tarea
Multi-arquitectura (código portado a cualquier tipo de CPU)
Muchos tienen enfermedades predecibles para eventos electrónicos
 
Compuesta por un conjunto de nodos conectados por redes de comunicación.
Cada nodo puede ser un multiprocesador conectado por buses.
Sólo consideraremos sistemas débilmente acoplados.
Es frecuente que estos sistemas tengan gran complejidad.
Se suelen estructurar jerárquicamente, para tratar con:
 
Plazos de respuesta de diversas escalas.
Tipo de información.
Requisitos de procesador
Este tipo de sistemas operativos no es necesariamente eficiente en el sentido de tener una capacidad de procesamiento alta. El algoritmo de programación especializado, y a veces una tasa de interrupción del reloj alta pueden interferir en la capacidad de procesamiento.
 
.

No hay comentarios.:

Publicar un comentario