Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ciencias Informáticas
Trabajo Autónomo
Nombre:
Rosado Párraga Dannes Alberto
Los mayores cambios se atribuyen principalmente a dos causas, que se dieron desde las
décadas de los setenta:
Características
• Concurrencia: Esta característica de los sistemas distribuidos permite que los
recursos disponibles en la red puedan ser utilizados simultáneamente por los
usuarios y/o agentes que interactúan en la red.
• Carencia de reloj global: Las coordinaciones para la transferencia de mensajes
entre los diferentes componentes para la realización de una tarea, no tienen una
temporización general, está más bien distribuida en los componentes.
• Fallos independientes de los componentes: Cada componente del sistema
pudiera fallar de manera independientemente, y los demás continuar ejecutando
sus acciones. Esto permite el logro de las tareas con mayor efectividad, pues el
sistema en su conjunto continúa trabajando.
Evolución
Procesamiento central (Host): Refiere a uno de los primeros modelos de computadoras
interconectadas, llamados centralizados, donde todo el procesamiento de la organización
se llevaba a cabo en una sola computadora, normalmente un Mainframe, y los usuarios
empleaban sencillas computadoras personales.
Grupo de Servidores: Otro modelo que entró a competir con el anterior, también un tanto
centralizado, son un grupo de computadoras actuando como servidores, normalmente de
archivos o de impresión, poco inteligentes para un número de minicomputadores que
hacen el procesamiento conectados a una red de área local.
• Podría generarse una saturación de los medios de comunicación entre los servidores poco
inteligentes y los minicomputadores, por ejemplo, cuando se solicitan archivos grandes
por varios clientes a la vez, podían disminuir en gran medida la velocidad de transmisión
de información.
La Computación Cliente Servidor: Este modelo, que predomina en la actualidad,
permite descentralizar el procesamiento y recursos, sobre todo, de cada uno de los
servicios y de la visualización de la Interfaz Gráfica de Usuario. Esto hace que ciertos
servidores estén dedicados sólo a una aplicación determinada y por lo tanto ejecutarla en
forma eficiente.
Ej.: servidor de archivos que debe bloquearse ocasionalmente en espera de acceso al disco:
• Si tiene varios hilos de control podría ejecutar un segundo hilo mientras el primero
espera:
o El resultado sería mejor rendimiento y desempeño.
o No se logra esto con procesos servidores independientes puesto que deben
compartir un buffer caché común y deben estar en el mismo espacio de
direcciones.
Cada hilo:
Los hilos ganan un desempeño considerable pero cada uno de ellos se programa en forma
secuencial.
• Todos los hilos son iguales y cada uno obtiene y procesa sus propias solicitudes.
• No hay servidor.
• Se utiliza una cola de trabajo que contiene todos los trabajos pendientes, que son
trabajos que los hilos no han podido manejar.
• Un hilo debe verificar primero la cola de trabajo antes de buscar en el buzón del
sistema.
En un diseño estático:
En un diseño dinámico:
Un proceso:
Una de las estructuras es una pila de argumentos compartida por “C” y “S”, que se asocia
de manera lectura / escritura en ambos espacios de direcciones. (UNNE, 2001)
El núcleo:
En redes de área amplia, los ciclos tienen retrasos que pueden rondar fácilmente el orden
de cientos milisegundos, o incluso segundos en algunas ocasiones.
Servidores Multihilos
Aunque existen importantes beneficios para los clientes multihilos, como hemos visto en
los sistemas distribuidos el principal uso de la tecnología multihilos está del lado del
servidor.
Sin embargo, ahora las computadoras multiproceso están ampliamente disponibles como
estaciones de trabajo de propósito general, aplicar la tecnología multihilos para
implementar el paralelismo es aún más útil.
Hasta el momento solo hemos visto dos diseños posibles: un servidor de archivos
multihilos y un servidor de archivos de un solo hilo. Supongamos que los hilos no están
disponibles, pero los diseñadores de sistemas consideran inaceptables la pérdida de
rendimiento debido al uso de un solo hilo. Una tercera posibilidad es la de ejecutar el hilo
servidor como una gran máquina de estado finito.
Cuando entra una petición, la examina el único hilo. Si podemos satisfacer la petición
desde el caché, bien, pero si no, debemos enviar un mensaje al disco.
En este diseño se pierde el modelo de “proceso secuencial” que teníamos en los 2 primeros
casos, el estado del cálculo debe ser guardado y almacenado de manera explícita en la
tabla para cada mensaje enviado y recibido.
Estas dos características son independientes y pueden ser tratadas como tales por los
sistemas de operación. En algunos sistemas de operación se le denomina a la unidad activa
hilo (thread) y a la unidad propietaria de recursos se le suele denominar proceso o tarea.
(unne, 2010)
Para que la comunicación entre procesos sea posible es necesario usar las llamadas al
sistema. Los threads comparten el mismo espacio de direcciones. Por lo tanto, el cambio
de contexto entre un thread y otro que pertenecen al mismo proceso pudiera hacerse de
forma totalmente independiente del sistema de operación. Los cambios de contexto de
procesos son más costosos. Implican salvar el contexto del proceso, cambio de modo (trap
al sistema de operación, etc), otro cambio de modo, restaurar contexto del nuevo proceso.
Implementaciones de hilos:
Usando hilos, se puede permitir el uso de llamadas al sistema bloqueantes sin necesidad
de “bloquear” todo el proceso. Esta propiedad vuelve a los hilos particularmente atractivos
para su uso dentro de sistemas distribuidos. Concentrémonos en la arquitectura Cliente
Servidor.
Clientes Multihilos
Sirven para esconder la latencia de comunicación a través de la red.
En muchos casos una página WEB consiste de un texto plano con múltiples figuras. Con
frecuencia el navegador, establece la conexión con el servidor, recupera y comienza a
desplegar la página HTML (incluso se permite al usuario el desplazamiento dentro de la
página) mientras el navegador continúa recuperando otros archivos que conforman la
página.
Cuando entra una petición para una página WEB es re-enviada a uno de los servidores
(usando round-robin u otra técnica de balanceo de carga).
Cuando se usan clientes multihilos cada conexión puede ir a una réplica diferente del
mismo servidor. En este caso los distintos archivos se transmiten en paralelo asegurando
que la página WEB completa se despliega en un tiempo más corto
El principal uso de la tecnología multihilos está del lado del servidor. Básicamente buscan
mejorar el desempeño (aún en servidores monoprocesador) y la forma cómo se estructura
el servidor.
Ejemplo: Por lo general un servidor de archivos espera una petición de entrada para una
operación de archivo, posteriormente ejecuta la petición (operación bloqueante al disco)
y luego envía la respuesta de regreso.
Modelo Servidor/Trabajador: Las peticiones son enviadas por los clientes hasta el
servidor. Después de examinar la petición el hilo servidor elige un hilo trabajador sin
utilizar y le encarga la petición.
El hilo trabajador realiza la lectura, lo cual puede provocar que se suspenda hasta que los
datos sean recuperados. Si el hilo se suspende, el procesador, selecciona otro para su
ejecución. ¿Cómo se programa un servidor de archivos en la ausencia de hilos? El
servidor recibe a peticiones, las examina y las trata de resolver antes de recibir la siguiente
petición. Mientras espera por el disco el servidor está ocioso y no procesa otra petición.
Se procesan menos peticiones por segundo (throughput).
Supongamos que los hilos no están disponibles, pero los diseñadores del sistema
consideran inaceptable el rendimiento debido al uso de un solo hilo y operaciones
bloqueantes. (Aguilar, 2017)
Referencias
Aguilar, I. (2017). Obtenido de https://chiloprimerparcial.es.tl/Procesos-e-Hilos.htm