2.-Programación multiproceso Flashcards
2.1.- Programación concurrente, paralela y distribuida
Concurrencia. Definición
Propiedad - Sistemas - Ejecutar - Tiempo
La concurrencia es una propiedad que permite que los sistemas puedan ejecutar diferentes procesos en un mismo tiempo.
2.1.- Programación concurrente, paralela y distribuida
Proceso. Definición
Proceso - Instrucciones
Un proceso comprende todas las instrucciones que se llevarán a cabo.
2.1.- Programación concurrente, paralela y distribuida
Programación concurrente. Definición
Programación concurrente - Tareas - Ejecutar
La programación concurrente es la que se encarga de ejecutar las tareas simultáneamente.
2.1.- Programación concurrente, paralela y distribuida
Programación concurrente. Características especiales
Hay que tener en cuenta que toda ejecución simultanea debe tener unas características especiales
Hay que tener en cuenta que toda ejecución simultanea debe tener unas características especiales, como, por ejemplo, la secuencia de ejecución, las comunicaciones entre los procesos y el acceso coordinado a los recursos.
2.1.- Programación concurrente, paralela y distribuida
Programación concurrente. Ventajas
Ventajas de la programación concurrente
Ventajas de la programación concurrente:
* Facilita el diseño orientado a objetos.
* Posibilita la compartición de recursos.
* Facilita la programación de aplicaciones en tiempo real.
* Reduce los tiempos de ejecución.
2.1.- Programación concurrente, paralela y distribuida
Programas. Tipo de instrucciones
Cada programa se compone de diferentes instrucciones que pueden ser ejecutadas o no simultáneamente - Bernstein
Cada programa se compone de diferentes instrucciones que pueden ser ejecutadas o no simultáneamente. Bernstein dividió las instrucciones en dos tipos, dependiendo de la operación realizada sobre ellas: de lectura y de salida.
2.1.- Programación concurrente, paralela y distribuida
Instrucciones concurrentes. Condiciones
Para que dos instrucciones se puedan ejecutar concurrentemente, es necesario que se cumplan estas tres condiciones:
Para que dos instrucciones se puedan ejecutar concurrentemente, es necesario que se cumplan estas tres condiciones:
* L(Si) ∩ E(Sj) = Ø
* E(Si) ∩ L(Sj) = Ø
* E(Si) ∩ E(Sj) = Ø
- L –> Lectura / E –> Escritura
- El conjunto de lectura de una instrucción y el conjunto de lectura de la otra instrucción no pueden solaparse.
- El conjunta de escritura de ambas instruccionesno puede solaparse
2.1.- Programación concurrente, paralela y distribuida
Programación concurrente. Problemas
Problemas de la programación concurrente
Problemas de la programación concurrente:
* Exclusión mutua
* Abrazo mortal
* Inanición
2.1.- Programación concurrente, paralela y distribuida
Programación concurrente. Problemas. Exclusión mutua. Definición
Resultado - Procesos
Es el resultado de que dos procesos intenten acceder a la misma variable.
2.1.- Programación concurrente, paralela y distribuida
Programación concurrente. Problemas. Exclusión mutua. Problema y solución
Inconsistencia - Procesos - Recurso
Esto puede producir inconsistencia, puesto que un proceso puede estar actualizando una variable, mientras que otro proceso está leyendo la misma. Para evitar este problema, en la programación concurrente se utiliza la región crítica, que controla el número de procesos que se encuentra utilizando el recurso.
2.1.- Programación concurrente, paralela y distribuida
Programación concurrente. Problemas. Abrazo mortal. Definición
Procesos - Recursos
Dos procesos se quedan bloqueados porque están esperando a los recursos que tiene el otro proceso. También es denominado DeadLock o interbloqueo.
2.1.- Programación concurrente, paralela y distribuida
Programación concurrente. Problemas. Inanición. Definición
Procesos - Recursos
Un proceso se queda esperando a un recurso compartido, que siempre se le deniega. Sin este recurso el proceso no puede finalizar.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Definción
Tecnica - Programación
Es una técnica de programación en la que muchas instrucciones se ejecutan simultáneamente.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Solución a problemas
Tipo programación - Problemas grandes - Problemas pequeños
Este tipo de programación permite dar solución a problemas de grandes dimensiones, para ello, divide en pequeños problemas uno más grande. Estas partes se pueden resolver de forma paralela, por lo que podrán ser ejecutadas a la vez que otras.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Equipos multiprocesadores
Técnica - Equipos - Tareas
Esta técnica se utiliza en equipos multiprocesadores en los que cada uno de ellos es el encargado de resolver una tarea. Todos los procesos que se encuentran en ejecución deben estar comunicados entre sí.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Ventajas
Ventajas de la programación paralela
Ventajas de la programación paralela:
* Permite la ejecución de tareas de manera simultánea.
* Permite resolver problemas complejos.
* Disminuye el tiempo en ejecución.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Inconvenientes
Inconvenientes de la programación paralela
Inconvenientes de la programación paralela:
* Mayor dificultad en la programación.
* Mayor complejidad en el acceso a los datos.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Modelos. Definición
Mecanismos - Información
Existen diferentes mecanismos de intercambio de información, denominados modelos.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Modelos. Clasificación
Según su forma se pueden clasificar en
Según su forma se pueden clasificar en:
* Modelo de memoria compartida
* Modelo de paso de mensaje
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Modelos. Modelo de memoria compartida. Definición
Tipo - Eficaz - Transferencia - Procesos - RAM
Este tipo de memoria permite ser accedida por múltiples programas, por lo que es un modo eficaz de transferencia de datos. Esto se consigue creando un espacio de acceso común por parte de cada uno de los procesos en la memoria RAM.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Modelos. Modelo de memoria compartida. Secciones criticas
Problemas - Punto acceso
Hay que tener en cuenta que uno de los mayores problemas se da cuando existe un punto de acceso en común, como son las secciones críticas.
.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Modelos. Modelo de memoria compartida. Controles
Controles - Punto acceso - Lectura - Escritura
Es necesario establecer una serie de controles dentro de un punto de acceso a datos común, puesto que estos procesos intentarán realizar lectura y escritura de datos a la vez, dando lugar a datos incoherentes.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Modelos. Modelo de memoria compartida. Mecanismos de control
Existen diversos mecanismos de control
Existen diversos mecanismos de control como son: semáforos, tuberías, monitores, etc
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Modelos. Modelo de memoria compartida. Operaciones atómicas
Acceso - Hilos - Operaciones - Memoría
Estos permitirán el acceso de los hilos de manera individual, asegurando que las operaciones realizadas son de forma atómica, es decir, hasta que un hilo no termina, otro no puede acceder al mismo espacio de memoria.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Modelos. Modelo de paso de mensaje. Definición
Mecanismo - POO - Proceso - Funciones y Métodos - Petición
Es el mecanismo más utilizado en la programación orientada a objetos. Cada proceso tiene definidas sus funciones y métodos, por lo que cada uno de ellos ejecuta individualmente las tareas y, si necesita datos de otro, realiza una petición de los resultados que necesita al propietario.
2.2.- Paradigmas de programación paralela y distribuida
Programación paralela. Modelos. Modelo de paso de mensaje. Incovenientes
Procesos - Implementar - Mensajes
El principal inconveniente es que todos los procesos deben tener implementados métodos que puedan interpretar este intercambio de mensajes.
2.2.- Paradigmas de programación paralela y distribuida
Programacion distribuida. Definición
Tipo - Técnica - Programacion - Maquinas - Red
Este tipo de técnica de programación permite que un conjunto de máquinas separadas físicamente, que están interconectadas entre sí por una red de comunicaciones
2.2.- Paradigmas de programación paralela y distribuida
Programacion distribuida. Solución a problemas
Cada maquina trabaja como una sola para dar solución a un problema. Cada una procesa de manera independiente una parte del total. Este conjunto de máquinas que operan interconectadas se conoce como grid.
2.2.- Paradigmas de programación paralela y distribuida
Programacion distribuida. Grid. Definición
Maquina - Solución - Proceso - Conjunto
Cada maquina trabaja como una sola para dar solución a un problema. Cada una procesa de manera independiente una parte del total. Este conjunto de máquinas que operan interconectadas se conoce como grid.
2.2.- Paradigmas de programación paralela y distribuida
Programacion distribuida. Computación de altas prestaciones
Programación - Altas prestaciones - Configuración - Escenario
Esta programación se utiliza en la computación de altas prestaciones, en la que las máquinas son configuradas específicamente para cada tipo de escenario y se dan necesidades de computaciones de manera remota.
2.2.- Paradigmas de programación paralela y distribuida
Programacion distribuida. Sistemas cliente-servidor
Enfocada - Sistemas distribuidos - Independiente - Repercute
Está enfocada a sistemas distribuidos cliente-servidor que requieren de escalabilidad y con una gran capacidad de tolerancia a fallos, puesto que cada uno opera de manera independiente y en caso de fallo no repercute en el de los demás.
2.2.- Paradigmas de programación paralela y distribuida
Programacion distribuida. Comunicación máquinas
La comunicación entre estas máquinas se realiza mediante
La comunicación entre estas máquinas se realiza mediante la llamada de procedimientos remotos (RPC), invocación remota de objetos (RMI) y sockets.
2.2.- Paradigmas de programación paralela y distribuida
Programacion distribuida. Carácteristicas
Características de los sistemas distribuidos
Características de los sistemas distribuidos:
* Capacidad de balanceo
* Alta disponibilidad
2.2.- Paradigmas de programación paralela y distribuida
Programacion distribuida. Carácteristicas. Capacidad de balanceo. Definición
Maquina - Recursos - Proceso
Las propias máquinas son capaces de realizar una asignación de recursos concreta para cada proceso, de manera que otro proceso pueda hacer uso de una mayor cantidad de recursos si lo requiere.
2.2.- Paradigmas de programación paralela y distribuida
Programacion distribuida. Carácteristicas. Alta disponibilidad. Definición
Carácteristicas - Programación - Flexibilidad - Fallo
Es una de las características más usadas, que permite a este tipo de programación una flexibilidad enorme, en caso de que haya un fallo automáticamente los servicios son asignados en otros servidores.
2.2.- Paradigmas de programación paralela y distribuida
Programacion distribuida. Nuevas máquinas
De la misma manera que si la previsión de recursos necesarios se queda justa - Automática - Carácteristicas - Procesos
De la misma manera que si la previsión de recursos necesarios se queda justa, es posible que de manera automática se añada una nueva máquina con las mismas características, para poder hacer frente a la computación de distintos procesos.
2.2.- Paradigmas de programación paralela y distribuida
Programacion distribuida. Complejidad
Este tipo de programación también cuenta con algunos inconvenientes - Compejidad - Seguridad
Este tipo de programación también cuenta con algunos inconvenientes como puede ser un aumento de la complejidad, ya que es necesario un determinado tipo de software. Asimismo, se incrementa el riesgo de fallos en la seguridad, como pueden ser los ataques de denegación de servicios con sobrecargas de peticiones remotas al servidor.
2.2.- Paradigmas de programación paralela y distribuida
Programacion distribuida. Ventajas
Ventajas de la programación distribuida
Ventajas de la programación distribuida:
* Permite escalabilidad, capacidad de crecimiento.
* Permite la compartición de recursos y datos.
* Mayor flexibilidad.
* Alta disponibilidad.
2.2.- Paradigmas de programación paralela y distribuida
Programacion distribuida. Inconvenientes
Inconvenientes de la programación distribuida
Inconvenientes de la programación distribuida:
* Pérdida de mensajes.
* Está expuesta a diferentes ataques para vulnerar su seguridad.
2.3.- Estados de un proceso
Proceso. Definición
Conjunto - Instrucciones
Un proceso es un conjunto de instrucciones que se van a ejecutar dentro de la CPU
2.3.- Estados de un proceso
Procesos. Indicador. Definición
Proceso - Estado
Todo proceso está caracterizado por un indicador que define la situación o estado en el que se encuentra
2.3.- Estados de un proceso
Procesos. Estados
Al menos existen tres estados diferentes
Al menos existen tres estados diferentes:
* Activo o en ejecución
* Bloqueado
* Preparado
2.3.- Estados de un proceso
Procesos. Estados. Activo o en ejecución. Definición
Procesos - Ejecutar - Procesador
Aquellos procesos que han sido asignados para ejecutarse en el procesador.
2.3.- Estados de un proceso
Procesos. Estados. Bloqueado. Definición
Procesos - Espera - Operación - Bloqueado
Aquellos procesos que han interrumpido su ejecución, y, por lo tanto, se encuentran actualmente a la espera de que termine la operación que los ha dejado bloqueados.
2.3.- Estados de un proceso
Procesos. Estados. Preparado. Definición
Proceso - Entrar - Ejecutarse
Aquellos procesos que se encuentran disponibles para entrar a la CPU y ejecutarse.
2.3.- Estados de un proceso
Procesos. Transiciones permitidas
Durante la vida de un proceso, se realizan transiciones entre los diferentes estados.
Durante la vida de un proceso, se realizan transiciones entre los diferentes estados.
* Transición bloqueo
* Transicion apropiación
* Transición asignacion
* Transicion fin de bloque
2.3.- Estados de un proceso
Procesos. Transiciones permitidas. Transición bloqueo. Definición
Proceso - Llamada - Sistema - Recursos
Cuando un proceso se está ejecutando y produce una llamada al sistema, debe quedarse como bloqueado para evitar consumir CPU. Por ejemplo, cuando un proceso requiere información y pide que se lean datos. En este caso, debe esperar a que se complete esa operación.
2.3.- Estados de un proceso
Procesos. Transiciones permitidas. Transicion apropiación. Definición
Proceso - Gestor de procesos - Sale - CPU
Cuando un proceso se encuentra en ejecución y el gestor de procesos indica que debe dejar de ejecutarse. En este caso, el proceso sale de la CPU hasta que puede volver a estar activo. En el próximo apartado se verán las diferentes técnicas por las cuales un proceso realiza esta transición.
2.3.- Estados de un proceso
Procesos. Transiciones permitidas. Transición asignación. Definición
Proceso - Entra - CPU
Cuando un proceso entra a ejecutarse en la CPU.
2.3.- Estados de un proceso
Procesos. Transiciones permitidas. Transición fin de bloque. Definición
Proceso - Espera - Operación
Cuando un proceso está esperando a que acabe la operación por la cual ha pasado a estar en el estado de bloqueo y pasa directamente a seguir su ejecución.
2.3.- Estados de un proceso
Procesos. Transiciones permitidas. Unix
En Unix existen más estados para los procesos que los que se han explicado anteriormente
En Unix existen más estados para los procesos que los que se han explicado anteriormente. En este diagrama se pueden observar las transiciones entre ellos
2.3.- Estados de un proceso
Procesos. Estados. Unix
Cabe destacar que existen varios estados nuevos, como pueden ser
Cabe destacar que existen varios estados nuevos, como pueden ser:
* Nuevo
* Terminado
* Zombies
2.3.- Estados de un proceso
Procesos. Estados. Unix. Nuevo. Definición
Procesos - Elegidos - Iniciar
Aquellos procesos que aún no han sido elegidos para iniciar su procesamiento.
2.3.- Estados de un proceso
Procesos. Estados. Unix. Terminado. Definición
Procesos - Finalizado
Aquellos procesos que han finalizado su ejecución.
2.3.- Estados de un proceso
Procesos. Estados. Unix. Zombies. Definición
Procesos - Finalizado - Liberar - Recursos
Aquellos procesos que han finalizado su ejecución, pero no han liberado los recursos que han utilizado
2.4.- Ejecutables. Procesos. Servicios
Ejecutable. Definición
Archivos - Instrucciones - Código - Compilador
Son archivos binarios que contienen un conjunto de instrucciones en código fuente que el compilador ha traducido a lenguaje máquina.
2.4.- Ejecutables. Procesos. Servicios
Ejecutables. Sistema operativo
Tipo - Archivos - Llamadas - SO
Este tipo de archivos suele contener instrucciones de llamada a las funciones del sistema operativo.
2.4.- Ejecutables. Procesos. Servicios
Ejecutables. Extensiones
Tipo - Archivos - Incomprensibles - Extensiones
Este tipo de archivos son incomprensibles para el ser humano. Algunos de los más comunes son .bat, .com, .exe y .bin.
2.4.- Ejecutables. Procesos. Servicios
Proceso. Definicion
Conjunto - Intrucciones - Microprocesador - Programa
Conjunto de instrucciones que ejecutará el microprocesador, es lo que se entiende como un programa en ejecución.
2.4.- Ejecutables. Procesos. Servicios
Procesos. Sistema operativo
Procesos - SO - Crear - Destruir
Los procesos son gestionados por el sistema operativo, que es el encargado de crearlos y destruirlos.
2.4.- Ejecutables. Procesos. Servicios
Procesos. Memoria
Recursos - Memoria - Ejecución
Requieren de unos recursos de memoria que reservan para su ejecución.
2.4.- Ejecutables. Procesos. Servicios
Procesos. Sistemas operativos multihilo
SO Multihilo - Hilos - Procesos - Crear - Memoria
En los sistemas operativos multihilo es posible crear hilos y procesos. La diferencia reside en que un proceso solamente puede crear hilos para sí mismo, y en que dichos hilos comparten toda la memoria reservada para el proceso.
2.4.- Ejecutables. Procesos. Servicios
Procesos. Estado de ejecución
Procesos - Estado - Valor - CPU
Los procesos están caracterizados por su estado de ejecución en un momento determinado. Estos procesos son el valor de los registros de la CPU para dicho programa.
2.4.- Ejecutables. Procesos. Servicios
Servicio. Definición
Tipo - Procesos Informático - Carácterísticas
Es un tipo de proceso informático que posee unas características especiales, porque se ejecutan en segundo plano y no son controlados por el usuario
2.4.- Ejecutables. Procesos. Servicios
Servicios. Ejecución continua
Ejecución - Sistema - UI
Pueden permanecer de manera continuada en ejecución dentro del sistema y carecen de interfaz gráfica.
2.4.- Ejecutables. Procesos. Servicios
Servicios. Sistema Operativo
Servicios - Mantenimiento - SO
La mayor parte de estos servicios están destinados a realizar tareas de mantenimiento del sistema operativo de forma periódica.
2.5.- Hilos y relación con los procesos
Hilo. Definición
Hilo - Concepto reciente - Ejecución - Proceso
El término hilo es un concepto reciente y que se podría definir como una ejecución que forma parte de un proceso.
2.5.- Hilos y relación con los procesos
Hilos. Relación con los procesos
Proceso - Contener - Hilos
Un proceso puede contener un hilo o múltiples hilos de ejecución.
2.5.- Hilos y relación con los procesos
Hilos. Sistema monohilo. Definición
SO Monohilo - Hilo - Pila 1 y 2
Un sistema operativo monohilo (un solo hilo de ejecución por proceso) constará de una pila de proceso y una pila de núcleo.
2.5.- Hilos y relación con los procesos
Hilos. Sistema multihilo. Definición
Sistema multihilo - Hilo - Propia - Pila
En un sistema multihilo cada hilo consta de su propia pila de hilo, un bloque de control por cada hilo y una pila del núcleo
2.5.- Hilos y relación con los procesos
Hilos. Características
Un hilo posee las siguientes características
Un hilo posee las siguientes características:
* Contador de programa.
* Juego de registros.
* Espacio de pila.
2.5.- Hilos y relación con los procesos
Hilos. Zonas comunes
Los hilos dentro de una misma aplicación disponen de las
siguientes zonas comunes
Los hilos dentro de una misma aplicación disponen de las siguientes zonas comunes:
* Sección de código.
* Sección de datos.
* Los recursos del sistema operativo.
2.5.- Hilos y relación con los procesos
Hilos. Estados
Un hilo, al igual que un proceso, está caracterizado además por su estado. Los estados en los que se puede encontrar un hilo son
Un hilo, al igual que un proceso, está caracterizado además por su estado. Los estados en los que se puede encontrar un hilo son:
* Ejecución.
* Preparado.
* Bloqueado.
2.5.- Hilos y relación con los procesos
Hilos. Estados. Operaciones
Para realizar la transición de un estado a otro existen cuatro operaciones básicas
Para realizar la transición de un estado a otro existen cuatro operaciones básicas:
* Creación
* Bloqueo
* Desbloqueo
* Terminación
2.5.- Hilos y relación con los procesos
Hilos. Estados. Operaciones. Creación. Definición
Crear - Proceso - Hilo - Asociado
Cuando se crea un nuevo proceso automáticamente se crea un hilo asociado a dicho proceso.
2.5.- Hilos y relación con los procesos
Hilos. Estados. Operaciones. Bloqueo. Definición
Hilo - Espera - Evento - Procesador
Un hilo debe esperar a que un evento indique su ejecución. De esta forma el procesador ejecutará otro proceso que esté preparado.
2.5.- Hilos y relación con los procesos
Hilos. Estados. Operaciones. Desbloqueo. Definición
Evento - Proceso - Salida - Cola
Evento que indica la salida de un proceso del estado de bloqueo y pasa a la cola de preparados.
2.5.- Hilos y relación con los procesos
Hilos. Estados. Operaciones. Terminación. Definición
Hilo - Liberar - Recursos
Cuando un hilo finaliza, se liberan los recursos que estaba usando.
2.5.- Hilos y relación con los procesos
Hilos. Procesos. Operaciones
Hilos - Procesos - Vinculados
En la mayor parte de los casos, los hilos realizan las mismas operaciones que los procesos. La existencia de un hilo está vinculada a un proceso.
2.5.- Hilos y relación con los procesos
Hilos. Procesos. Comunicación
Hilos - Procesos - Comunicación - Rápida
Los hilos permiten que la comunicación entre los distintos procesos sea más rápida, además, se tarda un tiempo menor en crear un nuevo hilo que un nuevo proceso.
2.6.- Programación multiproceso
Multiproceso. Definición
A la hora de ejecutar una aplicación, el sistema operativo se encarga de asignar en la CPU las distintas tareas que se deben realizar. En muchas ocasiones existen aplicaciones que necesitan que estas tareas se realicen de forma simultánea. Gracias a esto es posible mantener en ejecución
distintos programas a la vez.
A la hora de ejecutar una aplicación, el sistema operativo se encarga de asignar en la CPU las distintas tareas que se deben realizar. En muchas ocasiones existen aplicaciones que necesitan que estas tareas se realicen de forma simultánea. De esta necesidad sale el concepto de multiproceso, que consiste en el uso de dos o más procesadores para la ejecución de varios procesos.
2.6.- Programación multiproceso
Multiproceso. Mecanismos
Mecanismos - Programar - Segundo plano - Recursos
Existen diferentes mecanismos a la hora de programar este tipo de aplicaciones multiproceso y el más utilizado es la realización, en segundo plano, de tareas que no se encuentran en la memoria principal. Esto permite asignar un mayor número de recursos a aquellos procesos que lo necesitan.
2.6.- Programación multiproceso
Multiproceso. Sistema operativo
Subprocesos - SO - Velocidad - Datos - Respuesta - Solicitud
Estas tareas que no se están ejecutando en primer plano suelen ser asignadas a subprocesos del sistema operativo que son iniciados y detenidos de forma controlada. Esto aumenta la velocidad de lectura y escritura de datos para generar una respuesta a la solicitud de un usuario.
2.7.- Sincronización y comunicación entre procesos
Comunicación entre procesos. Definición
Es posible trabajar con procesos que se ejecutan de manera concurrente. Esto ofrece una mayor velocidad y mejora la comunicación con la interfaz de usuario. Es muy importante tener en cuenta que se trata de operaciones con datos que acceden, en muchas ocasiones, a los mismos espacios de memoria. Es necesario que exista una comunicación entre procesos para no bloquear el acceso de otros.
2.7.- Sincronización y comunicación entre procesos
Sincronización entre procesos. Definición
La sincronización entre procesos es fundamental para conseguir una correcta funcionalidad y para ello se suele hacer uso de señales que definen el estado que tendrá cada uno de esos procesos durante un periodo de tiempo determinado. Estas señales son enviadas de forma independiente a cada proceso y cada señal define un comportamiento.
2.7.- Sincronización y comunicación entre procesos
Sincronización entre procesos. Señales
Las más comunes son
Las más comunes son:
* SIGKILL
* SLEEP
* KILL
* SIGINT
2.7.- Sincronización y comunicación entre procesos
Sincronización entre procesos. Señales. SIGKILL. Definición
Se usa para terminar con un proceso.
2.7.- Sincronización y comunicación entre procesos
Sincronización entre procesos. Señales. SLEEP. Definición
Suspende el proceso durante una cantidad de segundos.
2.7.- Sincronización y comunicación entre procesos
Sincronización entre procesos. Señales. KILL. Definición
Envía una señal.
2.7.- Sincronización y comunicación entre procesos
Sincronización entre procesos. Señales. SIGINT. Definición
Se envía una señal a todos los procesos cuando se pulsan las teclas Ctrl+C. Se utiliza para interrumpir la ejecución de un programa.
2.7.- Sincronización y comunicación entre procesos
Comunicación entre procesos. Mecanismos
La comunicación entre procesos se consigue utilizando
los mecanismos ya detallados en apartados anteriores y
los más importantes son: tuberías, paso de mensajes,
monitores o buzones, entre otros. Estos asegurarán
que el intercambio de datos sea correcto y no existan
problemas en la persistencia de datos. Estos procesos se
pueden bloquear a la espera de eventos y desbloquear de
la misma manera.
2.7.- Sincronización y comunicación entre procesos
Comunicación entre procesos. Hilos
Los hilos agilizan las tareas que tienen los procesos, por lo que es importante considerar la posibilidad de que un hilo permanezca bloqueado de forma continuada. Como los hilos no son independientes, sino que forman parte todos del mismo proceso, el proceso podrá llegar a bloquearse por completo, así como todos los hilos que componen ese proceso.
2.8.- Procesos y desarrollo de computación paralela
Procesos. Gestion
La gestión de procesos está a cargo del sistema operativo, al igual que la creación de los mismos, en función de las acciones ejecutadas por el usuario.
2.8.- Procesos y desarrollo de computación paralela
Procesos. Creación
Un nuevo proceso creado es el encargado de solicitar la
creación de otros procesos. Estos nuevos procesos creados dependen del proceso inicial que los creó
2.8.- Procesos y desarrollo de computación paralela
Procesos. Creacion. Arbol de procesos
Conjuntos de procesos dependientes creados reciben el nombre de árbol de procesos.
2.8.- Procesos y desarrollo de computación paralela
Procesos. Creación. Identificador único
Se caracterizan por tener un identificador único y un nombre que los distingue de los demás.
2.8.- Procesos y desarrollo de computación paralela
Procesos. Creación. Padre e hijo
El proceso creador se denomina Padre y el proceso creado Hijo. De la misma forma, estos procesos hijos pueden crear a su vez nuevos hijos.Estos procesos comparten los recursos de la CPU
2.8.- Procesos y desarrollo de computación paralela
Procesos. Creación. Funciones
Las funciones que permiten crear un proceso son createProcess() para Windows y fork() para Linux. Son creadas en el mismo espacio de direcciones y se comunican entre sí mediante lectura y escritura.
2.8.- Procesos y desarrollo de computación paralela
Procesos. Creación. Funciones. Diagrama
Las funciones que permiten crear un proceso son createProcess() para Windows y fork() para Linux. Son creadas en el mismo espacio de direcciones y se comunican entre sí mediante lectura y escritura.
2.8.- Procesos y desarrollo de computación paralela
Procesos. Finalización. Padre e hijo
Un proceso padre puede finalizar la ejecución de un proceso hijo en cualquier momento, aunque por lo general, es el hijo quien informa al proceso padre de que ha terminado su ejecución solicitando su terminación.
2.8.- Procesos y desarrollo de computación paralela
Procesos. Finalización. Función
Es importante comprobar que los procesos han terminado de una forma ordenada, es decir, que los procesos hijos finalizan antes de hacerlo el padre. Para obligar a los procesos hijos a finalizar su ejecución se puede hacer uso de la orden destroy() que realizará una terminación en cascada de todos los procesos hijos.
2.8.- Procesos y desarrollo de computación paralela
Procesos. Finalización. Liberar recursos
En lenguajes como java ya existe un mecanismo automático denominado garbage collector (recolector de basura) que se encarga de liberar los recursos cuando un proceso finaliza. En otros lenguajes, un proceso que finaliza su ejecución de forma correcta liberará sus recursos al finalizar su ejecución por medio de la operación exit().
2.8.- Procesos y desarrollo de computación paralela
Procesos. Control y gestión. Computación paralela
El control y gestión ordenado de estos procesos es muy importante en la computación paralela. El desarrollo de aplicaciones que gestionan las vías de comunicación entre distintos procesos de forma eficiente permite incrementar mucho la productividad de un software.
2.8.- Procesos y desarrollo de computación paralela
Procesos. Control y gestión. Separación tareas
Es necesario separar qué tareas requieren de un mayor número de recursos y cuáles se pueden realizar en segundo plano, permitiendo una comunicación fluida con la interfaz de usuario.
2.8.- Procesos y desarrollo de computación paralela
Procesos. Control y gestión. Tiempo de respuesta
De esta forma se evita una gran cantidad de tiempo de espera por la respuesta de algunas de las peticiones
generadas por los usuarios durante el uso de la aplicación.
2.9.- Depuración y documentación de aplicaciones
Linux. Comando. Mostrar procesos activos
En Linux existe el comando ps. Su función es mostrar la información de los procesos que se encuentran activos en el sistema.
2.9.- Depuración y documentación de aplicaciones
Linux. Comando. Mostrar procesos activos. Información
Información:
* UID: usuario del proceso.
* PID: identificador del proceso.
* PPID: PID del padre del proceso.
* C: uso del procesador.
* STIME: hora de inicio del proceso.
* TTY: terminal asociado.
* TIME: tiempo de ejecución del proceso.
* CMD: nombre del proceso.