2.-Programación multiproceso Flashcards

1
Q

2.1.- Programación concurrente, paralela y distribuida

Concurrencia. Definición

Propiedad - Sistemas - Ejecutar - Tiempo

A

La concurrencia es una propiedad que permite que los sistemas puedan ejecutar diferentes procesos en un mismo tiempo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

2.1.- Programación concurrente, paralela y distribuida

Proceso. Definición

Proceso - Instrucciones

A

Un proceso comprende todas las instrucciones que se llevarán a cabo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

2.1.- Programación concurrente, paralela y distribuida

Programación concurrente. Definición

Programación concurrente - Tareas - Ejecutar

A

La programación concurrente es la que se encarga de ejecutar las tareas simultáneamente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

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

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

2.1.- Programación concurrente, paralela y distribuida

Programación concurrente. Ventajas

Ventajas de la programación concurrente

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

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

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

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:

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

2.1.- Programación concurrente, paralela y distribuida

Programación concurrente. Problemas

Problemas de la programación concurrente

A

Problemas de la programación concurrente:
* Exclusión mutua
* Abrazo mortal
* Inanición

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

2.1.- Programación concurrente, paralela y distribuida

Programación concurrente. Problemas. Exclusión mutua. Definición

Resultado - Procesos

A

Es el resultado de que dos procesos intenten acceder a la misma variable.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

2.1.- Programación concurrente, paralela y distribuida

Programación concurrente. Problemas. Exclusión mutua. Problema y solución

Inconsistencia - Procesos - Recurso

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

2.1.- Programación concurrente, paralela y distribuida

Programación concurrente. Problemas. Abrazo mortal. Definición

Procesos - Recursos

A

Dos procesos se quedan bloqueados porque están esperando a los recursos que tiene el otro proceso. También es denominado DeadLock o interbloqueo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

2.1.- Programación concurrente, paralela y distribuida

Programación concurrente. Problemas. Inanición. Definición

Procesos - Recursos

A

Un proceso se queda esperando a un recurso compartido, que siempre se le deniega. Sin este recurso el proceso no puede finalizar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

2.2.- Paradigmas de programación paralela y distribuida

Programación paralela. Definción

Tecnica - Programación

A

Es una técnica de programación en la que muchas instrucciones se ejecutan simultáneamente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

2.2.- Paradigmas de programación paralela y distribuida

Programación paralela. Solución a problemas

Tipo programación - Problemas grandes - Problemas pequeños

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

2.2.- Paradigmas de programación paralela y distribuida

Programación paralela. Equipos multiprocesadores

Técnica - Equipos - Tareas

A

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í.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

2.2.- Paradigmas de programación paralela y distribuida

Programación paralela. Ventajas

Ventajas de la programación paralela

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

2.2.- Paradigmas de programación paralela y distribuida

Programación paralela. Inconvenientes

Inconvenientes de la programación paralela

A

Inconvenientes de la programación paralela:
* Mayor dificultad en la programación.
* Mayor complejidad en el acceso a los datos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

2.2.- Paradigmas de programación paralela y distribuida

Programación paralela. Modelos. Definición

Mecanismos - Información

A

Existen diferentes mecanismos de intercambio de información, denominados modelos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

2.2.- Paradigmas de programación paralela y distribuida

Programación paralela. Modelos. Clasificación

Según su forma se pueden clasificar en

A

Según su forma se pueden clasificar en:
* Modelo de memoria compartida
* Modelo de paso de mensaje

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

2.2.- Paradigmas de programación paralela y distribuida

Programación paralela. Modelos. Modelo de memoria compartida. Definición

Tipo - Eficaz - Transferencia - Procesos - RAM

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

2.2.- Paradigmas de programación paralela y distribuida

Programación paralela. Modelos. Modelo de memoria compartida. Secciones criticas

Problemas - Punto acceso

A

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.
.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

2.2.- Paradigmas de programación paralela y distribuida

Programación paralela. Modelos. Modelo de memoria compartida. Controles

Controles - Punto acceso - Lectura - Escritura

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

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

A

Existen diversos mecanismos de control como son: semáforos, tuberías, monitores, etc

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

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

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
# 2.2.- Paradigmas de programación paralela y distribuida Programación paralela. Modelos. Modelo de paso de mensaje. Definición ## Footnote 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.
26
# 2.2.- Paradigmas de programación paralela y distribuida Programación paralela. Modelos. Modelo de paso de mensaje. Incovenientes ## Footnote Procesos - Implementar - Mensajes
El principal inconveniente es que todos los procesos deben tener implementados métodos que puedan interpretar este intercambio de mensajes.
27
# 2.2.- Paradigmas de programación paralela y distribuida Programacion distribuida. Definición ## Footnote 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
28
# 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.
29
# 2.2.- Paradigmas de programación paralela y distribuida Programacion distribuida. Grid. Definición ## Footnote 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.
30
# 2.2.- Paradigmas de programación paralela y distribuida Programacion distribuida. Computación de altas prestaciones ## Footnote 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.
31
# 2.2.- Paradigmas de programación paralela y distribuida Programacion distribuida. Sistemas cliente-servidor ## Footnote 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.
32
# 2.2.- Paradigmas de programación paralela y distribuida Programacion distribuida. Comunicación máquinas ## Footnote 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.
33
# 2.2.- Paradigmas de programación paralela y distribuida Programacion distribuida. Carácteristicas ## Footnote Características de los sistemas distribuidos
Características de los sistemas distribuidos: * Capacidad de balanceo * Alta disponibilidad
34
# 2.2.- Paradigmas de programación paralela y distribuida Programacion distribuida. Carácteristicas. Capacidad de balanceo. Definición ## Footnote 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.
35
# 2.2.- Paradigmas de programación paralela y distribuida Programacion distribuida. Carácteristicas. Alta disponibilidad. Definición ## Footnote 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.
36
# 2.2.- Paradigmas de programación paralela y distribuida Programacion distribuida. Nuevas máquinas ## Footnote 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.
37
# 2.2.- Paradigmas de programación paralela y distribuida Programacion distribuida. Complejidad ## Footnote 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.
38
# 2.2.- Paradigmas de programación paralela y distribuida Programacion distribuida. Ventajas ## Footnote 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.
39
# 2.2.- Paradigmas de programación paralela y distribuida Programacion distribuida. Inconvenientes ## Footnote 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.
40
# 2.3.- Estados de un proceso Proceso. Definición ## Footnote Conjunto - Instrucciones
Un proceso es un conjunto de instrucciones que se van a ejecutar dentro de la CPU
41
# 2.3.- Estados de un proceso Procesos. Indicador. Definición ## Footnote Proceso - Estado
Todo proceso está caracterizado por un indicador que define la situación o estado en el que se encuentra
42
# 2.3.- Estados de un proceso Procesos. Estados ## Footnote Al menos existen tres estados diferentes
Al menos existen tres estados diferentes: * Activo o en ejecución * Bloqueado * Preparado
43
# 2.3.- Estados de un proceso Procesos. Estados. Activo o en ejecución. Definición ## Footnote Procesos - Ejecutar - Procesador
Aquellos procesos que han sido asignados para ejecutarse en el procesador.
44
# 2.3.- Estados de un proceso Procesos. Estados. Bloqueado. Definición ## Footnote 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.
45
# 2.3.- Estados de un proceso Procesos. Estados. Preparado. Definición ## Footnote Proceso - Entrar - Ejecutarse
Aquellos procesos que se encuentran disponibles para entrar a la CPU y ejecutarse.
46
# 2.3.- Estados de un proceso Procesos. Transiciones permitidas ## Footnote 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
47
# 2.3.- Estados de un proceso Procesos. Transiciones permitidas. Transición bloqueo. Definición ## Footnote 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.
48
# 2.3.- Estados de un proceso Procesos. Transiciones permitidas. Transicion apropiación. Definición ## Footnote 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.
49
# 2.3.- Estados de un proceso Procesos. Transiciones permitidas. Transición asignación. Definición ## Footnote Proceso - Entra - CPU
Cuando un proceso entra a ejecutarse en la CPU.
50
# 2.3.- Estados de un proceso Procesos. Transiciones permitidas. Transición fin de bloque. Definición ## Footnote 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.
51
# 2.3.- Estados de un proceso Procesos. Transiciones permitidas. Unix ## Footnote 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
52
# 2.3.- Estados de un proceso Procesos. Estados. Unix ## Footnote Cabe destacar que existen varios estados nuevos, como pueden ser
Cabe destacar que existen varios estados nuevos, como pueden ser: * Nuevo * Terminado * Zombies
53
# 2.3.- Estados de un proceso Procesos. Estados. Unix. Nuevo. Definición ## Footnote Procesos - Elegidos - Iniciar
Aquellos procesos que aún no han sido elegidos para iniciar su procesamiento.
54
# 2.3.- Estados de un proceso Procesos. Estados. Unix. Terminado. Definición ## Footnote Procesos - Finalizado
Aquellos procesos que han finalizado su ejecución.
55
# 2.3.- Estados de un proceso Procesos. Estados. Unix. Zombies. Definición ## Footnote Procesos - Finalizado - Liberar - Recursos
Aquellos procesos que han finalizado su ejecución, pero no han liberado los recursos que han utilizado
56
# 2.4.- Ejecutables. Procesos. Servicios Ejecutable. Definición ## Footnote 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.
57
# 2.4.- Ejecutables. Procesos. Servicios Ejecutables. Sistema operativo ## Footnote Tipo - Archivos - Llamadas - SO
Este tipo de archivos suele contener instrucciones de llamada a las funciones del sistema operativo.
58
# 2.4.- Ejecutables. Procesos. Servicios Ejecutables. Extensiones ## Footnote 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.
59
# 2.4.- Ejecutables. Procesos. Servicios Proceso. Definicion ## Footnote Conjunto - Intrucciones - Microprocesador - Programa
Conjunto de instrucciones que ejecutará el microprocesador, es lo que se entiende como un programa en ejecución.
60
# 2.4.- Ejecutables. Procesos. Servicios Procesos. Sistema operativo ## Footnote Procesos - SO - Crear - Destruir
Los procesos son gestionados por el sistema operativo, que es el encargado de crearlos y destruirlos.
61
# 2.4.- Ejecutables. Procesos. Servicios Procesos. Memoria ## Footnote Recursos - Memoria - Ejecución
Requieren de unos recursos de memoria que reservan para su ejecución.
62
# 2.4.- Ejecutables. Procesos. Servicios Procesos. Sistemas operativos multihilo ## Footnote 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.
63
# 2.4.- Ejecutables. Procesos. Servicios Procesos. Estado de ejecución ## Footnote 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.
64
# 2.4.- Ejecutables. Procesos. Servicios Servicio. Definición ## Footnote 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
65
# 2.4.- Ejecutables. Procesos. Servicios Servicios. Ejecución continua ## Footnote Ejecución - Sistema - UI
Pueden permanecer de manera continuada en ejecución dentro del sistema y carecen de interfaz gráfica.
66
# 2.4.- Ejecutables. Procesos. Servicios Servicios. Sistema Operativo ## Footnote Servicios - Mantenimiento - SO
La mayor parte de estos servicios están destinados a realizar tareas de mantenimiento del sistema operativo de forma periódica.
67
# 2.5.- Hilos y relación con los procesos Hilo. Definición ## Footnote 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.
68
# 2.5.- Hilos y relación con los procesos Hilos. Relación con los procesos ## Footnote Proceso - Contener - Hilos
Un proceso puede contener un hilo o múltiples hilos de ejecución.
69
# 2.5.- Hilos y relación con los procesos Hilos. Sistema monohilo. Definición ## Footnote 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.
70
# 2.5.- Hilos y relación con los procesos Hilos. Sistema multihilo. Definición ## Footnote 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
71
# 2.5.- Hilos y relación con los procesos Hilos. Características ## Footnote Un hilo posee las siguientes características
Un hilo posee las siguientes características: * Contador de programa. * Juego de registros. * Espacio de pila.
72
# 2.5.- Hilos y relación con los procesos Hilos. Zonas comunes ## Footnote 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.
73
# 2.5.- Hilos y relación con los procesos Hilos. Estados ## Footnote 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.
74
# 2.5.- Hilos y relación con los procesos Hilos. Estados. Operaciones ## Footnote 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
75
# 2.5.- Hilos y relación con los procesos Hilos. Estados. Operaciones. Creación. Definición ## Footnote Crear - Proceso - Hilo - Asociado
Cuando se crea un nuevo proceso automáticamente se crea un hilo asociado a dicho proceso.
76
# 2.5.- Hilos y relación con los procesos Hilos. Estados. Operaciones. Bloqueo. Definición ## Footnote 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.
77
# 2.5.- Hilos y relación con los procesos Hilos. Estados. Operaciones. Desbloqueo. Definición ## Footnote Evento - Proceso - Salida - Cola
Evento que indica la salida de un proceso del estado de bloqueo y pasa a la cola de preparados.
78
# 2.5.- Hilos y relación con los procesos Hilos. Estados. Operaciones. Terminación. Definición ## Footnote Hilo - Liberar - Recursos
Cuando un hilo finaliza, se liberan los recursos que estaba usando.
79
# 2.5.- Hilos y relación con los procesos Hilos. Procesos. Operaciones ## Footnote 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.
80
# 2.5.- Hilos y relación con los procesos Hilos. Procesos. Comunicación ## Footnote 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.
81
# 2.6.- Programación multiproceso Multiproceso. Definición ## Footnote 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.
82
# 2.6.- Programación multiproceso Multiproceso. Mecanismos ## Footnote 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.
83
# 2.6.- Programación multiproceso Multiproceso. Sistema operativo ## Footnote 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.
84
# 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.
85
# 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.
86
# 2.7.- Sincronización y comunicación entre procesos Sincronización entre procesos. Señales ## Footnote Las más comunes son
Las más comunes son: * SIGKILL * SLEEP * KILL * SIGINT
87
# 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.
88
# 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.
89
# 2.7.- Sincronización y comunicación entre procesos Sincronización entre procesos. Señales. KILL. Definición
Envía una señal.
90
# 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.
91
# 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.
92
# 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.
93
# 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.
94
# 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ó
95
# 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.
96
# 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.
97
# 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
98
# 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.
99
# 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.
100
# 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.
101
# 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.
102
# 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().
103
# 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.
104
# 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.
105
# 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.
106
# 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.
107
# 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.