Está en la página 1de 8

PROCESOS Y COMUNICACION

SISTEMAS OPERATIVOS DISTRIBUIDOS

MIGUEL ANGEL MARTINEZ MUNGUIA | TECNOLOGICO UNIVERSITARIO


TOLUCA | 22/03/2021
Contenido
Introducción...........................................................................................................................2
HILOS..................................................................................................................................3
Modelo cliente-servidor.........................................................................................................4
¿Qué es la comunicación entre procesos?............................................................................5
memoria compartida..........................................................................................................5
semáforo..............................................................................................................................6
Memoria mapeada..............................................................................................................6
tubo......................................................................................................................................6
FIFO.....................................................................................................................................6
BIBLIOGRAFIA.......................................................................................................................7

PÁGINA 1
Introducción
La computación desde sus inicios ha sufrido muchos cambios, desde los
ordenadores que permitían realizar tareas en forma limitada y de uso un tanto
exclusivo de organizaciones muy selectas.

Los mayores cambios se atribuyen principalmente a dos causas, que se


dieron desde la década de los setenta.

1) El desarrollo de los microprocesadores, que permitieron reducir en


tamaño y costo a los ordenadores y aumentar en gran medida las
capacidades de los mismos y su acceso a más Personas.

2) El desarrollo de las redes de área local (LAN) y de las


comunicaciones que permitieron conectar ordenadores con posibilidad
de alta transferencia.

En este contexto es que aparece el concepto de SISTEMAS DISTRIBUIDOS


que se ha popularizado tanto en la actualidad y que tiene como ámbito de
estudio las redes como por ejemplo: Internet, Redes de Teléfonos Móviles,
Redes de Empresas, etc.

PÁGINA 2
HILOS
En los S.O.C. cada proceso tiene un espacio de memoria asignado y un flujo
simple de control de ejecución, pero en un S.O.D. se prefiere tener múltiples
flujos de control compartiendo un espacio de direccionamiento de recursos,
corriendo en un esquema cuasi paralelo; por ello es apropiado hacer una
implementación usando hilos y multihilos.

Un aspecto importante es que, si un hilo de un programa necesita un dato


para continuar ejecutándose, está en situación de hacer una llamada
bloqueante, por cuya respuesta tendrá que esperar sin poder hacer nada
mientras tanto. Por el contrario, unas llamadas no bloqueantes al sistema
consisten en que éste devuelve una especie de excepción indicando cuándo
la información solicitada no está disponible; más esto no es 100% seguro,
porque, aunque la aplicación no se detiene, la llamada se atenderá por
completo en un momento futuro y solicitará la recepción de la respuesta al
proceso en forma asíncrona, que es a fin de cuentas un bloqueo parcial, o en
una llamada bloqueante, que detendrá el proceso.

Esta propiedad vuelve a los hilos particularmente atractivos para su uso


dentro de sistemas distribuidos. Una llamada bloqueante se queda esperando
a ser atendida es como una llamada telefónica, en cambio llamada no
bloqueante es como un mensaje de correo, y esto opera en ambos sentidos
de la comunicación.

Un hilo es un segmento de código que se ejecuta en forma paralela o


concurrente con el programa que lo mandó llamar, lo que le permite llevar a
cabo tareas de software de manera independiente, sin distraer el flujo de
ejecución de los módulos principales del programa, sino que se delega en
subrutinas que corren en su propio contexto, paralelo e independiente; por lo
tanto no son afectadas por el overhead de la aplicación principal.

Los HiIos también son conocidos como procesos ligeros o contextos de


ejecución. Típicamente, cada Hilo controla un único aspecto dentro de un
programa; pero todos los hilos pueden compartir recursos, al contrario de los
esquemas monolíticos de administración de procesos en donde cada uno
tiene su propia copia de código y datos.

Un ejemplo ilustrará mejor cómo funciona los multihilos, supongamos que


tenemos una aplicación servidor, que tiene un hilo-receptor que coloca todas
peticiones entrantes en una cola que es atendida por los hilos-trabajadores.
Supongamos que cada solicitud toma 2ms para ser procesada y 8ms de
Entrada/Salida. SI tenemos un sólo hilo-trabajador, entonces el máximo flujo

PÁGINA 3
de salida de peticiones atendidas es de 100 por segundo; ya que cada
solicitud tarda 2ms + 8ms = 10mseg, en ser atendida.

Si el mismo sistema lo atiende un servidor multihilos, consideremos que


pasaría si agregamos un hilo más (2 hilos -trabajadores en total)

El segundo hilo puede procesar una segunda solicitud mientras el primero


está bloqueado esperando la respuesta; en el mejor de los casos, éste
segundo hilo puede ejecutar sus 2ms de procesamiento mientras el primer
huilo espera los 8 segundos de entrada/salida.

Al calcular el flujo de salida, consideramos que los 2ms de procesamiento


ocurren de manera concurrente, entonces en promedio cada solicitud toma
en promedio 8ms, lo cual da un flujo de 125 peticiones por segundo.

Modelo cliente-servidor
El modelo cliente-servidor describe cómo un servidor proporciona recursos y
servicios a uno o más clientes . Los ejemplos de servidores incluyen
servidores web , servidores de correo y servidores de archivos . Cada uno de
estos servidores proporciona recursos a los dispositivos del cliente, como
computadoras de escritorio , portátiles , tabletas y teléfonos inteligentes . La
mayoría de los servidores tienen una relación de uno a varios con los
clientes, lo que significa que un solo servidor puede proporcionar recursos a
varios clientes a la vez.

Cuando un cliente solicita una conexión a un servidor, el servidor puede


aceptar o rechazar la conexión. Si se acepta la conexión, el servidor
establece y mantiene una conexión con el cliente a través de un protocolo
específico . Por ejemplo, un cliente de correo electrónico puede solicitar una
conexión SMTP a un servidor de correo para enviar un mensaje. La
aplicación SMTP en el servidor de correo solicitará autenticación del cliente,
como la dirección de correo electrónico y la contraseña. Si estas credenciales
coinciden con una cuenta en el servidor de correo, el servidor enviará el
correo electrónico al destinatario previsto.

Los juegos multijugador en línea también utilizan el modelo cliente-servidor.


Un ejemplo es el servicio Battle.net de Blizzard, que alberga juegos en línea
para World of Warcraft, StarCraft, Overwatch y otros. Cuando los jugadores
abren una aplicación de Blizzard , el cliente del juego se conecta
automáticamente a un servidor de Battle.net. Una vez que los jugadores
inician sesión en Battle.net, pueden ver quién más está en línea , chatear con
otros jugadores y jugar partidos con o contra otros jugadores.

PÁGINA 4
Si bien los servidores de Internet generalmente brindan conexiones a varios
clientes a la vez, cada máquina física solo puede manejar una cantidad
determinada de tráfico. Por lo tanto, los servicios en línea populares
distribuyen a los clientes a través de múltiples servidores físicos, utilizando
una técnica llamada computación distribuida . En la mayoría de los casos, no
importa a qué máquina específica estén conectados los usuarios, ya que
todos los servidores brindan el mismo servicio.

¿Qué es la comunicación entre procesos?


La comunicación entre procesos (IPC) se refiere al intercambio de datos
entre procesos, que son las unidades de ejecución de un programa. El
sistema operativo gestiona las dependencias del proceso para que estén lo
más débilmente acopladas posible. Por lo tanto, la IPC debe realizarse a
través de las funciones del sistema operativo Linux.

Hay más de una forma en que el sistema operativo puede intercambiar datos
por procesos. Ofrecemos una variedad de métodos únicos.

Aquí se presentan los cinco siguientes.

 Memoria compartida
 semáforo
 Memoria mapeada
 tubo
 Comunicación por enchufe

MEMORIA COMPARTIDA
Comparta la misma memoria entre procesos. La mayor ventaja de la memoria
compartida es su velocidad de acceso. Una vez que se crea la memoria compartida,
se puede acceder a ella sin utilizar las funciones del kernel, por lo que se puede
acceder a ella a la misma velocidad que la memoria normal en el proceso.
Este método se utiliza a menudo para software que requiere un rendimiento de
procesamiento que requiere el beneficio de esta velocidad de acceso.

Por otro lado, si escribe desde dos procesos al mismo tiempo, se producirá un
conflicto.
La memoria compartida no tiene un mecanismo de exclusión mutua incorporado
para prevenir este conflicto.

PÁGINA 5
SEMÁFORO
Los semáforos comparten datos enteros entre procesos que no tienen una relación
entre padres e hijos. Tiene un mecanismo para controlar el acceso simultáneo de
múltiples procesos, pero el inconveniente es que solo puede manejar datos de tipo
entero.
El uso principal es para la exclusión mutua de la memoria compartida.

MEMORIA MAPEADA
Varios procesos se comunican sobre el archivo. El mapeo de memoria se realiza al
acceder a un archivo para acelerar el proceso. El mapeo de memoria se refiere a
mapear archivos, dispositivos, etc. a un espacio de direcciones virtual para que se
pueda acceder a ellos como si fueran memoria.

Esto le permite colocar los datos en un archivo sin serialización.

TUBO
Las tuberías proporcionan comunicación unidireccional entre procesos padre-
hijo.

FIFO
También conocido como canalización con nombre. Una tubería con un
nombre en el sistema de archivos.

Todos los procesos pueden crear, acceder y eliminar FIFO sin una relación
padre-hijo.

PÁGINA 6
BIBLIOGRAFIA

 Tanenbaum, A., 2011. Sistemas distribuidos. 4th ed. Mexico: Pearson Educación de


México, SA de CV.

 M. (2020, 10 octubre). Linux のプロセス間通信. Qiita.

https://qiita.com/MoriokaReimen/items/5c4256ef620499a88bb3

PÁGINA 7

También podría gustarte