Preguntas de Programacion Concurrente

12
UNIVERSIDAD DEL GOLFO DE MEXICO CAMPUS SALINACRUZ MATERIA: PROGRAMACION CONCURRENTE NOMBRE: SAMUEL PEREZ PINEDA PROFE PEDRO HERNANDEZ DE LA CRUZ SEMESTRE 6 GRUPO 601

Transcript of Preguntas de Programacion Concurrente

UNIVERSIDAD DEL GOLFO DE MEXICOCAMPUS SALINACRUZ

MATERIA: PROGRAMACION CONCURRENTE

NOMBRE:SAMUEL PEREZ PINEDA

PROFEPEDRO HERNANDEZ DE LA CRUZ

SEMESTRE6

GRUPO601

SALINACRUZ A 31 DE MARZO DEL 2014

1.-Qu es un programa?Unprograma informticoes unconjunto de instruccionesque una vez ejecutadas realizarn una o varias tareas en unacomputadora. Sin programas, estas mquinas no pueden funcionar.1Al conjunto general de programas, se le denominasoftware, que ms genricamente se refiere al equipamiento lgico o soporte lgico de una computadora digital.2.-Qu es un proceso?Unprocesoes un conjunto de actividades mutuamente relacionadas o que, al interactuar, transforman elementos de entrada y los convierten en resultados3.-Qu es la concurrencia?La concurrencia es la propiedad de los sistemas que permiten que mltiples procesosseanejecutadosal mismo tiempo, y que potencialmente puedan interactuar entre s.4.-Qu es la programacin concurrente?Es la simultaneidad en la ejecucin de mltiples tareas interactivas. Estas tareas pueden ser un conjunto deprocesosohilos de ejecucincreados por un nico programa. Las tareas se pueden ejecutar en una solaunidad central de proceso(multiprogramacin), envarios procesadoreso en una red decomputadores distribuidos. La programacin concurrente est relacionada con laprogramacin paralela, pero enfatiza ms la interaccin entre tareas. As, la correcta secuencia de interacciones o comunicaciones entre los procesos y el acceso coordinado de recursos que se comparten por todos los procesos o tareas son las claves de esta disciplina.

5.-Ponga un ejemplo de concurrencia de procesos7La concurrencia de procesos se refiere a las situaciones en las que dos o ms procesos puedan coincidir en el acceso a un recurso compartido o, dicho de otra forma, que requieran coordinarse en su ejecucin. Para evitar dicha coincidencia, el sistema operativo ofrece mecanismos de arbitraje que permiten coordinar la ejecucin de los procesos.

6.-Cules son las aplicaciones de la concurrencia?Hoy en da, cualquier usuario espera poder hacer varias cosas a la vez y no verse forzado a ejecutar los programas secuencialmente. Aun cuando un PC suele disponer nicamente de un microprocesador, los sistemas operativos multitarea como Windows se encargan de que varios programas se puedan ejecutar concurrentemente incluso cuando slo se dispone de una nica CPU.

Varias aplicaciones:La multiprogramacin se cre para permitir que el tiempo de procesador de la mquina fuese compartido dinmicamente entre varios trabajos o aplicaciones activas.2.Aplicaciones estructuradas:Como ampliacin de los principios del diseo modular y la programacin estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto deprocesos concurrentes.3.Estructura del sistema operativo:Las mismas ventajas de estructuracin son aplicables a los programadores de sistemas y seha comprobado que algunos sistemas operativos estn implementados como un conjunto deprocesos.

7.-Menciona las ventajas de la concurrencia Facilita la programacin de aplicaciones al permitirque stas se estructuren como un conjunto de procesos que cooperan entre s paraalcanzar un objetivo comn.

Acelera los clculos. Si se quiere que una tarea se ejecute con mayor rapidez, lo que se puede hacer es dividirla en procesos, cada unode los cuales se ejecuta enparalelo con los dems.

Posibilita el uso interactivo a mltiples usuarios que trabajan de forma simultnea.

Permite un mejor aprovechamiento de losrecursos, en especial de la CPU,ya que pueden aprovechar las fases de entrada-salida de unos procesos para realizarlas fases de procesamiento de otros.

8,.Menciona las desventajas de la concurrencia Inanicin e interrupcin de procesos

Ocurrencia de bloqueos

Que dos o msprocesos requieran el mismo recurso (No apropiativo)

9.-En que mbitos se ejecuta la concurrencia (tipos de hardware?

10.-Qu es la exclusin mutua?Losalgoritmosdeexclusin mutua(comnmente abreviada comomutexpormutual exclusion) se usan enprogramacin concurrentepara evitar el ingreso a sus secciones crticas por ms de un proceso a la vez11.-Qu es interbloqueo?El interbloqueo se puede definir como el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. A diferencia de otros problemas de la gestin concurrente de procesos, no existe una solucin eficiente para el caso general.Todos los interbloqueos suponen necesidades contradictorias de recursos por parte de dos o ms procesos.

13.-Qu es una seccin crtica?Se denominaseccin crtica, enprogramacin concurrente, a la porcin decdigode un programa de computador en la cual se accede a un recurso compartido (estructura de datos o dispositivo) que no debe ser accedido por ms de un proceso o hilo en ejecucin. La seccin crtica por lo general termina en un tiempo determinado y el hilo, proceso o tarea slo tendr que esperar un perodo determinado de tiempo para entrar. Se necesita un mecanismo de sincronizacin en la entrada y salida de la seccin crtica para asegurar la utilizacin en exclusiva del recurso, por ejemplo unsemforo.14.-Cules son las tres condiciones de Bernstein?Primera condicin.La interseccin entre las variables de lectura de un conjunto de instrucciones C1 y las variables de escritura de un conjunto C2 debe ser vaca. Dicho de otra manera: si juntamos las variables de lectura del conjunto C1 y las de escritura de C2, no deben haber variables comunes.Para el par de instrucciones 1 y 2, vemos que:variables de lectura de 1variables de escritura de 2

YY

Por tanto, estas dos instrucciones no pueden ejecutarse concurrentemente dado que la interseccin no est vaca, dado que la variable "y" est en ambos conjuntos, tanto en el de lectura de 1 como en el de escritura de 2.Para el par de instrucciones 1 y 3, vemos que:variables de lectura de 1variables de escritura de 3

YZ

Por tanto, estas dos instrucciones s pueden ejecutarse concurrentemente dado que la interseccin est vaca, dado que no hay variables comunes en ambos conjuntos, tanto en el de lectura de 1 como en el de escritura de 3.Para el par de instrucciones 2 y 3, vemos que:variables de lectura de 2variables de escritura de 3

XZ

Por tanto, estas dos instrucciones s pueden ejecutarse concurrentemente dado que la interseccin est vaca, dado que no hay variables comunes en ambos conjuntos, tanto en el de lectura de 2 como en el de escritura de 3.

Segunda condicin.La interseccin entre las variables de escritura de un conjunto de instrucciones C1 y las variables de lectura de un conjunto C2 debe ser vaca. Dicho de otra manera: si juntamos las variables de escritura del conjunto C1 y las de lectura de C2, no deben haber variables comunes.Para el par de instrucciones 1 y 2, vemos que:variables de escritura de 1variables de lectura de 2

XX

x es comn en ambos conjuntos. Por tanto, no cumple la segunda condicin.Para el par de instrucciones 1 y 3, vemos que:variables de escritura de 1variables de lectura de 3

Xa,b

No hay variables comunes. Por tanto, s cumple la segunda condicin.Para el par de instrucciones 2 y 3, vemos que:variables de escritura de 2variables de lectura de 3

Ya,b

No hay variables comunes. Por tanto, s cumple la segunda condicin.Tercera condicin.La interseccin entre las variables de escritura de un conjunto de instrucciones C1 y las variables de escritura de un conjunto C2 debe ser vaca. Dicho de otra manera: si juntamos las variables de escritura del conjunto C1 y las de escritura de C2, no deben haber variables comunes.Para el par de instrucciones 1 y 2, vemos que:variables de escritura de 1variables de escritura de 2

XY

No hay variables comunes. Por tanto, s cumple la tercera condicin.Para el par de instrucciones 1 y 3, vemos que:variables de escritura de 1variables de escritura de 3

XZ

No hay variables comunes. Por tanto, s cumple la tercera condicin.Para el par de instrucciones 2 y 3, vemos que:variables de escritura de 1variables de escritura de 2

YZ

No hay variables comunes. Por tanto, s cumple la tercera condicin.Teniendo todos estos datos, tenemos qu condiciones cumplen qu par de instrucciones, como sigue:Par de instruccionesCondicin 1Condicin 2Condicin 3Pueden ejecutarse concurrentemente?

1 y 2NoNoSiNo

1 y 3SiSiSiSi

2 y 3SiSiSiSi

Aquellas instrucciones que cumplen las tres condiciones pueden ejecutarse concurrentemente.

15.-Para que se utilizan las condiciones de Bernstetin?Lastres condiciones de Bernsteindicen que N conjuntos de instrucciones pueden ejecutarse concurrentemente en base a las variables de lectura y las variables de escritura de dichos conjuntos de instrucciones.Vemoslo con un ejemplo con instrucciones sencillas (es aplicable a conjuntos de instrucciones). Imaginemos que tenemos las instrucciones siguientes:Instruccin 1x:=y+1

Instruccin 2y:=x-2

Instruccin 3z=a+b-7

Y queremos saber si pueden ejecutarse concurrentemente.Lo primero es establecer qu variables se acceden en modo lectura. En las instrucciones vemos que son:Para la instruccin 1 es la variable "y".Para la instruccin 2 es la variable "x".Para la instruccin 3 son las variables "a", "b".Tambin necesitaremos saber qu variables se acceden en modo escritura. Son las siguientes:Para la instruccin 1 es la variable "x".Para la instruccin 2 es la variable "y".Para la instruccin 3 es la variable "z".

16.-Cules son los estados de un proceso? Nuevo (new): el proceso se est creando. En ejecucin (running): el proceso est en la CPU ejecutando instrucciones. Activo: el proceso est empleando la CPU, por tanto, est ejecutndose. Pueden haber tantos procesos activos como procesadores haya disponibles. Por tanto, si el sistema dispone de un nico procesador, nicamente puede haber un proceso activo a la vez. Preparado: el proceso no est ejecutndose pero es candidato a pasar a estado activo. Es el planificador el que, en base a un criterio de planificacin, decide qu proceso selecciona de la lista de procesos preparados para pasar a estado activo. Bloqueado: el proceso est pendiente de un evento externo que le ha hecho bloquear, tales como una operacin de lectura/escritura, la espera de finalizacin de un proceso hijo, una seal o una operacin sobre un semforo. El dispositivo/hecho externo "avisa" al S.O. cuando ha terminado la accin que realizaba mediante una INTERRUPCIN, dejando el S.O. lo que est haciendo para atender a esta ltima. Tras esto, el S.O. comprueba cuales son los procesos que fueron bloqueados por ese evento externo, cambindolos al estado de preparado.17.-Qu es un hilo?Unhilo de ejecucin,hebraosubprocesoes la unidad de procesamiento ms pequea que puede ser planificada por un sistema operativo.La creacin de un nuevo hilo es una caracterstica que permite a unaaplicacinrealizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecucin comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situacin de autenticacin, etc. Esta tcnica permite simplificar el diseo de una aplicacin que debe llevar a cabo distintas funciones simultneamente.Un hilo es simplemente una tarea que puede ser ejecutada al mismo tiempo con otra tarea.18.-Cul es la diferencia entre hilo y proceso?

Un proceso es cualquier programa en ejecucin. este necesita ciertos recursos para realizar satisfactoriamente su tarea: Los hilos son un concepto relativamente nuevo de los SO. En este contexto, un proceso recibe el nombre de proceso pesado, mientras que un hilo recibe el nombre de proceso ligero. El trmino hilo se refiere sintctica y semnticamente a hilos de ejecucin.