UF2. Procesos e hilos Flashcards

1
Q

Tenemos la siguiente clase definida: Public class Reloj extends Applet implements Runnable {} ¿Cuál es la interface?:

A

Runnable.

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

¿Qué es un Programa?

A

Toda la información (código + datos) que están almacenados en memoria secundaria y que dan solución a una necesidad del usuario que lo ha ejecutado.

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

¿Qué es un Proceso?

A

Toda la información (código + datos) que están almacenados en memoria secundaria y que dan solución a una necesidad del usuario que lo ha ejecutado.

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

¿Qué es un Proceso?

A

Un proceso es un programa en ejecución Gestiona recursos necesarios para ejecutar el programa Contiene uno o varios hilos de ejecución

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

Proceso. Contador de programa

A

En qué pasó está la 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

Proceso. Imagén de memoria

A

Espacio de memoria usada por proceso.

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

Proceso. Estado del procesador

A

Valor de registros del procesador en ejecución.

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

¿Qué es un Ejecutable?

A

Fichero que contiene toda la información necesaria para crear un proceso a partir de los datos almacenados de un programa, esto es, fichero que permite poner el programa en ejecución como proceso.

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

¿Qué es un Hilo?

A

Un hilo es un flujo de control independiente dentro de un programa. Secuencia de instrucciones que se ejecutan.

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

¿Qué es un Sistema Operativo?

A

Programa que hace de intermediario entre el usuario y las aplicaciones que usa, así como con el hardware del ordenador.
Ejecuta programas del usuario, hace de interfaz entre usuario y hardware y usa los recursos del ordenador de forma eficiente.

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

¿Qué es un proceso DAEMON (Demonio)?

A

Proceso no interactivo que se ejecuta continuamente en segundo plano Son controlados por el Sistema Operativo y el usuario no puede intervenir Proporcionan un servicio básico para el resto de procesos.

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

¿Qué es la Programación Concurrente?

A
  • Escuchar música
  • Imprimir un documento
  • Ver un vídeo en Youtube
  • Descargar un fichero
  • Tener abierta une ventana de Chrome con 5 pestañas
  • Recibir notificaciones de actualizaciones

La programación concurrente permite tener en ejecución varias tareas interactivas al mismo tiempo

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

2.1. Programación concurrente, paralela y distribuida

Las tareas se pueden ejecutar de 3 formas

A
  • Programación concurrente
  • Programación paralela
  • Programación distribuida
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

2.1. Programación concurrente, paralela y distribuida

Programación concurrente. Único procesador

A

Sólo un proceso en ejecución en un momento determinado, asignando orden y cambiando proceso cada poco tiempo. El usuario piensa que todos se ejecutan a la vez.

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

2.1. Programación concurrente, paralela y distribuida

Programación paralela. Varios núcleos

A

Cada núcleo ejecuta un proceso al mismo tiempo. EI SO planifica los trabajos por ejecutar en cada núcleo. Todos los núcleos comparten la memoria.

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

2.1. Programación concurrente, paralela y distribuida

Programación distribuida. Varios ordenadores en red

A

Cada uno con sus propios procesadores y propia memoria Gestión de ordenadores en paralelo La memoria no se comparte, por lo que la comunicación requiere métodos más costosos a través de la red.

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

2.1. Programación concurrente, paralela y distribuida

¿Qué es la Concurrencia?

A

La concurrencia es la propiedad que permite a los sistemas ejecutar diferentes procesos en un mismo tiempo.
La programación concurrente es la que se encarga de ejecutar las tareas simultáneamente.
Una aplicacón concurrente no garantiza menor tiempo.

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

2.1. Programación concurrente, paralela y distribuida

Ejecución no concurrente. Ejemplo

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

2.1. Programación concurrente, paralela y distribuida

Ejecución concurrente. Ejemplo

A

La concurrencia es la propiedad que permite a los sistemas ejecutar diferentes procesos en un mismo tiempo.
La programación concurrente es la que se encarga de ejecutar las tareas simultáneamente.
Una aplicacón concurrente no garantiza menor tiempo.

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

2.1. Programación concurrente, paralela y distribuida

Condiciones para que se pueda dar la Programación Concurrente

A
  • Secuencia de ejecución
  • Comuniación entre procesos
  • Acceso coordinado a los recursos
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

2.1. Programación concurrente, paralela y distribuida

Ventajas de la Programación Concurrente

A
  • 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
22
Q

2.1. Programación concurrente, paralela y distribuida

Ventajas de la Programación Concurrente

A
  • Posibilita la compartición de recursos.
  • Facilita la programación de aplicaciones en tiempo real.
  • Puede reducir los tiempos de ejecución.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

2.1. Programación concurrente, paralela y distribuida

Señala la respuesta correcta:
* a. Ambas respuestas son incorrectas.
* b. Ambas respuestas son correctas.
* c. La programación concurrente aprovecha mejor la CPU.
* d. La programación concurrente reduce la velocidad de ejecución.

A

c. La programación concurrente aprovecha mejor la CPU.

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

2.1. Programación concurrente, paralela y distribuida

Señala la respuesta correcta:
* a. Ambas respuestas son correctas.
* b. La programación concurrente aprovecha mejor la CPU.
* c. Ambas respuestas son incorrectas.
* d. La programación concurrente reduce la velocidad de ejecución.

A

b. La programación concurrente aprovecha mejor la CPU.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
# 2.1. Programación concurrente, paralela y distribuida Condiciones de Bernstein. Operaciones
* Operaciones de lectura: se accede al valor almacenado en una variable * Operaciones de escritura: se escribe un valor para una variable ## Footnote * E(Si) ∩ L(Sj) = Ø * E(Si) ∩ E(Sj) = Ø * L(Si) ∩ E(Sj) = Ø
26
# 2.1. Programación concurrente, paralela y distribuida Condiciones de Bernstein. Condiciones
Para que dos instrucciones puedan ejecutarse concurrentemente se han de cumplir estas tres condiciones Aplicando las condiciones a los conjuntos, cuando hay elementos comunes, vemos que no pueden ser independientes (la intersección es distinta del vacío) ## Footnote * E(Si) ∩ L(Sj) = Ø * E(Si) ∩ E(Sj) = Ø * L(Si) ∩ E(Sj) = Ø
27
# 2.1. Programación concurrente, paralela y distribuida Tenemos las siguientes instrucciones: I1 = a = x +1; I2 = b = x + z; I3 = c = x – 1; ¿Cuál de las siguientes respuestas es la correcta?
Las tres instrucciones se pueden ejecutar concurrentemente. ## Footnote * E(Si) ∩ L(Sj) = Ø * E(Si) ∩ E(Sj) = Ø * L(Si) ∩ E(Sj) = Ø
28
# 2.1. Programación concurrente, paralela y distribuida Tenemos las siguientes instrucciones: I1 = a = x +1; I2 = b = x + z; I3 = c = x – 1; ¿Cuál de las siguientes respuestas es la correcta?
Las tres instrucciones se pueden ejecutar concurrentemente. ## Footnote * E(Si) ∩ L(Sj) = Ø * E(Si) ∩ E(Sj) = Ø * L(Si) ∩ E(Sj) = Ø
29
# 2.1. Programación concurrente, paralela y distribuida Según las condiciones de Bernstein, ¿estas instrucciones se pueden ejecutar simultáneamente? I1 => c = b + 1 I2 => x = b + c
No, ésta no se cumple: E(Si) ∩ L(Sj) = Ø ## Footnote * E(Si) ∩ L(Sj) = Ø * E(Si) ∩ E(Sj) = Ø * L(Si) ∩ E(Sj) = Ø
30
# 2.1. Programación concurrente, paralela y distribuida ¿Cuáles son los problemas inherentes a la programación concurrente?
Condición de sincronización y exclusión mutua.
31
# 2.1. Programación concurrente, paralela y distribuida Inconvenientes de la Programación Concurrente
* Exclusión mutua * Abrazo mortal * Inanición
32
# 2.1. Programación concurrente, paralela y distribuida Inconvenientes de la Programación Concurrente. Exclusión mutua
* Cuando dos o más procesos compiten por un mismo recurso * Se puede producir inconsistencia de los datos si uno lee el recurso y el otro escribe * Solución: Región crítica para proteger al recurso compartido
33
# 2.1. Programación concurrente, paralela y distribuida Inconvenientes de la Programación Concurrente. Abrazo mortal
* Cuando dos o más procesos quedan bloqueados porque esperan un recurso que está ocupado * Un proceso controla al Recurso A pero necesita al Recurso B para terminar. El otro proceso controla al Recurso B y necesita al Recurso A para terminar * ¿Pueden terminar alguno de los dos? * Solución: No apropiar el recurso de forma permanente
34
# 2.1. Programación concurrente, paralela y distribuida Inconvenientes de la Programación Concurrente. Inanición
* Un proceso se queda esperando un recurso compartido que siempre se le deniega * Ejemplo: la Cena de los Filósofos o la cena china * Solución: Consumo un recurso y si no puedo consumir el otro recurso, libero al que tenía.
35
# 2.2. Paradigmas de Programación Paralela y Distribuida ¿Que es la Programación paralela?
En este tipo de programación muchas instrucciones se ejecutan simultaneamente. Permite dar solución a problemas de grandes dimensiones.
36
# 2.2. Paradigmas de Programación Paralela y Distribuida Programación paralela. Ventajas
* Ejecución de tareas simultaneas * Resolver problemas complejos * Disminute tiempo de ejecución
37
# 2.2. Paradigmas de Programación Paralela y Distribuida Programación paralela. Desventajas
* Dificultad de programación * Complejidad de acceso a datos
38
# 2.2. Paradigmas de Programación Paralela y Distribuida ¿Qué es la Programación distribuida?
Conjuntos de maquinas separadas fisicamente, interconectados por una red.
39
# 2.2. Paradigmas de Programación Paralela y Distribuida ¿Cuándo conviene realizar un sistema distribuido?
* El sistema interactúa con un entorno distribuido geográficamente * Se comparten los recursos por todas las aplicaciones * Cuando se necesita escalar el número de equipos * Se requiere una gran potencia de cálculo * El sistema ha de presentar alta disponibilidad, siempre activo
40
# 2.3. identificación de los estados de un proceso Estados de un proceso
* Activo - Ejecución * Bloqueado * Preparada
41
# 2.3. identificación de los estados de un proceso Estados de un proceso. Activo - Ejecución
Proceso asignado para ejecutarse.
42
# 2.3. identificación de los estados de un proceso Estados de un proceso. Bloqueado
Proceso que ha interrumpido su ejecución.
43
# 2.3. identificación de los estados de un proceso Estados de un proceso. Preparado
Proceso disponible para entrar en la CPU.
44
# 2.3. identificación de los estados de un proceso Transiciones entre estados de un proceso
* Bloqueo * Apropiación * Asignación del procesador * Fin de bloque
45
# 2.3. identificación de los estados de un proceso Transiciones entre estados de un proceso. Bloqueo
Llamada al sistema por cual debe esperar respuesta.
46
# 2.3. identificación de los estados de un proceso Transiciones entre estados de un proceso. Apropiación
Gestor de procesos indica al proceso que debe dejar la CPU.
47
# 2.3. identificación de los estados de un proceso Transiciones entre estados de un proceso. Asignación del procesador
Entra a ejecutarse.
48
# 2.3. identificación de los estados de un proceso Transiciones entre estados de un proceso. Fin de bloque
Ha acabado la operación por la cual había pasado a bloqueado.
49
# 2.3. identificación de los estados de un proceso ¿Qué es un proceso zombie?
Aquel que ha finalizado su ejecución, pero aún tiene recursos sin liberar.
50
# 2.3. identificación de los estados de un proceso ¿Qué es un proceso zombie?
Un proceso que ha terminado pero que sus recursos no han sido liberados.
51
# 2.7. Sincronización y comunicación entre procesos ¿Para qué utilizamos la función KILL?
Para enviar una señal.
52
# 2.7. Sincronización y comunicación entre procesos ¿Para qué utilizamos la función KILL?
Para enviar una señal.
53
# 2.7. Sincronización y comunicación entre procesos ¿Cuál de las siguientes sentencias utilizarías para que un proceso se suspenda 1 segundo?
SLEEP(1000)
54
# 2.8. Gestión de procesos y desarrollo de computación paralela Tenemos un proceso ABUELO, un proceso HIJO y un proceso NIETO, ¿cuál de estas comunicaciones no se puede hacer directamente?
DEL ABUELO al NIETO.
55
# 2.8. Gestión de procesos y desarrollo de computación paralela ¿Qué significa el valor 678 que devuelve un fork()?
Es el PID del proceso hijo.
56
# 2.8. Gestión de procesos y desarrollo de computación paralela ¿Qué significa el valor 678 que devuelve un fork()?
Es el PID del proceso hijo.
57
# 2.8. Gestión de procesos y desarrollo de computación paralela ¿Qué significa el valor 0 que devuelve un fork()?
Nos encontramos en el proceso hijo.
58
# 3.2. Gestión de hilos Los hilos no comparten
Contador del programa. ## Footnote Comparten: * Variables globales * Ficheros abiertos * Instrucciones
59
# 3.2. Gestión de hilos Los hilos no comparten
Registros. | Comparten: ## Footnote Comparten: * Recursos * Código * Datos
60
# 3.2. Gestión de hilos Los hilos no comparten
Registros. | Comparten: ## Footnote Comparten: * Código * Recursos * Datos
61
# 3.2. Gestión de hilos Los hilos no comparten
Contador del programa. | Comparten: ## Footnote Comparten: * Instrucciones * Variables globales * Ficheros abiertos
62
# 3.4. Estados de un hilo. Cambios de estado ¿Qué función utilizamos para iniciar un hilo?
Start()
63
# 3.4. Estados de un hilo. Cambios de estado ¿Con cuál de estos métodos bloqueas un hilo?
Wait()
64
# 3.4. Estados de un hilo. Cambios de estado ¿Cuál es la sentencia para que el proceso padre espere a que finalice el hijo?
Wait(NULL)
65
# 3.4. Estados de un hilo. Cambios de estado En una ejecución tenemos dos hilos que han realizado un wait(), ¿Cómo despertamos a los dos hilos?
Con un notifyAll().