Está en la página 1de 10

UNIVERSIDAD DEL GOLFO DE MEXICO CAMPUS SALINACRUZ

MATERIA: PROGRAMACION CONCURRENTE

NOMBRE: SAMUEL PEREZ PINEDA

PROFE PEDRO HERNANDEZ DE LA CRUZ

SEMESTRE 6

GRUPO 601

SALINACRUZ A 31 DE MARZO DEL 2014

1.-Qu es un programa? Un programa informtico es un conjunto de instrucciones que una vez ejecutadas realizarn una o varias tareas en una computadora. Sin programas, estas mquinas no pueden funcionar.1Al conjunto general de programas, se le denomina software, que ms genricamente se refiere al equipamiento lgico o soporte lgico de una computadora digital. 2.-Qu es un proceso? Un proceso es un conjunto de actividades mutuamente relacionadas o que, al interactuar, transforman elementos de entrada y los convierten en resultados 3.-Qu es la concurrencia? La concurrencia es la propiedad de los sistemas que permiten que mltiples procesos sean ejecutados al 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 de procesos o hilos de ejecucin creados por un nico programa. Las tareas se pueden ejecutar en una sola unidad central de proceso (multiprogramacin), en varios procesadores o en una red de computadores distribuidos. La programacin concurrente est relacionada con la programacin 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 procesos7 La 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 de procesos concurrentes.3. Estructura del sistema operativo: Las mismas ventajas de estructuracin son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos estn implementados como un conjunto de procesos. 7.-Menciona las ventajas de la concurrencia Facilita la programacin de aplicaciones al permitir que stas se estructuren como un conjunto de procesos que cooperan entre s para alcanzar 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 uno de los cuales se ejecuta en paralelo con los dems. Posibilita el uso interactivo a mltiples usuarios que trabajan de forma simultnea. Permite un mejor aprovechamiento de los recursos, en especial de la CPU, ya que pueden aprovechar las fases de entrada-salida de unos procesos para realizar las fases de procesamiento de otros.

8,.Menciona las desventajas de la concurrencia Inanicin e interrupcin de procesos Ocurrencia de bloqueos Que dos o ms procesos requieran el mismo recurso (No apropiativo) 9.-En que mbitos se ejecuta la concurrencia (tipos de hardware?

10.-Qu es la exclusin mutua? Los algoritmos de exclusin mutua (comnmente abreviada como mutex por mutual exclusion) se usan en programacin concurrente para evitar el ingreso a sus secciones crticas por ms de un proceso a la vez 11.-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 denomina seccin crtica, en programacin concurrente, a la porcin de cdigo de 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 un semforo. 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 1 Y variables de escritura de 2 Y

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 1 Y variables de escritura de 3 Z

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 2 X variables de escritura de 3 Z

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 1 X variables de lectura de 2 X

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 1 X variables de lectura de 3 a,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 2 Y variables de lectura de 3 a,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 1 X

variables de escritura de 2 Y

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 1 X variables de escritura de 3 Z

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 1 Y variables de escritura de 2 Z

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 instrucciones 1y2 1y3 2y3 Condicin 1 No Si Si Condicin 2 No Si Si Condicin 3 Si Si Si Pueden ejecutarse concurrentemente? No Si Si

Aquellas instrucciones que cumplen las tres condiciones pueden ejecutarse concurrentemente.

15.-Para que se utilizan las condiciones de Bernstetin? Las tres condiciones de Bernstein dicen 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 1 Instruccin 2 Instruccin 3

x:=y+1 y:=x-2 z=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? Un hilo de ejecucin, hebra o subproceso es 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 una aplicacin realizar 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.

También podría gustarte