Clase1 2 Concurrente

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 16

Taller de

Programación

Clase 1-2 – Módulo Concurrente


AGENDA

Ambiente CMRE

Clase 1-2 – Módulo Concurrente


PROGRAMA CONCURRENTE – AMBIENTE CMRE

Código del
programa Información de
cada robot

p li c a
m o a
Có E lo s
CMR os de
Ciudad c e p t
c on e n c i a ?
r r
concu
Clase 1-2 – Módulo Concurrente
PROGRAMA CONCURRENTE – AMBIENTE CMRE
Comunicación

Recursos Compartidos

Sincronización

Heterogeneidad de
procesadores
Clase 1-2 – Módulo Concurrente
PROGRAMA CONCURRENTE – AMBIENTE CMRE
ROBOTS: se permite declarar más de un
robot

AREAS: existen distintos tipos de áreas


(privadas, compartidas, parcialmente
compartidas)

COMUNICACIÓN: permite el intercambio


de mensajes entre robots

SINCRONIZACIÓN: permite bloquear y


desbloquear recursos compartidos
(esquinas)
Clase 1-2 – Módulo Concurrente
PROGRAMA CONCURRENTE – AMBIENTE CMRE
programa nombre

procesos
// Procesos utilizados por los robots

areas
// Áreas de la ciudad

robots
// Robots del programa
Estructura de
variables
un programa
// Variables robots

comenzar
// Asignación de áreas
// Inicialización de robots
Clase 1-2 – Módulo Concurrente
fin
PROGRAMA CONCURRENTE – AMBIENTE CMRE
programa nombre

procesos
// Procesos utilizados por los robots

areas
// Áreas de la ciudad proceso nombre (ES flores:numero;E valor:boolean)
variables
robots nombre : tipo
// Robots del programa
comenzar
variables //código del proceso
// Variables robots fin

comenzar
// Asignación de áreas
// Inicialización de robots
fin
Clase 1-2 – Módulo Concurrente
PROGRAMA CONCURRENTE – AMBIENTE CMRE
programa nombre

procesos
// Procesos utilizados por los
robots
areas ciudad1: areaC(1,1,10,10)
// Áreas de la ciudad ciudad2: areaP(15,15,20,20)
ciudad3: areaPC(30,32,50,51)
robots
// Robots del programa areaC: área compartida (pueden acceder
todos los robots declarados)
variables
areaP: área privada (pueden acceder
// Variables robots
sólo un robot de los declarados)
comenzar
areaPC: área parcialmente compartida
// Asignación de áreas (pueden acceder más de un robot pero
// Inicialización de robots no todos los robots declarados)
fin
Clase 1-2 – Módulo Concurrente
PROGRAMA CONCURRENTE – AMBIENTE CMRE

AREA
PRIVADA
AREA
PARCIALMENTE
AREA
COMPARTIDA
COMPARTIDA

Clase 1-2 – Módulo Concurrente


PROGRAMA CONCURRENTE – AMBIENTE CMRE
programa nombre

procesos
// Procesos utilizados por los robots

areas
// Áreas de la ciudad

robots
// Robots del programa

variables
// Variables robots
robot tipo1
comenzar variables
// Asignación de áreas ...
comenzar
// Inicialización de robots
// Código del robot 1
fin
Clase 1-2 – Módulo Concurrente fin
PROGRAMA CONCURRENTE – AMBIENTE CMRE
programa nombre

procesos
// Procesos utilizados por los robots
robot tipo1
variables
areas robot tipo1 ...
variables comenzar
// Áreas de la ciudad ... // Código del robot 1
comenzar fin
robots // Código del robot 1
fin robot tipo2
// Robots del programa variables
...
variables robot1: tipo1
comenzar
// Código del robot 2
// Variables robots robot2: tipo1 fin

comenzar robot1: tipo1


// Asignación de áreas robot2: tipo2
// Inicialización de robots
fin
Clase 1-2 – Módulo Concurrente
PROGRAMA CONCURRENTE – AMBIENTE CMRE
programa nombre

procesos
// Procesos utilizados por los robots

Todos los robots Un robot puede


areas
declarados deben estar asignado a 1
// Áreas de la ciudad
estar asignados al o más de un áreas
robots menos a un area del programa
// Robots del programa

variables
// Variables robots
//AsignarArea(variableRobot,nombreArea)
comenzar AsignarArea(robot1,ciudad1)
iniciar(robot1, 5, 5)
// Asignación de áreas
// Inicialización de robots
fin
Clase 1-2 – Módulo Concurrente
EJERCICIOS PARA ANALIZAR
programa Ejercicio-1-a programa Ejercicio-1-b
areas areas
ciudad : AreaC(1,1,100,100) ciudad : AreaC(1,1,100,100)
robots robots
robot tipo1 robot tipo1
comenzar comenzar
Pos (20,20) mover
fin Pos (20,20)
robot tipo2 fin
comenzar robot tipo2
Pos(20,20) comenzar
fin repetir 5
variables mover
robot1: tipo1 Pos(20,20)
robot2: tipo2 fin
comenzar variables
AsignarArea(robot1,ciudad) robot1: tipo1
AsignarArea(robot2,ciudad) robot2: tipo2
Iniciar(robot1, 10, 10) comenzar
Iniciar(robot2, 13, 15 ) AsignarArea(robot1,ciudad)
fin
Clase 1-2 – Módulo Concurrente

EJERCICIOS PARA ANALIZAR
programa Ejercicio-1-c programa Ejercicio 1-d
areas areas
ciudad : AreaC(1,1,100,100) parte1ciudad : AreaC(1,1,50,50)
robots parte2ciudad : AreaP(51,51,99,99)
robot tipo1 robots
comenzar robot tipo1
mover comenzar
Pos (20,20) mover
Pos(40,40) Pos (20,20)
fin Pos(40,40)
Pos(75,78)
robot tipo2 fin
comenzar robot tipo2
repetir 5 comenzar variables
mover repetir 5 robot1: tipo1
Pos(20,20) mover robot2: tipo2
fin Pos(80,80) comenzar
variables fin AsignarArea(robot1,parte1ciudad)
robot1: tipo1 AsignarArea(robot2,parte1ciudad)
robot2: tipo2 AsignarArea(robot2,parte2ciudad)
comenzar Iniciar(robot1, 10, 10)
… Iniciar(robot2, 62, 62)
fin fin
Clase 1-2 – Módulo Concurrente
EJERCICIOS PARA ANALIZAR
programa Rectangulos
procesos
Ejercicio: Realice un proceso juntar (ES flor:numero)
programa donde un robot comenzar
recorra el perímetro de un areas
mientras (HayFlorEnLaEsquina)
ciudad : AreaC(1,1,100,100)
rectángulo de un tamaño 5 tomarFlor
(alto) x 3 (ancho) juntando flor:= flor + 1
robots
flores. fin
robot tipo1
proceso rectangulo (E alto:numero;
variables
E ancho:numero;
Al finalizar el robot debe f:numero
ES flores:numero)
informar las flores juntadas. comenzar
comenzar
Inicialmente el robot se rectangulo (5,3,f)
flores:= 0
encuentra en la esquina Informar (f)
repetir 2
fin
(2,2). repetir alto
variables
juntar(flores)
robot1: tipo1
Debe modularizar el mover
comenzar
rectángulo. El rectángulo derecha
AsignarArea(robot1,ciudad)
repetir ancho
debe recibir alto y ancho y Iniciar(robot1, 2, 2)
juntar(flores)
devolver las flores. mover
fin
derecha Modifique el ejercicio para que
fin exista otro robot que comience en
Clase 1-2 – Módulo Concurrente
EJERCICIOS PARA ANALIZAR
programa Rectangulos
Procesos areas
ciudad : AreaC(1,1,100,100)
proceso juntar (ES flor:numero)
comenzar robots
mientras (HayFlorEnLaEsquina) robot tipo1
tomarFlor
flor:= flor + 1 variables
fin f:numero
proceso rectangulo (E alto:numero; comenzar
E ancho:numero; rectangulo (5,3,f)
ES flores:numero) Informar (f)
comenzar fin
flores:= 0
repetir 2 variables
repetir alto robot1: tipo1
juntar(flores) robot2: tipo1
mover
derecha comenzar
repetir ancho AsignarArea(robot1,ciudad)
juntar(flores) Iniciar(robot1, 2, 2)
mover AsignarArea(robot2,ciudad)
derecha Iniciar(robot2, 8, 8)
Clase 1-2 – Módulo Concurrente
fin fin

También podría gustarte