Publicado el 31 de Marzo del 2017
2.426 visualizaciones desde el 31 de Marzo del 2017
88,9 KB
14 paginas
Creado hace 19a (07/03/2005)
INTRODUCCION
INTRODUCCION
PASCAL--FCFC
PASCAL
Bibliografía
Pascal-FC (Version 5): User Guide
Pascal-FC (Version 5): Language Reference Manual
G.L. Davies
http://www-users.cs.york.ac.uk/~burns/pf.html
Programción Concurrente
J. Tomás, M. Garrido, F. Sánchez, A. Quesada, 2003
Capítulo 1 y 2
Concurrent Programming
A. Burns, G Davis. Addison-Wesley, 1993
Capítulo 1
© Alexis Quesada Arencibia
ProgramaciónConcurrente
2
Contenidos
¿Por qué Pascal-FC?
Introducción
Estructura de un programa
Estados de un proceso en Pascal-FC
Ejecución de un programa en Pascal-FC
© Alexis Quesada Arencibia
ProgramaciónConcurrente
3
¿Por qué Pascal-FC?
Lenguaje diseñado para ser empleado como
herramienta en la enseñanza de la
Programación Concurrente
Proporciona una amplia variedad de herramientas
de comunicación y sincronización entre procesos
(no existentes todas ellas en ningún lenguaje
“comercial”)
Elimina características de otros lenguajes como
Punteros, Ficheros, etc… de forma que el alumno
pueda centrarse en el aprendizaje del manejo de
las herramientas de comunicación y sincronización
entre procesos
© Alexis Quesada Arencibia
ProgramaciónConcurrente
4
¿Por qué Pascal-FC?
Todo ello hace que el alumno pueda
empezar a escribir sus primeros programas
casi inmediatamente después de la
instalación
Y que por ello nuestro esfuerzo se centre
mas en el aprendizaje de las herramientas
propias de la Programación Concurrente
que en el lenguaje
© Alexis Quesada Arencibia
ProgramaciónConcurrente
5
Pascal-FC
Burns and Davies, 1993
Está basado en un subconjunto del
Lenguaje Pascal: el Pascal-S (Wirth, 1979)
No trae algunas características que
proporciona Pascal:
Ficheros
Punteros
Registros Variantes
No se puede usar el tipo “string” salvo en la instrucción
No puede usarse “With”
No existe el tipo set
No existe el tipo rango
“writeln” como una constante
© Alexis Quesada Arencibia
ProgramaciónConcurrente
6
Pascal-FC
Añadidos respecto al Pascal
bucle “repeat …forever”
Sentencia “null”
La función “random”
i:=random(n) : Devuelve un número aleatorio entre
0 y abs(n)
© Alexis Quesada Arencibia
ProgramaciónConcurrente
7
Estructura de un programa
•program identificador;
•
•
•
(* Declaraciones globales: constantes, tipos, *)
(* variables, procedimientos, funciones, *)
(* tipos de procesos, procesos, monitores *)
•begin
•
•end.
(* sentencias *)
© Alexis Quesada Arencibia
ProgramaciónConcurrente
8
Ejemplo I
(* Programa de ejemplo que declara dos procesos que realizan una tarea trivial *)
writeln (1);
i: integer;
for i:=1 to 5 do
writeln (2);
i: integer;
for i:=1 to 5 do
•program EJEMPLO;
•
•process Primero;
•var
•
•begin
•
•
•end;
•process Segundo;
•var
•
•begin
•
•
•end;
•begin
•
•
•
•
•
•
•
•end.
Primero;
Segundo;
writeln (‘Esto se ejecuta de forma sencuencia’);
writeln (‘y a continuación se ejecutaran los procesos de forma concurrente’);
cobegin
coend;
writeln (‘Esto se ejecutaría de forma secuencial después de terminar ambos procesos’);
© Alexis Quesada Arencibia
ProgramaciónConcurrente
9
i: integer;
for i:=1 to 5 do
writeln (ident);
Ejemplo II
•program EJEMPLO;
•
•Process type Proceso (ident: integer)
•var
•
•begin
•
•
•end;
•Var
•
•begin
•
•
•
•
•
•
•
•end.
Primero, Segundo: Proceso;
Primero(1);
Segundo(2);
(* Programa de ejemplo que declara dos procesos que realizan una tarea trivial *)
writeln (‘Esto se ejecuta de forma sencuencia’);
writeln (‘y a continuación se ejecutaran los procesos de forma concurrente’);
cobegin
coend;
writeln (‘Esto se ejecutaría de forma secuencial después de terminar ambos procesos’);
© Alexis Quesada Arencibia
ProgramaciónConcurrente
10
Estados de un proceso en
Pascal-FC
© Alexis Quesada Arencibia
ProgramaciónConcurrente
11
Gestión de procesos en Pascal-FC
Pascal-FC lenguaje didáctico pensado incluso
para SO sin soporte de concurrencia
Por ello el compilador al generar el ejecutable
empaqueta código de usuario + planificador
© Alexis Quesada Arencibia
ProgramaciónConcurrente
12
Planificación de procesos
Política injusta: ejecutar un proceso hasta que
termine, luego otro, etc…
Política justa: Compartir el tiempo del
procesador dando rodajas de tiempo a los
procesos
© Alexis Quesada Arencibia
ProgramaciónConcurrente
13
Ejecución de un programa en
Pascal-FC
Pascal-FC consiste en dos programas separados:
un compilador (pfccomp) y un intérprete (pint,
ufpint)
pfccomp FichFuente FichListado FichObjeto
pint FichObjeto FichProblemas
ufpint FichObjeto FichProblemas
© Alexis Quesada Arencibia
ProgramaciónConcurrente
14
Comentarios de: INTRODUCCION PASCAL-FC (0)
No hay comentarios