so_procipc
Diferencias
Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
so_procipc [2019/08/26 00:04] – creado mariano | so_procipc [2020/03/17 13:52] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ====== Comunicación Interprocesos | + | ===== Comunicación Interprocesos ===== |
Los procesos que se ejecutan concurrentemente pueden ser procesos independientes o procesos cooperativos. Un proceso es independiente si no puede afectar o verse afectado por los restantes procesos que se ejecutan en el sistema. Cualquier proceso que no comparte datos con ningún otro proceso es un proceso independiente. Un proceso es cooperativo si puede afectar o verse afectado por los demás procesos que se ejecutan en el sistema. Evidentemente, | Los procesos que se ejecutan concurrentemente pueden ser procesos independientes o procesos cooperativos. Un proceso es independiente si no puede afectar o verse afectado por los restantes procesos que se ejecutan en el sistema. Cualquier proceso que no comparte datos con ningún otro proceso es un proceso independiente. Un proceso es cooperativo si puede afectar o verse afectado por los demás procesos que se ejecutan en el sistema. Evidentemente, | ||
Línea 6: | Línea 6: | ||
* **Compartir información.** Dado que varios usuarios pueden estar interesados en la misma información (por ejemplo, un archivo compartido), | * **Compartir información.** Dado que varios usuarios pueden estar interesados en la misma información (por ejemplo, un archivo compartido), | ||
- | * | + | |
* **Acelerar los cálculos.** Si deseamos que una determinada tarea se ejecute rápidamente, | * **Acelerar los cálculos.** Si deseamos que una determinada tarea se ejecute rápidamente, | ||
* **Modularidad.** Podemos querer construir el sistema de forma modular, dividiendo las funciones del sistema en diferentes procesos o hebras. | * **Modularidad.** Podemos querer construir el sistema de forma modular, dividiendo las funciones del sistema en diferentes procesos o hebras. | ||
+ | |||
+ | * **Conveniencia.** Incluso un solo usuario puede querer trabajar en muchas tareas al mismo tiempo. Por ejemplo, un usuario puede estar editando, imprimiendo y compilando en paralelo. | ||
+ | |||
+ | La cooperación entre procesos requiere mecanismos de comunicación interprocesos (IPC, interprocess communication) que les permitan intercambiar datos e información. Existen dos modelos fundamentales de comunicación interprocesos: | ||
+ | (1) memoria compartida y | ||
+ | (2) paso de mensajes. | ||
+ | En el modelo de memoria compartida, se establece una región de la memoria para que sea compartida por los procesos cooperativos. De este modo, los procesos pueden intercambiar información leyendo y escribiendo datos en la zona compartida. En el modelo de paso de mensajes, la comunicación tiene lugar mediante el intercambio de mensajes entre los procesos cooperativos. | ||
+ | |||
+ | Los dos modelos son bastante comunes en los distintos sistemas operativos y muchos sistemas implementan ambos. El paso de mensajes resulta útil para intercambiar pequeñas cantidades de datos, ya que no existe la necesidad de evitar conflictos. El paso de mensajes también es más fácil de implementar que el modelo de memoria compartida como mecanismo de comunicación entre computadoras. La memoria compartida permite una velocidad máxima y una mejor comunicación, | ||
+ | |||
+ | ==== Memoria Compartida ==== | ||
+ | |||
+ | La comunicación interprocesos que emplea memoria compartida requiere que los procesos que se estén comunicando establezcan una región de memoria compartida. Normalmente, | ||
+ | |||
+ | Para ilustrar el concepto de procesos cooperativos, | ||
+ | |||
+ | [[so_procipcmariano| presentacion con ejemplos]] | ||
+ | |||
×
iphelper toolbox
you see this when javscript or css is not working correct
Untested
so_procipc.1566777867.txt.gz · Última modificación: 2019/08/26 00:04 (editor externo)