Unidad 3 PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS
3.1 PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS
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.
3.2 METODO DE DISTRIBUCION DE CARGA (HILOS, TAREAS, PROCESOS)
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.
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.
Procesamiento asíncrono
Los
elementos asíncronos de un programa se pueden implementar como hilos.
Un ejemplo es como los softwares de procesamiento de texto guardan
archivos temporales cuando se está trabajando en dicho programa. Se crea
un hilo que tiene como función guardar una copia de respaldo mientras
se continúa con la operación de escritura por el usuario sin interferir
en la misma.
Aceleración de la ejecución
Se pueden ejecutar, por ejemplo, un lote mientras otro hilo lee el lote siguiente de un dispositivo.
Implementaciones
Hay dos grandes categorías en la implementación de hilos:
Hilos a nivel de usuario
Hilos a nivel de Kernel
3.3 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.
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.
3.4 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
3.5 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.
3.6 Tolerancia de Fallos
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.
3.8 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