Вы находитесь на странице: 1из 38

UNIVERSIDAD NACIONAL

JORGE BASADRE GROHMANN

PROGRAMACION CONCURRENTE

Docente: Mario Gauna Chino

Que es Programacin
Concurrente ?

PROGRAMACION CONCURRENTE
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 UCP (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.

Multitarea, Multiprogramacin,
multiprocesos
La programacion concurrente tiene capacidad para
realziar varias tareas al mismo tiempo o muchas
tareas en una sola PC con un procesador o varios.

Multitareas
Es la capacidad de un sistema operativo para
ejecutar varios procesos al mismo tiempo
corriendo sobre un procesador.
Con los sistemas operativos DOS esto era incapaz
de realizarse.
Existen varios tipos de multitareas y son :
* Multitarea Nula
* Multitarea Cooperativa
* Multitarea Preferente
* Multitarea Real

Multitarea Nula
ES
aquel
sistema
operativo que carece de
multitarea. An as puede
simularla
implementndola en un
espacio de usuario o
usando trucos como los
TSR
en
MS-DOS.
Justamente la familia
DOS son ejemplos de
sistemas operativos de
multitarea nula.

Multitarea Cooperativa
Tipo de multitarea en donde los
procesos de usuario son quienes
ceden la UCP al sistema
operativo a intervalos regulares.
Es
sumamente
problemtico
porque si por algn motivo el
proceso
de
usuario
es
interrumpido, no cede la UCP al
sistema operativo que lo ejecuta
y, por lo tanto, quedar trabado
(tildado).
Los
sistemas
operativos
Windows antes de la versin
1995 implementaban este tipo de
multitarea.

Multitarea Preferente
Multitarea en donde el SO se encarga de administrar uno o
ms procesadores, repartiendo el tiempo de uso del mismo
entre los distintos procesos que esperan utilizarlo (tareas
en ejecucin).
En el caso de un solo procesador, cada proceso o tarea lo
utiliza en perodos cortsimos de tiempo, lo que, en la
prctica, da la sensacin de que estuviesen ejecutndose al
mismo
tiempo.
Los sistemas operativos que utilizan este tipo de multitareas
son los UNIX y sus clones (Linux, etc), Windows NT, etc.

Multitarea Real
Multitarea en donde el SO ejecuta los procesos
realmente al mismo tiempo haciendo uso de mltiples
procesadores (ms de dos).
La ejecucin realmente se realiza en distintos
procesadores para cada proceso o tarea. Obviamente en
el caso de que los procesos o tareas sean ms que la
cantidad de procesadores, stos comienzan a ejecutarse
en procesadores "en uso" en la forma de multitareas
preferente
Todos los sistemas operativos modernos soportan esta
capacidad.

Multiprogramacin
MULTIPROGRAMACION Es la tcnica que permite que
dos o mas programas ocupen la misma unidad de memoria
principal y que sean ejecutados al mismo tiempo.

La multiprogramacin se refiere a dos o mas programas


corriendo o procesndose al mismo tiempo; La
multiprogramacin se controla a travs del Sistema
Operativo, el cual observa los programas y los vigila hasta
que estn concluidos.
El numero de programas que pueden multiprogramarse en
forma efectiva, depende de una combinacin de la cantidad
de memoria, de la velocidad del UCP y del numero y
velocidad de los recursos perifricos que tenga
conectados, as como de la eficiencia del SISTEMA

OPERATIVO.

Principios de Concurrencia
En un sistema multiprogramado con un nico procesador, los
procesos se intercalan en el tiempo aparentando una ejecucin
simultnea. Aunque no se logra un procesamiento paralelo y produce
una sobrecarga en los intercambios de procesos, la ejecucin
intercalada produce beneficios en la eficiencia del procesamiento y
en la estructuracin de los programas.

Principios de Concurrencia
La concurrencia es el punto clave en los conceptos de
multitarea, multiprogramacin y multiproceso, la
concurrencia comprende un gran numero de cuestiones
de diseo incluyendo la comunicacin entre procesos,
la comparticin y competencia por los recursos, la
sincronizacin de la ejecucin de varios procesos y la
asignacin del procesador a los procesos, la
concurrencia puede presentarse en tres contextos
diferentes:
Varias aplicaciones:
Aplicaciones estructuradas:
Estructura del sistema operativo:

Varias Aplicaciones
En este caso el tiempo de procesador de una
mquina es compartido dinmicamente entre
varios trabajos o aplicaciones activas.

Aplicaciones estructuradas
Como consecuencia del diseo modular de una
aplicacin y la divisin de la misma en tareas
explcitas estas pueden ser ejecutadas de forma
concurrente.
En programacin, un lenguaje estructurado es aquel
que soporta la divisin en bloques (procedimientos y
funciones) que pueden o no comunicarse entre s.
Es contrario a inestructurado, de poco uso, que no
tiene ninguna estructura, es simplemente un bloque,
como por ejemplo, los archivos batch (.bat).

Estructura del sistema


operativo:
Como resultado de la aplicacin de la estructuracin en el diseo
del propio SO, de forma que este se implemente como un
conjunto de procesos.

LABORES DEL SISTEMA


OPERATIVO
Elementos de gestin y diseo que surgen por causa de la
concurrencia:
1. El sistema operativo debe seguir a los distintos procesos
activos.
2. El sistema operativo debe asignar y retirar los distintos
recursos a cada proceso activo, entre estos se incluyen:
_Tiempo de procesador
_Memoria
_Archivos
_Dispositivos de E/S
3. El sistema operativo debe proteger los datos y los recursos
fsicos de cada proceso contra injerencias no intencionadas
de otros procesos.
4. Los resultados de un proceso deben ser independientes
de la velocidad a la que se realiza la ejecucin de otros
procesos concurrentes.

Datos

Procesos

Estructuras de
control

Corresponden a
los datos
requeridos para
realizar el
algoritmo (datos
de entrada) y
los datos que
son generados
(datos de
salida)

Conforma el
grupo de
instrucciones
que realizan las
operaciones
con los datos

Determinan la
organizacin de
las
instrucciones
que deben ser
realizadas.

Definicin
de variables y constantes

Entrada

Proceso
Estructuras
de control

Cuerpo del algoritmo

Salida

Diagrama de
flujo

Pseudocdigo

Es una tcnica que permite representar


grficamente las operaciones y
estructuras que se van a realizar,
mediante una simbologa estndar, con un
nico punto de inicio y uno de finalizacin.

Est tcnica permite representar el


algoritmo mediante un lenguaje ms
estructurado, facilitando su posterior
codificacin.

Definicin del problema


Anlisis del problema
Seleccin de la mejor alternativa

Diagramacin

Prueba de escritorio

Est dada por el enunciado del


problema, el cul debe ser claro y
completo

Es importante que conozcamos


exactamente que se desea.

Mientras qu esto no se comprenda, no


tiene caso pasar a la siguiente etapa.

Los datos de
entrada que nos
suministran

Recursos

Proceso

Entendido el problema para


resolverlo es preciso analizar

Frmulas

rea
de
Trabajo

Los datos de
salida o
resultados que
se esperan

Se debe tener en cuenta


el principio de que las
cosas siempre se podrn
hacer de una mejor
forma.

Solucin ..1
Solucin ..3

La que produce los


resultados Esperados en el
menor tiempo y al menor
costo
Lo importante es determinar
cul
es la mejor alternativa

Solucin ..2
Solucin ..5
Analizado el problema
Posiblemente tengamos
varias formas de resolverlo

Booleano

Real

cadena

Lgicos
Entero

Carcter

Numricos

Carcter
Tipos
de
Datos

Вам также может понравиться