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
Q

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

A

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.

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

2.2.- Paradigmas de programación paralela y distribuida

Programación paralela. Modelos. Modelo de paso de mensaje. Incovenientes

Procesos - Implementar - Mensajes

A

El principal inconveniente es que todos los procesos deben tener implementados métodos que puedan interpretar este intercambio de mensajes.

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

2.2.- Paradigmas de programación paralela y distribuida

Programacion distribuida. Definición

Tipo - Técnica - Programacion - Maquinas - Red

A

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

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

2.2.- Paradigmas de programación paralela y distribuida

Programacion distribuida. Solución a problemas

A

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.

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

2.2.- Paradigmas de programación paralela y distribuida

Programacion distribuida. Grid. Definición

Maquina - Solución - Proceso - Conjunto

A

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.

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

2.2.- Paradigmas de programación paralela y distribuida

Programacion distribuida. Computación de altas prestaciones

Programación - Altas prestaciones - Configuración - Escenario

A

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.

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

2.2.- Paradigmas de programación paralela y distribuida

Programacion distribuida. Sistemas cliente-servidor

Enfocada - Sistemas distribuidos - Independiente - Repercute

A

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.

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

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

A

La comunicación entre estas máquinas se realiza mediante la llamada de procedimientos remotos (RPC), invocación remota de objetos (RMI) y sockets.

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

2.2.- Paradigmas de programación paralela y distribuida

Programacion distribuida. Carácteristicas

Características de los sistemas distribuidos

A

Características de los sistemas distribuidos:
* Capacidad de balanceo
* Alta disponibilidad

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

2.2.- Paradigmas de programación paralela y distribuida

Programacion distribuida. Carácteristicas. Capacidad de balanceo. Definición

Maquina - Recursos - Proceso

A

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.

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

2.2.- Paradigmas de programación paralela y distribuida

Programacion distribuida. Carácteristicas. Alta disponibilidad. Definición

Carácteristicas - Programación - Flexibilidad - Fallo

A

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.

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

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

A

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.

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

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

A

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.

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

2.2.- Paradigmas de programación paralela y distribuida

Programacion distribuida. Ventajas

Ventajas de la programación distribuida

A

Ventajas de la programación distribuida:
* Permite escalabilidad, capacidad de crecimiento.
* Permite la compartición de recursos y datos.
* Mayor flexibilidad.
* Alta disponibilidad.

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

2.2.- Paradigmas de programación paralela y distribuida

Programacion distribuida. Inconvenientes

Inconvenientes de la programación distribuida

A

Inconvenientes de la programación distribuida:
* Pérdida de mensajes.
* Está expuesta a diferentes ataques para vulnerar su seguridad.

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

2.3.- Estados de un proceso

Proceso. Definición

Conjunto - Instrucciones

A

Un proceso es un conjunto de instrucciones que se van a ejecutar dentro de la CPU

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

2.3.- Estados de un proceso

Procesos. Indicador. Definición

Proceso - Estado

A

Todo proceso está caracterizado por un indicador que define la situación o estado en el que se encuentra

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

2.3.- Estados de un proceso

Procesos. Estados

Al menos existen tres estados diferentes

A

Al menos existen tres estados diferentes:
* Activo o en ejecución
* Bloqueado
* Preparado

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

2.3.- Estados de un proceso

Procesos. Estados. Activo o en ejecución. Definición

Procesos - Ejecutar - Procesador

A

Aquellos procesos que han sido asignados para ejecutarse en el procesador.

44
Q

2.3.- Estados de un proceso

Procesos. Estados. Bloqueado. Definición

Procesos - Espera - Operación - Bloqueado

A

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
Q

2.3.- Estados de un proceso

Procesos. Estados. Preparado. Definición

Proceso - Entrar - Ejecutarse

A

Aquellos procesos que se encuentran disponibles para entrar a la CPU y ejecutarse.

46
Q

2.3.- Estados de un proceso

Procesos. Transiciones permitidas

Durante la vida de un proceso, se realizan transiciones entre los diferentes estados.

A

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
Q

2.3.- Estados de un proceso

Procesos. Transiciones permitidas. Transición bloqueo. Definición

Proceso - Llamada - Sistema - Recursos

A

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
Q

2.3.- Estados de un proceso

Procesos. Transiciones permitidas. Transicion apropiación. Definición

Proceso - Gestor de procesos - Sale - CPU

A

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
Q

2.3.- Estados de un proceso

Procesos. Transiciones permitidas. Transición asignación. Definición

Proceso - Entra - CPU

A

Cuando un proceso entra a ejecutarse en la CPU.

50
Q

2.3.- Estados de un proceso

Procesos. Transiciones permitidas. Transición fin de bloque. Definición

Proceso - Espera - Operación

A

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
Q

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

A

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
Q

2.3.- Estados de un proceso

Procesos. Estados. Unix

Cabe destacar que existen varios estados nuevos, como pueden ser

A

Cabe destacar que existen varios estados nuevos, como pueden ser:
* Nuevo
* Terminado
* Zombies

53
Q

2.3.- Estados de un proceso

Procesos. Estados. Unix. Nuevo. Definición

Procesos - Elegidos - Iniciar

A

Aquellos procesos que aún no han sido elegidos para iniciar su procesamiento.

54
Q

2.3.- Estados de un proceso

Procesos. Estados. Unix. Terminado. Definición

Procesos - Finalizado

A

Aquellos procesos que han finalizado su ejecución.

55
Q

2.3.- Estados de un proceso

Procesos. Estados. Unix. Zombies. Definición

Procesos - Finalizado - Liberar - Recursos

A

Aquellos procesos que han finalizado su ejecución, pero no han liberado los recursos que han utilizado

56
Q

2.4.- Ejecutables. Procesos. Servicios

Ejecutable. Definición

Archivos - Instrucciones - Código - Compilador

A

Son archivos binarios que contienen un conjunto de instrucciones en código fuente que el compilador ha traducido a lenguaje máquina.

57
Q

2.4.- Ejecutables. Procesos. Servicios

Ejecutables. Sistema operativo

Tipo - Archivos - Llamadas - SO

A

Este tipo de archivos suele contener instrucciones de llamada a las funciones del sistema operativo.

58
Q

2.4.- Ejecutables. Procesos. Servicios

Ejecutables. Extensiones

Tipo - Archivos - Incomprensibles - Extensiones

A

Este tipo de archivos son incomprensibles para el ser humano. Algunos de los más comunes son .bat, .com, .exe y .bin.

59
Q

2.4.- Ejecutables. Procesos. Servicios

Proceso. Definicion

Conjunto - Intrucciones - Microprocesador - Programa

A

Conjunto de instrucciones que ejecutará el microprocesador, es lo que se entiende como un programa en ejecución.

60
Q

2.4.- Ejecutables. Procesos. Servicios

Procesos. Sistema operativo

Procesos - SO - Crear - Destruir

A

Los procesos son gestionados por el sistema operativo, que es el encargado de crearlos y destruirlos.

61
Q

2.4.- Ejecutables. Procesos. Servicios

Procesos. Memoria

Recursos - Memoria - Ejecución

A

Requieren de unos recursos de memoria que reservan para su ejecución.

62
Q

2.4.- Ejecutables. Procesos. Servicios

Procesos. Sistemas operativos multihilo

SO Multihilo - Hilos - Procesos - Crear - Memoria

A

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
Q

2.4.- Ejecutables. Procesos. Servicios

Procesos. Estado de ejecución

Procesos - Estado - Valor - CPU

A

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
Q

2.4.- Ejecutables. Procesos. Servicios

Servicio. Definición

Tipo - Procesos Informático - Carácterísticas

A

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
Q

2.4.- Ejecutables. Procesos. Servicios

Servicios. Ejecución continua

Ejecución - Sistema - UI

A

Pueden permanecer de manera continuada en ejecución dentro del sistema y carecen de interfaz gráfica.

66
Q

2.4.- Ejecutables. Procesos. Servicios

Servicios. Sistema Operativo

Servicios - Mantenimiento - SO

A

La mayor parte de estos servicios están destinados a realizar tareas de mantenimiento del sistema operativo de forma periódica.

67
Q

2.5.- Hilos y relación con los procesos

Hilo. Definición

Hilo - Concepto reciente - Ejecución - Proceso

A

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
Q

2.5.- Hilos y relación con los procesos

Hilos. Relación con los procesos

Proceso - Contener - Hilos

A

Un proceso puede contener un hilo o múltiples hilos de ejecución.

69
Q

2.5.- Hilos y relación con los procesos

Hilos. Sistema monohilo. Definición

SO Monohilo - Hilo - Pila 1 y 2

A

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
Q

2.5.- Hilos y relación con los procesos

Hilos. Sistema multihilo. Definición

Sistema multihilo - Hilo - Propia - Pila

A

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
Q

2.5.- Hilos y relación con los procesos

Hilos. Características

Un hilo posee las siguientes características

A

Un hilo posee las siguientes características:
* Contador de programa.
* Juego de registros.
* Espacio de pila.

72
Q

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

A

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
Q

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

A

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
Q

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

A

Para realizar la transición de un estado a otro existen cuatro operaciones básicas:
* Creación
* Bloqueo
* Desbloqueo
* Terminación

75
Q

2.5.- Hilos y relación con los procesos

Hilos. Estados. Operaciones. Creación. Definición

Crear - Proceso - Hilo - Asociado

A

Cuando se crea un nuevo proceso automáticamente se crea un hilo asociado a dicho proceso.

76
Q

2.5.- Hilos y relación con los procesos

Hilos. Estados. Operaciones. Bloqueo. Definición

Hilo - Espera - Evento - Procesador

A

Un hilo debe esperar a que un evento indique su ejecución. De esta forma el procesador ejecutará otro proceso que esté preparado.

77
Q

2.5.- Hilos y relación con los procesos

Hilos. Estados. Operaciones. Desbloqueo. Definición

Evento - Proceso - Salida - Cola

A

Evento que indica la salida de un proceso del estado de bloqueo y pasa a la cola de preparados.

78
Q

2.5.- Hilos y relación con los procesos

Hilos. Estados. Operaciones. Terminación. Definición

Hilo - Liberar - Recursos

A

Cuando un hilo finaliza, se liberan los recursos que estaba usando.

79
Q

2.5.- Hilos y relación con los procesos

Hilos. Procesos. Operaciones

Hilos - Procesos - Vinculados

A

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
Q

2.5.- Hilos y relación con los procesos

Hilos. Procesos. Comunicación

Hilos - Procesos - Comunicación - Rápida

A

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
Q

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

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
Q

2.6.- Programación multiproceso

Multiproceso. Mecanismos

Mecanismos - Programar - Segundo plano - Recursos

A

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
Q

2.6.- Programación multiproceso

Multiproceso. Sistema operativo

Subprocesos - SO - Velocidad - Datos - Respuesta - Solicitud

A

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
Q

2.7.- Sincronización y comunicación entre procesos

Comunicación entre procesos. Definición

A

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
Q

2.7.- Sincronización y comunicación entre procesos

Sincronización entre procesos. Definición

A

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
Q

2.7.- Sincronización y comunicación entre procesos

Sincronización entre procesos. Señales

Las más comunes son

A

Las más comunes son:
* SIGKILL
* SLEEP
* KILL
* SIGINT

87
Q

2.7.- Sincronización y comunicación entre procesos

Sincronización entre procesos. Señales. SIGKILL. Definición

A

Se usa para terminar con un proceso.

88
Q

2.7.- Sincronización y comunicación entre procesos

Sincronización entre procesos. Señales. SLEEP. Definición

A

Suspende el proceso durante una cantidad de segundos.

89
Q

2.7.- Sincronización y comunicación entre procesos

Sincronización entre procesos. Señales. KILL. Definición

A

Envía una señal.

90
Q

2.7.- Sincronización y comunicación entre procesos

Sincronización entre procesos. Señales. SIGINT. Definición

A

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
Q

2.7.- Sincronización y comunicación entre procesos

Comunicación entre procesos. Mecanismos

A

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
Q

2.7.- Sincronización y comunicación entre procesos

Comunicación entre procesos. Hilos

A

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
Q

2.8.- Procesos y desarrollo de computación paralela

Procesos. Gestion

A

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
Q

2.8.- Procesos y desarrollo de computación paralela

Procesos. Creación

A

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
Q

2.8.- Procesos y desarrollo de computación paralela

Procesos. Creacion. Arbol de procesos

A

Conjuntos de procesos dependientes creados reciben el nombre de árbol de procesos.

96
Q

2.8.- Procesos y desarrollo de computación paralela

Procesos. Creación. Identificador único

A

Se caracterizan por tener un identificador único y un nombre que los distingue de los demás.

97
Q

2.8.- Procesos y desarrollo de computación paralela

Procesos. Creación. Padre e hijo

A

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
Q

2.8.- Procesos y desarrollo de computación paralela

Procesos. Creación. Funciones

A

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
Q

2.8.- Procesos y desarrollo de computación paralela

Procesos. Creación. Funciones. Diagrama

A

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
Q

2.8.- Procesos y desarrollo de computación paralela

Procesos. Finalización. Padre e hijo

A

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
Q

2.8.- Procesos y desarrollo de computación paralela

Procesos. Finalización. Función

A

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
Q

2.8.- Procesos y desarrollo de computación paralela

Procesos. Finalización. Liberar recursos

A

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
Q

2.8.- Procesos y desarrollo de computación paralela

Procesos. Control y gestión. Computación paralela

A

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
Q

2.8.- Procesos y desarrollo de computación paralela

Procesos. Control y gestión. Separación tareas

A

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
Q

2.8.- Procesos y desarrollo de computación paralela

Procesos. Control y gestión. Tiempo de respuesta

A

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
Q

2.9.- Depuración y documentación de aplicaciones

Linux. Comando. Mostrar procesos activos

A

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
Q

2.9.- Depuración y documentación de aplicaciones

Linux. Comando. Mostrar procesos activos. Información

A

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.