Está en la página 1de 54

Recursos docentes

Simula3MS: simulador pedagógico de un procesador

Raquel Concheiro, Marta Loureiro, Margarita Amor y Patricia González


Dtpo. Electrónica y Sistemas
Universidade da Coruña
15071 A Coruña

Resumen técnicas segmentadas y no segmentadas, que permite


aplicar los conceptos que se imparten en el estudio
En este artículo se presenta un nuevo simulador peda- del procesador. Este trabajo se ha desarrollado en
gógico, Simula3MS , de un procesador para su utili- dos proyectos fin de carrera ([6], [11]) de Ingeniería
zación en asignaturas de arquitectura y tecnología de Técnica en Informática de Sistemas. La parte
computadores en cualquiera de las titulaciones de in- desarrollada en estos proyectos se corresponde al
formática. Se presentan los principales simuladores simulador de un procesador con configuraciones
de procesadores utilizados en universidades españo- monociclo, multiciclo y un procesador segmentado
las y se discuten sus ventajas e inconvenientes y el básico.
porqué de la necesidad de plantear este nuevo simu-
lador. Este trabajo forma parte de un proyecto global
más amplio que comprende la realización de un
simulador más completo. Pretendemos ampliar esta
1. Introducción herramienta añadiendo, entre otros, la unidad de
punto flotante, y métodos de segmentación avanzada,
El objetivo de las primeras asignaturas de ar-
como los algoritmos de Marcador y de Tomasulo.
quitectura y tecnología de computadores en las
titulaciones de informática es introducir y analizar
En la sección 2 se presentan las características bá-
los principios básicos de la organización de los
sicas que debe tener un simulador pedagógico de
computadores clásicos o von Neumann. Centrándose
un procesador y los principales simuladores utiliza-
fundamentalmente en el estudio de los bloques
dos. La sección 3 presenta el nuevo simulador Simu-
funcionales básicos que componen un sistema
la3MS. En la sección 4 se describe la experiencia de
monoprocesador: el procesador, la unidad de entra-
la utilización del simulador en las prácticas de una
da/salida, la memoria y el sistema de interconexión.
asignatura de Tecnología y Arquitectura de Compu-
Frecuentemente el funcionamiento del procesador
tadores durante el curso académico 2004-2005. Las
es explicado a través de un procesador concreto
conclusiones y el trabajo futuro se presentan en la
para facilitar la adquisición de los conceptos, y se
sección 5.
utiliza como elemento de apoyo un simulador del
procesador.
2. Simuladores de procesadores
En este artículo analizamos las características
básicas que debe tener un simulador pedagógico de El uso de simuladores [14, 16] en lugar de proce-
un procesador. Además, se muestran los simuladores sadores reales resulta bastante común en docencia
utilizados actualmente en docencia, así como sus debido a que ofrecen un entorno de programación
principales ventajas e inconvenientes, y la necesidad más amigable que una máquina real. Además, en
de plantear un nuevo simulador que cubra estas los simuladores se pueden detectar más errores,
carencias. ofrecen más posibilidades que un ordenador real y
no modifican elementos físicos del computador.
El simulador que hemos desarrollado es el
Simula3MS [13] que simula un procesador MIPS Por otro lado, los simuladores son una herramienta
R2000 [12], uno de los procesadores más utilizado útil para estudiar la arquitectura de los procesadores
como ejemplo en el estudio del procesador. Este y los programas que se ejecutan en ellos. Debido
nuevo simulador es configurable, con diferentes a que están realizados en software y no en silicio,
490 Recursos docentes

los simuladores se pueden modificar fácilmente visualizar la ejecución concreta de cada instrucción,
para añadir nuevas instrucciones, construir nuevos o la imposibilidad de observar la ejecución de una
sistemas como multiprocesadores o simplemente instrucción por pasos, o ver los posibles efectos de
ofrecer más información. la segmentación sobre el mismo código. Además no
tiene un editor propio, lo que conlleva dificultades
Finalmente otra razón para usar un simulador en para hacer cambios en el código y tener que cargar
lugar de estaciones de trabajo es que estas no es- el fichero después de cada cambio.
tán disponibles universalmente y además el constante
progreso hacia máquinas cada vez más rápidas puede Hay otro tipo de simuladores, como el DLX [3]
dejar estas estaciones obsoletas. o el SimuProc [1], que implementan un procesador
hipotético, es decir, su repertorio de instrucciones no
2.1. Características de un simulador está basado en ningún procesador real.

Un simulador pedagógico de un procesador debe El DLX es un simulador de un procesador seg-


permitir observar la evolución de la memoria y de mentado que permite ver la representación de la eje-
los registros durante la ejecución de las instrucciones. cución de cada instrucción sobre el camino de datos.
Esto también permite que los alumnos comprueben la Es uno de los más utilizados para docencia. Se pue-
traducción de las instrucciones en lenguaje máquina. den configurar las características del procesador, es-
También es conveniente una representación gráfica cogiendo entre varias técnicas de segmentación: bási-
del camino de datos con la representación concreta co, Tomasulo y Marcador. La configuración, por par-
de cada instrucción. Así como la posibilidad de que te del usuario, de las características del simulador re-
se pueda ejecutar paso a paso cada instrucción. sulta poco amena y nada intuitiva. Uno de sus princi-
Adicionalmente, la inclusión de un editor propio pales inconveniente es que no incluye una represen-
en el simulador facilita a los alumnos la elaboración tación de la evolución del segmento de datos o de los
de los programas ensamblador. registros durante la ejecución del código. En su ver-
sión para Windows, WinDLX incluye una represen-
Finalmente, el simulador debería ser configurable tación del valor de los registros en cada instrucción.
con diferentes técnicas segmentadas y no segmenta-
das para que permita a los alumnos en un único si-
mulador aplicar todos los conocimientos que se les 3. Simula3MS : Simulador Pedagógico
imparten. La presencia de las distintas implementa-
ciones permitirá observar las diferencias de un mis- Simula3MS es un simulador cuya principal uti-
mo código según las características del procesador. lidad es su uso pedagógico por lo que el diseño y la
implementación de la herramienta ha intentado paliar
2.2. Ejemplos de simuladores pedagógicos los defectos detectados en otras herramientas simila-
res. Y aunque Simula3MS es ya un simulador útil,
En la actualidad existen varios simuladores aún está en desarrollo.
de lenguaje ensamblador con características muy
diferentes, los más utilizados son el Spim [4, 10] y el 3.1. Características básicas
DLX [3]. Otros simuladores no tan utilizados son el
SimuProc [1] y el Simplescalar [2, 5], más orientado Simula3MS es un simulador de un procesador
a investigación en arquitectura de computadores. RISC (Reduced Instruction Set Computer) [15, 12],
que implementa un subconjunto de instrucciones ba-
La principal ventaja del Spim [4, 10] radica en sadas en el repertorio de instrucciones del procesador
estar basado en un procesador real. Este simulador MIPS [12]. La elección de un procesador RISC fren-
permite observar la evolución de la memoria y te a uno CISC (Complex Instruction Set Computer)
de los registros durante la ejecución de las ins- está basada en la mayor relevancia de este tipo de
trucciones. Algunas de las principales carencias de arquitectura. También cabe destacar que estos proce-
este simulador son la ausencia de una representación sadores presentan una estructura y un repertorio de
gráfica del camino de datos sobre el que se pueda instrucciones fácil de comprender. Usando una ar-
XI Jornadas de Enseñanza Universitaria de la Informática 491

quitectura RISC, los estudiantes aprenden los funda-


mentos básicos del repertorio de instrucciones y de
la programación en lenguaje ensamblador en menos
tiempo que utilizando un procesador CISC.
Simula3MS es un simulador de un procesador
configurable, que cuenta con un entorno de trabajo
sencillo que permite depurar fácilmente los progra-
mas, observar la evolución de la memoria, así como
la ejecución de las instrucciones sobre distintos cami-
nos de datos como pueden ser monociclo, multiciclo
y segmentado. La interacción del usuario con la he-
rramienta se hace por medio de una interfaz gráfica
implementada con Java [8, 9].
Otro punto importante consiste en poder observar la
evolución de todos estos componentes ciclo a ciclo
(incluso paso a paso en el caso del procesador multi-
ciclo) y tener también la opción de ejecutar conjunta-
mente todas las instrucciones y observar únicamente Figura 1: Ventana del editor.
el efecto que produce la ejecución completa.
Consta de una primera parte que incluye un editor
y que permite cargar un programa ya existente en un
fichero o editarlo desde cero en la propia herramien- elaboración del código en lenguaje ensamblador, y la
ta. En esta herramienta se analizan sintácticamente zona inferior será utilizada para destacar los errores
las instrucciones antes de pasar a la ejecución de las que se detecten al ensamblar el código.
mismas. En esta parte también se permite escoger en- Los botones, Ensamblar y Ejecutar aparecen de-
tre las distintas opciones disponibles para la configu- sactivados en un principio. La finalidad de Ensam-
ración de los distintos caminos de datos. blar es indicar si el código es, o no, sintácticamente
Una vez analizadas sintácticamente las correcto; si lo es, se activará el botón Ejecutar, y si
instrucciones se puede seguir la evolución del no se mostrarán los errores en la parte inferior de la
segmento de datos, así como de los registros y del pantalla, indicando brevemente el motivo. Al pulsar
resto del camino de datos. Ejecutar se pasará a la ventana que muestra el simu-
lador, ésta será ligeramente diferente dependiendo de
la configuración elegida.
3.1.1. Editor

La primera ventana que vemos al abrir 3.1.2. Ventana de ejecución


Simula3MS (figura 1) es un editor.
Esta ventana presenta pequeñas variaciones según
La parte superior de esta ventana, engloba los me- el tipo de camino de datos que se escoja. La figura 2
nús y la barra de botones típicas de un editor, con la se corresponde con un procesador monociclo.
salvedad del menú Configuración y el botón de Error Los registros se muestran en la parte superior iz-
siguiente. El menú Configuración permite elegir al quierda y están divididos en tres partes: Registros es-
usuario entre los diferentes procesadores implemen- peciales (como son PC, HI, LO...), Registros gene-
tados (por defecto está seleccionado monociclo). El rales, y los Registros de punto flotante.
botón Error siguiente se activará en el caso de que En la parte superior derecha se puede ver el ca-
una vez analizado el código se produzca más de un mino de datos correspondiente a un procesador mo-
error sintáctico. Su función es ayudar al usuario en nociclo sobre el que se representará la realización
la corrección del código permitiendo avanzar al si- concreta de cada instrucción. En la implementación
guiente error de forma sencilla. monociclo (figura 3.a) y segmentado (figura 3.b)
La zona central es un área de texto destinada a la el color de esta representación dependerá del tipo de
492 Recursos docentes

Figura 2: Ventana del simulador para un procesador monociclo.

la instrucción. Mientras, en el caso del multiciclo va- indica la posición del puntero de pila y las restantes
riará dependiendo de la etapa en la que nos encontre- los datos.
mos.
La realización segmentada incluye además el El segmento de texto contiene una lista de
diagrama multiciclo, figura 4, que se utiliza para instrucciones que componen el programa a ejecutar.
dar una perspectiva general de diferentes situaciones Está dividido en tres columnas. En la primera
dentro de la segmentación. Se considera que el columna se indica entre corchetes la dirección de
tiempo avanza de izquierda a derecha, situación que memoria hexadecimal (PC) de la instrucción. Las
se indica con el número de ciclo en la parte superior instrucciones se almacenan a partir de la dirección
de la imagen, y las instrucciones se desplazan de la 0x0040000. La segunda columna es la codificación
parte superior a la inferior del panel. numérica de la instrucción en hexadecimal, y
la tercera columna es la instrucción en lenguaje
El segmento de datos se puede dividir en dos ensamblador.
zonas: memoria y pila. Aquella instrucción que esté siendo ejecutado en
La memoria está dividida en dos partes, la primera ese momento aparecerá resaltada en color azul. Si se
columna, cuyo valor está entre corchetes es el valor ha insertado algún punto de ruptura (breakpoint) las
de comienzo de la primera palabra de la línea. Las instrucciones posteriores aparecerán en gris y en cur-
otras cuatro columnas son los datos almacenados en siva.
la memoria de forma consecutiva. La parte inferior de la ventana contiene los si-
La pila crece hacia direcciones inferiores de guientes botones: Volver al editor, Ciclo anterior,
memoria. Igual que la memoria esta zona también Ciclo siguiente y Ejecutar que ejecuta la totalidad
está dividida en dos partes, la primera columna del código o hasta el punto de ruptura. Además, en
XI Jornadas de Enseñanza Universitaria de la Informática 493

(a) (b)

Figura 3: Caminos de datos (a) multiciclo (b) segmentado

la configuración multiciclo aparecen habilitados los


botones de Paso siguiente y Paso anterior. El objetivo de Estructura de Computadores I
Después de estos botones hay un botón de selec- es introducir y analizar los principios básicos de la
ción (Breakpoint) que permite poner un punto de organización de los computadores. En esta asigna-
ruptura en el código. Si se selecciona este botón se tura se hace énfasis, principalmente, en los aspectos
activará el menú desplegable situado debajo de él pa- relacionados con el procesador.
ra permitir elegir la situación del punto de ruptura en-
tre las direcciones de las instrucciones desde la que Las prácticas en esta asignatura se dividen en
se está ejecutando hasta la última del código. Por úl- sesiones de una hora semanales. Es obligatoria la
timo, al final de la barra hay un número que indica el asistencia de los alumnos al 80 % de las sesiones
número de ciclos que han sido ejecutados hasta ese para poder superar la parte práctica de la asignatura.
momento. Cada sesión está dedicada a un tema concreto,
como pueden ser los saltos condicionales, el paso
4. Experiencia de uso de parámetros en subrutinas, el uso de la pila,
etc. En cada una de las sesiones se entrega a los
Simula3MS se ha usado durante este curso alumnos un guión de prácticas donde se detallan las
en la asignatura Estructura de Computadores I instrucciones de la práctica y se indica claramente
[7] en las titulaciones de Ingeniería Informática e el objetivo de la misma. Además, estos guiones
Ingeniería Técnica en Informática de Sistemas en constan de una serie de cuestiones cortas que deben
la Universidad de A Coruña. Esta asignatura no ir respondiendo durante el desarrollo de la práctica
se imparte en Ingeniería Técnica en Informática y entregar al profesor al finalizar la sesión. Este
de Gestión. Estructura de Computadores I es método fomenta en los alumnos una actitud más
una asignatura cuatrimestral de 7,5 créditos (6 activa en el laboratorio, y permite que saquen mayor
teóricos y 1,5 prácticos) que se imparte en el primer partido de cada sesión.
cuatrimestre del segundo curso. Los alumnos que
llegan a esta asignatura han cursado en el segundo La acogida por parte de los alumnos ha sido
cuatrimestre del primer curso la asignatura de muy buena, en especial por parte de aquellos que
Tecnología de computadores donde se estudian ya tenían experiencia con otros simuladores de años
los circuitos lógicos básicos, tanto combinacionales anteriores. Además, hemos constatado que en el
como secuenciales. En el tercer curso los alumnos examen de prácticas han obtenido mejores resultados
completarán sus conocimientos básicos de la arqui- que en los cursos precedentes. También hemos
tectura clásica con Estructura de Computadores II. involucrado de forma indirecta a los alumnos en el
494 Recursos docentes

proceso de testeo de la herramienta, lo cual los ha Referencias


motivado de cara a su uso.
[1] Simupro. http://www33.brinkster.com/vlaye-
/software/simuproc/simuproc.html.
5. Conclusiones y trabajo futuro
[2] Todd M. Austin. A Hacker‘s Guide to the Sim-
La principal utilidad de Simula3MS es su uso pe- plescalar Archiecture Research Tool Set. Te-
dagógico por lo que el diseño y la implementación de chnical report, Intel Micro Computer Research
la herramienta ha intentado paliar los defectos detec- Labs, 1996.
tados en otras herramientas similares como Spim o
DLX, que se venían usando hasta ahora. [3] Erich Boehm. DLX Distribu-
tion Homepage. http://www.wu-
wien.ac.at/usr/h93/h9301726/dlx.html, 1996.

[4] Robert L. Britton. MIPS Assembly Languaje


Programming. Prentice Hall, 2004.

[5] Doug Burger and Todd M. Austin. The Sim-


plescalar Tool Set, version 2.0. Technical re-
port, Computer Science Departament, Univ. of
Wisconsin, 1997.

[6] Raquel Concheiro. Simula3MS: Simulador de


un procesador RISC multiciclo. Proyecto Fin
de Carrera, Facultad de Informátic de la Univ.
Figura 4: Diagrama multiciclo
da Coruña, 2004.

[7] Estructura de Computadores I.


Simula3MS se caracteriza por dividirse en dos http://www.des.udc.es/∼patricia/ec1.htm.
partes. La primera de ellas, novedosa con respecto a
las herramientas anteriores, se corresponde a un edi- [8] Cay S. Horstmann and Gary Cornell. Java
tor en el cual se analiza la corrección sintáctica del 2. Características avanzadas. Prentice Hall,
programa a ejecutar. En la segunda parte se visuali- 2003.
za el comportamiento del procesador que el usuario
puede elegir en la configuración, y la evolución de [9] Cay S. Horstmann and Gary Cornell. Java 2.
los registros, la pila y la memoria durante la ejecu- Fundamentos. Prentice Hall, 2003.
ción del programa. Las novedades en esta segunda
parte son: la posibilidad de elegir el tipo de proce- [10] James R. Larus. SPIM A MIPS R2000/R3000
sador, y la visualización del camino de datos y sec- Simulator. http://www.cs.wisc.edu/-
ción de control. Simula3MS permite la configura- ∼larus/spim.html.
ción de tres caminos diferentes: monociclo, multici-
[11] Marta Loureiro. Simula3MS: Simulador de un
clo y segmentado.
procesador RISC segmentado. Proyecto Fin de
Como trabajo futuro se aumentarán las prestacio-
Carrera, Facultad de Informátic de la Univ. da
nes de Simula3MS incluyendo, por ejemplo, una
Coruña, 2004.
unidad de punto flotante o distintas técnicas de seg-
mentación como los algoritmos de Tomasulo y Mar- [12] David A. Patterson and John L. Hennessy. Es-
cador. tructura y diseño de computadores. Interficie
La herramienta está disponi- circuitería/programación. Reverté, S.A., 2000.
ble para su uso libre en el enlace
http://www.des.udc.es/∼patricia/- [13] Simula3MS. http://www.des.udc.es/∼patricia/-
Simula3MS.htm. Simula3MS.htm.
XI Jornadas de Enseñanza Universitaria de la Informática 495

[14] Fermín Sánchez. Características deseables en [16] Miguel A. Vega and Juan A. Gómez Juan
un procesador pedagógico parala enseñanza bá- M. Sánchez. Innovación docente en la Arqui-
sica de la arquitectura de computadores. Jorna- tectura de Computadores mediante el uso de Si-
das de Enseñanza Universitaria de la Informá- muladores. Jornadas de Enseñanza Universita-
tica (JENUI), 2002. ria de la Informática (JENUI), 2000.
[15] William Stallings. Organización y arquitectura
de computadores. Prentice Hall, 2000.
Guía visual y dinámica del funcionamiento de un procesador
didáctico sencillo

Jon Cortés Ayala, Txelo Ruiz Vázquez, Izaskun Etxeberria Uztarroz


Dpto. de Arquitectura y Tecnología de Computadores
Facultad de Informática, Universidad del País Vasco UPV-EHU
20018 Donostia - San Sebastián
e-mail: jon@sc.ehu.es, txelo.ruiz@ehu.es, izaskun@si.ehu.es

Resumen tinúa con una introducción al diseño de sistemas


síncronos con unidades de control cableadas basa-
En este trabajo se presenta una aplicación gráfica das en máquinas de estados finitas (algoritmos
cuyo objetivo es proporcionar una guía visual y ASM). Como colofón de la misma, se realiza el
dinámica del funcionamiento, a nivel de los com- diseño (guiado por el profesor) de un procesador
ponentes hardware, de un procesador didáctico sencillo, tipo RISC, con un reducidísimo conjunto
muy sencillo. Dicha aplicación puede ser utilizada de instrucciones (concretamente, cuatro) y sólo
tanto por el profesor en el aula, en lecciones ma- dos modos de direccionamiento: absoluto y direc-
gistrales, como por los alumnos de manera autó- to de registro. Se diseñan tanto la Unidad de Pro-
noma, para profundizar en la comprensión del ceso como la Unidad de Control cableada (me-
funcionamiento del procesador. Por ello, cuenta diante su especificación ASM).
con una interfaz visual atrayente y su utilización El objetivo fundamental de dicho proceso de
es fácil e intuitiva. Dispone también de ayuda on- diseño contempla dos facetas: por una parte, que
line para resolución de dudas. los alumnos sean capaces de analizar exhaustiva-
mente el funcionamiento del procesador, distin-
1. Motivación guiendo todas las fases de ejecución de las ins-
trucciones y dándose cuenta del funcionamiento
concurrente de los componentes hardware; por
Dentro de los tópicos que habitualmente se impar-
otra parte, que adquieran la visión de conjunto
ten dentro de una asignatura introductoria de Ar-
necesaria para deducir qué componentes habría
quitectura de Computadores está el de la unidad
que añadir o modificar en la Unidad de Proceso
de proceso o ruta de datos de un procesador relati-
para poder ampliar el conjunto de instrucciones
vamente sencillo [4] [5] [6]. La comprensión de su
del procesador con una instrucción determinada,
funcionamiento por parte del alumnado es fun-
así como cuáles serían los pasos de ejecución que
damental para la adquisición posterior de concep-
debería realizar la Unidad de Control para obtener
tos más avanzados de Arquitectura de Computa-
un funcionamiento correcto de la nueva instruc-
dores, como puede ser la segmentación de la ruta
ción añadida. Es obvio que la segunda faceta de-
de datos.
pende de la primera: si no se alcanza un conoci-
En nuestra Facultad, en una asignatura intro-
miento satisfactorio del funcionamiento del proce-
ductoria de primer curso, denominada “Diseño de
sador, difícil será modificar correctamente el di-
Sistemas Digitales” e impartida en el primer
seño dado para ampliar su funcionamiento.
semestre, se presenta una versión reducida de un
Para evaluar la adquisición de ambas compe-
procesador sencillo [1] —diseñado por miembros
tencias, en el examen de la asignatura se plantea
de esta Facultad en base al procesador MIPS [4]—
un ejercicio (habitualmente, con un peso de 2,5
que es utilizado en asignaturas posteriores para
puntos sobre 10) sobre el procesador sencillo, que
introducir más conceptos de Arquitectura de Com-
recoge ambas facetas de manera independiente:
putadores. En dicha asignatura, planteada según
por un lado, preguntas muy concisas y concretas
un enfoque bottom-up [2], inicialmente se expo-
sobre el funcionamiento del procesador, y, por
nen los componentes básicos de un sistema digi-
otro, la realización de una nueva instrucción.
tal, trabajándose exhaustivamente tanto el análisis
Dada la falta de costumbre del alumnado de
como la síntesis de sistemas sencillos, y se con-
primer curso a la hora de comprender en profun-
498 Recursos docentes

didad el funcionamiento a nivel hardware de un el profesor en el aula durante sus lecciones magis-
sistema digital de cierta complejidad, como es el trales, como por los alumnos de manera autóno-
sencillo procesador diseñado, surgía el problema ma, lo que les permitiría profundizar a su ritmo en
de que un elevado número de alumnos no llegaba la comprensión del funcionamiento del procesa-
a alcanzar el nivel mínimo deseado, lo cual era un dor, sin presiones.
inconveniente en asignaturas posteriores. Al tratarse de un procesador específico, no era
Dada la amplia utilización de simuladores en viable la utilización de simuladores ya existentes,
la enseñanza de materias de Arquitectura y Orga- sino que exigía el desarrollo de un simulador es-
nización de Computadores [8] [9] [3] y las venta- pecífico, para lo que se recurrió a plantear un pro-
jas que en el proceso de enseñanza/aprendizaje yecto fin de carrera (PFC). Dada la limitación de
reportan [7], en el momento en que se diseñó el tiempo, inherente al PFC, para el desarrollo de un
procesador sencillo, se realizó también su simula- simulador completo, que permitiera la posibilidad
dor correspondiente [1]. Dicho simulador es utili- de ejecución de diferentes programas, se decidió
zado en la asignatura de primer curso “Lenguaje reducirlo, de manera que lo que se ha obtenido es
Máquina”, impartida en el segundo semestre, y es la guía visual dinámica del funcionamiento del
muy adecuado para trabajar los aspectos relacio- procesador sencillo que aquí se presenta.
nados con la programación en lenguaje ensambla-
dor, permitiendo visualizar los resultados obte- 2. Estructura del procesador sencillo
nidos en cada paso de ejecución —contenido del
conjunto de registros y de memoria principal—, La unidad de proceso del procesador sencillo
pero sin hacer hincapié en el funcionamiento del (figura 1) consta de un conjunto de 32 registros de
hardware, que es el aspecto que interesa recalcar propósito general (CR), una unidad aritmético-
en la asignatura de Diseño de Sistemas Digitales. lógica sencilla (UAL), el contador de programa
Por ello, con el objetivo de paliar las defi- (PC), el registro de instrucción (IR), y una serie de
ciencias observadas, y con la idea de obtener me- registros y circuitería auxiliar (básicamente multi-
jores resultados, se pensó que sería de gran ayuda plexores). Se considera una memoria principal de
didáctica el contar con un simulador específico del 64K x 16 bits. Los datos son de 16 bits, mientras
procesador sencillo, que hiciera hincapié en el que las instrucciones son de 32 bits (de ahí la di-
funcionamiento de los componentes hardware visión del registro de instrucción, IR, en dos par-
(PC, IR, UAL, conjunto de registros,...) y que tes, IR1 e IR2, ya que se necesitan dos lecturas en
presentara una interfaz gráfica “amistosa” y sen- memoria).
cilla, de manera que pudiera ser utilizado tanto por

Figura 1. Estructura de la unidad de proceso del procesador sencillo (pantalla principal de la aplicación).
XI Jornadas de Enseñanza Universitaria de la Informática 499

Figura 2. Resultado de hacer zoom sobre el algoritmo de control ASM.

En la figura 2 se puede ver el algoritmo ASM y el sistema operativo Windows XP. Se puede eje-
que refleja el funcionamiento de la unidad de con- cutar en plataformas PC Pentium y en los sistemas
trol del procesador, tal como lo muestra el progra- operativos: Windows 9x, Milenium, NT 3.5 o su-
ma al hacer zoom sobre el recuadro de la parte in- periores, 2000/ XP.
ferior izquierda de la pantalla principal. La pantalla principal (figura 3), permite ver el
estado de cada componente de la unidad de proce-
3. Características de la aplicación so mediante una interfaz gráfica intuitiva, propor-
cionando toda la información necesaria para com-
prender el funcionamiento de la misma: señales de
La aplicación se ha desarrollado en el entorno Mi-
control que se activan en un momento dado; esta-
crosoft Visual Basic 6.0, sobre una plataforma PC

Figura 3. Evolución de la información a través de la unidad de proceso en un instante dado.


500 Recursos docentes

Figura 4. Resultado de hacer zoom sobre la memoria principal.

do en el que se encuentra el algoritmo ASM de En cuanto a su funcionamiento, se toma como


control; y el camino seguido por la información al base un programa ejemplo que multiplica dos nú-
circular entre diferentes componentes. meros, escrito usando únicamente las cuatro ins-
Dicha información se va mostrando de manera trucciones del conjunto de instrucciones. El usua-
dinámica, de forma que el usuario puede seguir in- rio puede elegir entre tres modos de simulación:
tuitivamente todo el proceso de ejecución de cada continua, ciclo a ciclo, o una instrucción comple-
instrucción y su efecto sobre la unidad de proceso. ta. Así, puede optar por el modo de simulación
Además, haciendo zoom bien sobre la memo- que mejor se adapta a su nivel de comprensión.
ria principal o bien sobre el conjunto de registros, En esta línea, se ofrece la posibilidad de modi-
se puede ver su contenido en cualquier instante de ficar la velocidad a la que evoluciona la informa-
la ejecución del programa (figuras 4 y 5). ción en la pantalla durante la simulación, así como

Figura 5. Resultado de hacer zoom sobre el conjunto de registros.


XI Jornadas de Enseñanza Universitaria de la Informática 501

rencias, de cronogramas explicativos, lo que solía


detenerla, para poder analizar detenidamente el re- ser bastante engorroso, tanto desde el punto de
sultado de alguna de las fases de ejecución, y pos- vista del profesor, como desde el de seguimiento
teriormente continuar con la simulación. del alumnado.
En www.ehu.es/acwruvac/SIM/simc.htm se En cuanto a resultados acerca de su influencia
puede obtener la apicación (2,72 MB). en el nivel de comprensión de los alumnos medido
en una prueba objetiva, como es el examen, en
4. Conclusión comparación con los resultados del curso anterior
cabe destacar que la nota media obtenida en el
En este trabajo se ha presentado un programa que ejercicio correspondiente ha mejorado en un 30%
proporciona una guía visual dinámica de la unidad aproximadamente. Por otra parte, se ha reducido
de proceso de un procesador didáctico muy sen- en un 15% el número de alumnos que obtenían en
cillo. Este programa ha sido realizado como pro- dicho ejercicio una puntuación inferior a 0,5 pun-
yecto fin de carrera por un alumno de la titulación tos (sobre los 2,5 que vale el ejercicio).
de Ingeniería Informática. La experiencia adquiri-
da por el alumno al realizar esta aplicación ha sido Referencias
muy enriquecedora, ya que no sólo se ha tenido
que enfrentar al desarrollo de un programa de [1] Arbelaitz, O, Arregi, O., et alter. Nivel de len-
cierta envergadura, sino que también ha tenido guaje máquina: una aproximación. ATC-
que tener en cuenta las características de los posi- FISS. ISBN: 84-600-9519-3, 1999.
bles usuarios. Además, el índice de satisfacción [2] Clements, A. The Undergraduate Curriculum
del alumno ha sido alto, ya que ha comprobado in Computer Architecture. IEEE Micro Spe-
que su trabajo es de utilidad para ayudar a otros cial Issue on Computer Architecture Educa-
alumnos y facilitar su aprendizaje. tion, Vol. 20, No. 3, pp. 13-22, May/June
Por otra parte, la experiencia ha confirmado la 2000.
validez de utilizar los proyectos fin de carrera co- [3] Djordjevic, J., et alter. An Integrated Environ-
mo generadores de recursos docentes ad hoc, to- ment for Teaching Computer Architecture.
talmente adaptados a las necesidades concretas de IEEE Micro Special Issue on Computer Archi-
cada centro/asignatura/profesor, ya que se pueden tecture Education, Vol. 20, No. 3, pp. 66-74,
tener en cuenta un sinfín de particularidades; en May/June 2000.
concreto, una de ellas es la posibilidad de que los [4] Patterson, D.A., Hennesy, J.L. Estructura y
recursos docentes estén en los idiomas utilizados diseño de computadores. Interficie circuitería/
por los alumnos (en el caso de la aplicación aquí programación, Editorial Reverté, 2000.
presentada, está en castellano y en euskara). [5] Stallings, W. Organización y Arquitectura de
La aplicación se utilizó por primera vez en la computadores, 5ª edición, Prentice Hall, 2000.
asignatura de Diseño de Sistemas Digitales duran- [6] Tanenbaum, A.S. Organización de computa-
te el segundo semestre del curso 2003-04 y tam- doras. Un enfoque estructurado, 4ª edición.
bién en el primer semestre del curso 2004-05. El Pearson Educación, 2000.
nivel de aceptación tanto del profesorado como [7] Tangorra, F. The Role of the Computer
del alumnado ha sido alto. Su utilización en el Architecture Simulator in the Laboratory.
aula por parte del profesor se ha revelado como SIGCSE Bulletin, Vol. 22, June 1990.
una potente ayuda de cara a la explicación dete- [8] Wolffe, G., et alter. Teaching Computer Orga-
nida del funcionamiento del procesador, ya que nization/Architecture With Limited Resources
permite hacer hincapié en los conceptos deseados: Using Simulators. Proc. of SIGCSE 2002.
fases de ejecución de las instrucciones, funcio- [9] Yurcik, W., et alter. A Survey of Simulators
namiento concurrente de los componentes hard- Used in Computer Organization/Architecture
ware, etc., pudiendo el profesor detener la simula- Courses. Proc. of the Summer Computer Si-
ción en cualquier instante y continuar cuando mulation Conference (SCSC), July 2001.
desee. Antes de la utilización del simulador, se
recurría a la realización manual, sobre transpa-
JAVATRACEIT!: software didáctico de apoyo a la docencia en Java

D. Glez-Peña, F. Fdez-Riverola, J.R. Méndez F. Díaz


Dpto. de Informática Dpto. de Informática
Universidad de Vigo Universidad de Valladolid
32004 Ourense 40005 Ourense
e-mail: { riverola, moncho.mendez }@uvigo.es e-mail: fdiaz@infor.uva.es
una herramienta de depuración y optimización de
Resumen programas Java.
Los depuradores constituyen un componente
El objetivo de este trabajo es dar a conocer una presente en la mayoría de los entornos integrados
nueva herramienta didáctica de apoyo a la de desarrollo (IDE), cuya misión es la de facilitar
docencia en asignaturas con contenidos la búsqueda de errores de programación, principal
curriculares que incluyan Java como lenguaje de causa de comportamientos no deseados en los
programación. En concreto, JAVATRACEIT! programas desarrollados. Las funcionalidades
proporciona un entorno integrado de desarrollo generales que aportan los depuradores de
adaptado a Java, que permite la compilación y el propósito general, y más concretamente
análisis de código ejecutable gracias a la JAVATRACEIT!, son las siguientes:
implementación de un sencillo depurador y
optimizador, que permiten al alumno conocer el • Ejecución, paso a paso, de las sentencias del
estado de un programa en todo momento. programa a nivel de código fuente.
• Establecimiento de puntos de ruptura
1. Introducción y motivación (breakpoints) en el código fuente.
• Visualización y modificación de los valores
de las variables y tipos no primitivos.
En los últimos años, Java se ha convertido en uno
de los lenguajes de programación más usados por
Los optimizadores, también llamados profilers,
la comunidad de desarrolladores, tanto a nivel
proporcionan funciones destinadas a obtener
comercial como a nivel de software libre. Este
información acerca de la ejecución de un
hecho, se ve reflejado en su inclusión formando
programa para tratar de localizar puntos críticos
parte de los numerosos temarios de estudios de
donde el rendimiento no es el esperado, con la
informática, ya sea en el mundo universitario,
finalidad de mejorarlo y aumentar su eficiencia.
ciclos formativos de grado medio y superior,
Un ejemplo de información útil para lograr
academias, etc. Para la docencia de Java, se ha de
optimizar un programa es el uso que se hace de la
tener en cuenta que ningún lenguaje de
memoria en un momento dado, analizando cuánta
programación se escapa a la máxima de
se usa y cómo se emplea.
programar se aprende programando, por lo que
JAVATRACEIT! proporciona un analizador de
son bienvenidas las herramientas que den soporte
memoria que facilita las tareas de optimización.
a la enseñanza práctica de los lenguajes de
Cuenta además con un editor avanzado de código
programación orientados a objetos.
con funcionalidades como sintaxis resaltada,
JAVATRACEIT! [1] surgió como experiencia
numeración de línea, visualización de paréntesis,
piloto en la Escuela Superior de Ingeniería
etc. Con JAVATRACEIT! se consigue proporcionar a
Informática de la Universidad de Vigo [2], a partir
los alumnos una herramienta de apoyo a la
de la necesidad de disponer de una herramienta
programación que permite su iniciación y
gratuita, potente y de fácil manejo para el
perfeccionamiento, teniendo disponible desde un
desarrollo de programas Java por parte de los
principio los componentes más útiles de los
alumnos. El proyecto, que tuvo sus inicios en el
grandes IDE comerciales. En este sentido, un
curso académico 2002/2003, se utiliza con éxito
depurador/optimizador no sólo sirve para detectar
hoy en día en las diferentes asignaturas que
errores, es además muy útil para comprender el
manejan conceptos de orientación a objetos y
funcionamiento de cualquier lenguaje.
lenguajes de programación. La idea consistió en la
construcción inicial y posterior implantación de
504 Recursos docentes

2. Arquitectura de JAVATRACEIT!

JAVATRACEIT! está implementado utilizando la


plataforma JPDA (Java Platform debugger
Architecture) [3] estructurada en tres capas:
• JVMTI (Java Virtual Machine Tool
Interface) [4]. Especifica servicios a bajo
nivel que proporciona la JVM (Java Virtual
Machine) con el fin de ser utilizados por
módulos nativos (librerías compartidas) que
actúan a modo de cliente.
• JDWP (Java Debug Wire Protocol). Define Figura 1. Ventana principal de JAVATRACEIT!.
un protocolo de comunicación vía sockets o
memoria compartida entre el módulo nativo
y un posible front-end. 3.1. Tratamiento de ficheros fuente
• JDI (Java Debug Interface). Es una API
100% Java para el desarrollo de depuradores Antes de poder depurar las aplicaciones de usuario
a modo de front-end. es necesario abrir sus ficheros, o al menos el
Para desarrollar el depurador de JAVATRACEIT! fichero que contiene el método de entrada. En este
se ha trabajado exclusivamente a nivel de JDI sentido, se proporcionan una serie de utilidades
(capa superior), debido a que existe un módulo básicas para poder gestionar estos archivos. Entre
nativo JVMTI disponible en las distribuciones del estas utilidades se encuentran: nuevo fichero,
JDK. Sin embargo, para el desarrollo del abrir fichero, guardar, cerrar, etc. El usuario
optimizador ha sido necesario trabajar con tiene la posibilidad de tener abiertos tantos
JVMTI, ya que JDI está orientado solamente a ficheros fuente como desee. La Figura 2 muestra
depuradores, no a tareas de optimización. Es por el editor de código con múltiples ficheros abiertos.
ello que se ha tenido que implementar un módulo
nativo ad-hoc.
En resumen, JAVATRACEIT! puede verse como
un front-end de depuración y optimización
realizado en Java. Por lo tanto, durante la
ejecución de la herramienta existen dos JVM: una
para el programa a depurar/optimizar y otra para
el propio JAVATRACEIT!. Los detalles de bajo nivel
de la herramienta pueden consultarse en [5-6].

3. Utilización de JAVATRACEIT! Figura 2. Editor de código de JAVATRACEIT!.

El aspecto que presenta la ventana de


3.2. Ejecución paso a paso
JAVATRACEIT! es similar a la que muestran los IDE
comerciales (ver Figura 1).
JAVATRACEIT! proporciona un área de edición La depuración paso a paso permite controlar la
de código, además de varios paneles y ejecución de un programa. Para ello, se
herramientas para el alumno. proporcionan tres tipos de pasos o formas de
A continuación se describen brevemente las avanzar por el código fuente en ejecución: step
funcionalidades más comunes de JAVATRACEIT!, over, step into y step out.
para su utilización por parte de un alumno de Step over es el más sencillo de todos. Cuando
primer curso de una titulación de ciclo corto en se está en una situación de parada ante una línea
informática. de código, si se solicita un step over, se tratará de
ejecutar la línea de código en su totalidad. Una
vez ejecutada, se estará en una nueva situación de
parada en la línea siguiente. Es por tanto, un salto
XI Jornadas de Enseñanza Universitaria de la Informática 505

de una línea de código. La Figura 3 muestra la llamado al actual. Es posible que no exista
ejecución de este tipo de salto. ninguno más externo, por lo que step out
provocará la finalización del hilo que ejecuta
dicho método, que si es el principal, finalizará la
ejecución del programa. La Figura 5 muestra la
ejecución de este tipo de salto.

Figura 3. Step over en JAVATRACEIT!.

Step into avanza hacia el interior de la línea de


código, es decir, busca la siguiente línea de código
que se ejecuta internamente. Una sentencia puede
incluir una o varias llamadas a otros métodos. Un
step into provocará una nueva situación de parada Figura 5. Step out en JAVATRACEIT!.
inmediatamente antes de ejecutar la primera línea
de código del primer método llamado en la
3.3. Puntos de ruptura
sentencia exterior. Si la sentencia exterior no
provoca llamadas a otros métodos, el efecto es el
mismo que un step over. La Figura 4 muestra la Los puntos de ruptura o breakpoints permiten
ejecución de este tipo de salto. detener la ejecución del programa en una línea de
código. Cuando se coloca un punto de ruptura, la
ejecución se detendrá cuando cualquiera de los
hilos de ejecución trate de ejecutar la sentencia
donde se ha colocado el breakpoint, provocándose
una nueva situación de parada.
JAVATRACEIT! permite colocar o descartar
puntos de ruptura tanto antes de la ejecución,
como durante ella, lo cual facilita mucho la tarea
de depuración. Los puntos de ruptura en una línea
de código se muestran en un tono rojizo, tal y
como muestra la Figura 6.

Figura 4. Step into en JAVATRACEIT!.

Step out provoca que se continúe ejecutando


el programa hasta que se salga del método actual,
es decir, se busca el retorno al método que ha
Figura 6. Punto de ruptura en JAVATRACEIT!.
506 Recursos docentes

3.4. Gestión de variables en memoria

La gestión de las variables es una tarea muy


importante en la depuración, ya que la mayoría de
los errores se descubren observando los valores
erróneos que toman las variables. Para navegar
por estructura de la memoria, JAVATRACEIT!
proporciona el árbol mostrado en la Figura 7.

Figura 8. Analizador de memoria de JAVATRACEIT!.

4. Conclusiones

En la presente comunicación se ha presentado una


herramienta de apoyo a la docencia en Java, uno
de los lenguajes con mayor calado en la
actualidad. Existen soluciones que en la mayoría
Figura 7. Árbol de memoria de JAVATRACEIT!. de los casos suponen un coste muy elevado frente
al carácter gratuito de JAVATRACEIT!, además de
Cuando el programa a depurar se encuentra ser muy pesadas y poco manejables en ambientes
detenido, se muestra su árbol de memoria. El docentes. Esta herramienta se encuentra
alumno puede navegar jerárquicamente por los disponible para su descarga libre en la dirección
objetos que se encuentren visibles desde la http://javatraceit.siteinteresa.com.
posición actual del programa. En el nivel superior
se encuentran los hilos de ejecución, dentro de Referencias
ellos, los registros de activación o pila de llamadas
a métodos y, finalmente, los objetos o variables,
[1] JAVATRACEIT!
que a su vez contienen más objetos hasta llegar a
http://javatraceit.siteinteresa.com
los tipos de datos primitivos. Es preciso destacar
[2] ESEI: Escuela Superior de Ingeniería
que JAVATRACEIT! también permite modificar el
Informática de la Universidad de Vigo.
valor de las variables de tipo primitivo.
http://www.ei.uvigo.es. 2005.
[3] Sun Microsystems. Java Platform Debugger
3.5. El optimizador de aplicaciones Architecture (JPDA).
http://java.sun.com/products/jpda/index.jsp.
JAVATRACEIT! dispone de un analizador de [4] Sun Microsystems. JVM Tool Interface v.1.0.
memoria para ayudar al alumno a realizar tareas http://java.sun.com/j2se/1.5.0/docs/guide/jvmt
de optimización o profiling. Con el analizador de i/jvmti.html.
memoria se puede ver el uso de memoria que hace [5] Glez-Peña, D., Fdez-Riverola, F. JavaTraceIt!,
el programa a optimizar en el sentido de que se depurador y optimizador de aplicaciones
muestra cada clase Java, el número de instancias Java. I Congreso JavaHispano. 2003.
actual de dicha clase y los bytes que ocupa. Con [6] Glez-Peña, D., Fdez-Riverola, F. JVMTI,
ello, se pueden detectar posibles usos innecesarios creación avanzada de profilers de
de memoria que provocan un mal funcionamiento aplicaciones con la nueva API de Tiger. II
de la aplicación. La Figura 8 muestra su uso. Congreso JavaHispano. 2004.
Aritmética en coma flotante y programación en ensamblador en
las prácticas de Estructura de Computadores: Control de un
simulador de radar

P.A. Castillo Valdivieso, M. García Cruz, M.G. Arenas, G. Romero, A. Prieto Espinosa
Dpto. de Arquitectura y Tecnología de Computadores
Universidad de Granada, 18071 Granada
e-mail: pedro@atc.ugr.es

Resumen El radar realiza un barrido de 360 grados


detectando de cuando en cuando, de forma
La enseñanza del lenguaje ensamblador es aleatoria, objetivos que debemos capturar.
complicada debido a la dificultad que supone a los El programa intercepta un objetivo a partir de
alumnos enfrentarse a un lenguaje de bajo nivel. la coordenada que le transmita nuestro programa
La experiencia nos dice que plantear unas de control externo. Para ello, ambos programas se
prácticas atractivas al alumno les hace interesarse sincronizan a través de dos ficheros de texto: el
por dicho lenguaje y por la asignatura de simulador escribe el valor del ángulo y la
Estructura de los Computadores I (en la que se distancia al objeto detectado, y nuestro programa
estudia, en la Universidad de Granada). escribe la coordenada de intercepción.
La programación de un control de radar puede Además de la implementación de los accesos
ser una práctica atractiva a los alumnos, de forma a los ficheros y de la sincronización de los
que la programación en ensamblador resulte casi programas, se deben realizar cálculos matemáticos
un juego conforme mejoran la programación del en coma flotante para el cálculo de funciones
cálculo de las coordenadas. trigonométricas. Para la práctica, el programa de
control se debe desarrollar en lenguaje
1. Motivación ensamblador, con objeto de que aprendan dicho
lenguaje, y la arquitectura 80x86.
El simulador ha sido desarrollado en C++,
La asignatura de Estructura de los Computadores
utilizando la biblioteca de programación gráfica
I, en la Universidad de Granada, estudia el
gtkmm2 [3], de forma que puede ser compilado y
lenguaje máquina, centrándose en la arquitectura
utilizado fácilmente, tanto en Windows como en
de la familia 80x86. Las prácticas de esta
Linux/Unix.
asignatura se basan, principalmente, en el estudio
El resto del artículo está estructurado como
del lenguaje ensamblador.
sigue: en la siguiente sección se describe el
A pesar de las ventajas que presenta este
simulador desarrollado; en la tercera sección se
lenguaje en cuanto a poder realizar programas
explica cómo usar el simulador en prácticas. La
completamente adaptados a la máquina y por tanto
cuarta sección expone diferentes formas de
optimizados en cuanto a velocidad y utilización de
calcular el seno y coseno para el cálculo de las
recursos [1,2], su estudio debe plantearse de forma
coordenadas a partir de la distancia y ángulo. Por
que sea lo más atractivo y cómodo para el alumno.
último, la quinta sección expone una serie de
En este trabajo se presenta una herramienta
conclusiones.
software que simula un radar que debe ser
controlado mediante un programa externo que
calcule una coordenada a partir de un ángulo y 2. El simulador
una distancia. Esta práctica puede resultar
atractiva a los alumnos, de forma que la El sistema constará de dos programas (ver las
programación en ensamblador sea más amena. Figuras 1 y 3): un simulador que muestra el radar
(programa gráfico, a la izquierda), y otro
programa que realiza el control del primero
508 Recursos docentes

Figura 1. Captura de pantalla bajo Windows en la que el programa-control (a la derecha) envía coordenadas al
simulador del radar (a la izquierda). En este caso, el radar muestra cinco objetivos, de los cuales el control
ha interceptado a dos (a la derecha vemos las coordenadas a las que se ordena interceptar). Conforme el
detector del radar avanza, los objetivos que quedan más lejanos van desapareciendo.

(programa que se ejecuta en modo texto en una decida no actuar; en ese caso, los valores
ventana de comandos, a la derecha). para X e Y deben ser igual a 0. En
cualquier otro caso, las ecuaciones a
El sistema funciona de la siguiente forma: utilizar serán las siguientes:
1. La sincronización entre el programa- X = 200 + distancia * cos(angulo)
control y el simulador se hace a través de Y = 200 - distancia * sen(angulo)
dos ficheros (S y A). 5. Una vez calculada la coordenada a
2. El simulador inicializa la ventana, dibuja interceptar, se guardan los valores X e Y
el radar, y va haciendo avanzar el en el fichero A (en la primera línea,
indicador de forma constante. A cada separados ambos números por un
paso escribe en el fichero S el ángulo espacio). Para ello hay que pasar a
actual del indicador y la distancia a un cadena cada uno de los números, y
objetivo detectado en ese momento (si no escribirlos en el fichero como caracteres
hubiera objetivo, escribe el valor 0 como individuales (texto plano). Así, si la
distancia). coordenada es (45,70) se guardaría como
3. El programa-control, que estaba en un la secuencia de caracteres ‘4’, ’5’, ’ ‘, ’7‘,
bucle de espera hasta que hubiera datos ’0‘, 13, 10 (el \n , en MSDOS, se cambia
en el fichero S, lee los 2 valores. Se trata por los dos caracteres con códigos ASCII
de acceder al fichero en modo de texto e 13 y 10).
ir leyendo carácter a carácter hasta
encontrar un espacio, lo que indicará que La sincronización por ficheros hace más
se ha leído un número más. Seguiremos fácilmente portable el sistema, y al tiempo
leyendo esa línea hasta haber leído los 2 delimita los aspectos que el alumno debe estudiar
números; después se pasan esas cadenas para hacer la práctica:
leídas a números enteros. • E/S por pantalla
4. El control procesa esos dos valores para • E/S por fichero
calcular la coordenada cartesiana (X,Y) • Estructuras de control complejas para la
donde debemos interceptar. Es posible sincronización
que en alguna ocasión (si la distancia es
0, esto es, si no hay objetivo), el control
XI Jornadas de Enseñanza Universitaria de la Informática 509

Figura 2. Controles del simulador para iniciar o detener su funcionamiento, para reiniciarlo, obtener información sobre
la versión del programa, o para terminar su ejecución.

• Cálculos matemáticos con números • “Reiniciar” : si queremos probar diferentes


enteros y en coma flotante programas-control, pulsaremos este botón, de
• Formato IEEE-754 de representación de forma que se reinicie el valor del número de
números reales objetivos y aciertos, y el indicador se sitúe en
• Transformación de datos entre diversas su posición inicial.
representaciones • “Ayuda” : muestra información sobre la
versión del programa simulador.
3. ¿Cómo usar el simulador en prácticas? • “Salir” : termina el programa.

Hemos desarrollado una versión del simulador Para sincronizar ambos programas a través
de los dos ficheros, el bucle principal del
para Linux y otra para Win32, por lo que la
práctica puede plantearse en ambos sistemas programa-control (el programa que debemos
operativos. realizar en ensamblador) debe ser similar al
Las versiones del simulador para los siguiente:
repetir
diferentes sistemas pueden descargarse de la URL abrir_fichero("S")
http://atc.ugr.es/~pedro/docencia/simuladores mientras(no_hay_datos_en(“S”)){
El programa simulador dispone de varios cerrar_fichero
botones para iniciar o detener su funcionamiento, hacer_pausa
o reiniciarlo (ver Figura 2). Su función queda abrir_fichero("S")
descrita a continuación: fin_mientras
// leer los datos
• “Parar” : detiene el simulador. El indicador angulo = leer_del_fichero
deja de girar y las comunicaciones se paran. distancia = leer_del_fichero
• “Continuo” : comienza el funcionamiento del cerrar_fichero
radar. El indicador irá girando, y de cuando //calcular coordenada
en cuando detectará nuevos objetivos. Las x = calcular_coord_X
comunicaciones se llevarán a cabo y = calcular_coord_Y
//escribir en “A” la coordenada
continuamente con el programa de control.
510 Recursos docentes

abrir_fichero(“A”) Pues bien, nosotros vamos a partir de los


escribir_en_fichero x , y valores conocidos para ciertos ángulos, y vamos a
cerrar_fichero obviar el porcentaje de error cometido para
fin_repetir
calcular los ángulos intermedios:
Sen(0) 0
4. Cálculo del seno y coseno Sen(15) 0,259
Sen(30) 0.5
Para realizar esta práctica es imprescindible Sen(45) 0.707
utilizar números reales para el cálculo del seno y Sen(60) 0,866
del coseno de un ángulo (ver el Apéndice I para Sen(75) 0,966
una descripción de los cálculos en coma flotante Sen(90) 1
usando el coprocesador matemático). En cuanto
Para ángulos intermedios sumaremos un valor
a posibles formas de calcular el seno y coseno de
calculado como (sen(a2)-sen(a1))/15 de forma
un ángulo, daremos varias posibilidades.
que obtendremos un valor aproximado con un
error aceptablemente pequeño.
4.1. Desarrollo en serie De esta forma, y a partir de estos cálculos
podemos obtener los valores correspondientes al
Podemos calcular el seno y coseno de un ángulo seno de los ángulos de los restantes cuadrantes, y
mediante los siguientes desarrollos en serie: los correspondientes al coseno.

x 2 n −1
sen( x) = ∑ (−1) n −1 4.3. Construir la tabla completa
n =1 (2n − 1)!

x 2 n−2 Una variación consiste en tener una tabla
cos( x) = ∑ (−1) n −1
completa (360 entradas, para los 360º) para el
n =1 (2n − 2)! cálculo del seno y otra diferente para el cálculo
del coseno. De esta forma, para cada valor del
Las sumatorias las haremos con t términos, tal ángulo sólo tenemos que ir a la posición de la
que la diferencia entre la suma desde 1 hasta t y tabla para obtener el valor ya calculado.
la suma desde 1 hasta t+1 sea menor que una En este trabajo no las vamos a poner, y de
constante dada que determinará la precisión. hecho se recomienda utilizar cualquiera de los
otros métodos antes que éste.
4.2. “Geometría recreativa”
4.4. Usar las instrucciones del coprocesador
La idea básica la tomamos de la página web:
http://es.geocities.com/geometriarecreativa/g La más rápida y sencilla de las opciones
eomrecreat05.html propuestas. El Apéndice I describe la forma de
En ella se nos explica cómo calcular ciertas realizar cálculos en coma flotante usando el
funciones matemáticas de una forma un tanto coprocesador matemático. Las instrucciones
“manual”, sin recurrir a tablas, calculadoras, ni aritméticas que utilizaremos son las siguientes:
nada. FCOS : calcula el coseno del valor contenido
Es cierto que con estos cálculos, el error en la cima de la pila del coprocesador. Se
cometido puede variar y ser algo más alto que con supone expresado en radianes (habrá que
el método anterior, pero resulta mucho más transformar los ángulos leídos en grados a
sencillo de programar. radianes, multiplicando por PI y dividiendo
La idea básica que se expone es subdividir el por 180). Se sustituye la cima de la pila por el
primer cuadrante del círculo para ir calculando el valor calculado.
seno de cada ángulo simplemente sumando una FSIN : calcula el seno del número real
cantidad fija que podemos calcular por semejanza contenido en la cima de la pila. Se supone
de triángulos. Según se explica en la página, expresado en radianes. Se sustituye la cima
podemos cometer errores de menos del 2% en el por el valor obtenido.
cálculo del seno de cualquier ángulo.
XI Jornadas de Enseñanza Universitaria de la Informática 511

FSINCOS : halla el seno y el coseno del El funcionamiento de los registros internos del
ángulo (en radianes) que hay en la cima de la coprocesador matemático es diferente al del 8086.
pila, y deja ambos valores en la cima y en la No existen aislados ni con nombres distintos.
siguiente posición de la pila. Están estructurados en forma de pila cíclica de
ocho elementos. Cada elemento de la pila es de
5. Conclusiones 10 bytes de longitud (80 bits), y el formato de los
datos es real temporal, de forma que el rango de
El aprendizaje del lenguaje ensamblador suele valores representable va de 3.4E-4932 hasta
resultar complicado a los alumnos, así como llegar 1.2E4932. La representación binaria interna sigue
a hacerles ver la necesidad de su estudio. Sin el formato IEEE754 [4,5].
embargo, plantearles unas prácticas amenas y El puntero de pila indica en todo momento
atractivas puede motivarlos, evitando que les cuál es el elemento que se encuentra en la
resulte tan engorroso el estudio a tan bajo nivel de cabecera de la pila (Stack Top). Puede valer entre
la programación. 0 y 7, es decir, señala el número del elemento.
Este trabajo presenta un simulador de radar La mayor parte de las instrucciones del 8087
desarrollado con esta idea. El alumno debe usan los registros de la pila. Así, las aritméticas
desarrollar un programa de control que recibe el utilizan uno o dos operandos de la pila y el
valor de la distancia y ángulo del objetivo resultado se deja también en la pila.
detectado, y le envía la coordenada cartesiana del Todos los nombres simbólicos de las
objetivo a interceptar. instrucciones empiezan por F. El conjunto de
El primer año en que se ha ofertado esta instrucciones se puede dividir en los siguientes
práctica varios alumnos han desarrollado tipos(ver [1,2] para obtener más detalles):
programas de control siguiendo las diferentes
opciones para el cálculo del seno y coseno. Les • de transferencia de datos. Sirven para mover
resultó estimulante y motivador comprobar cómo operandos entre los elementos de la pila y la
sus programas calculaban las coordenadas memoria:
correctamente y acertaban en los objetivos. FLD cargar real en la pila
FST almacenar real en mem.
FILD cargar entero en la pila
Referencias FIST almacenar entero en mem.

[1] RODRÍGUEZ-ROSELLÓ, M. A.: "8088- • Aritméticas. Permiten hacer operaciones


8086/8087. Programación ensamblador en aritméticas. Los operandos pueden ser
entorno MSDOS". Anaya Multimedia, 1993 elementos de la pila o de memoria. El
[2] BELTRÁN DE HEREDIA, Jon: "Lenguaje resultado se almacena en la pila:
ensamblador de los 80x86" Anaya FADD sumar reales
Multimedia. Colección Guías prácticas para FIADD sumar num. enteros
programadores. ISBN: 84-7614-622-1 FSUB restar num. reales
[3] http://gtkmm.sourceforge.net/gtkmm2 FISUB restar num. enteros
[4] STEVENSON, D.: "A Proposed Standard FMUL multiplicar reales
for Binary Floating-Point Arithmetic: Draft FIMUL multiplicar enteros
8.0 of IEEE Task P754." IEEE Comput. FDIV dividir reales
14 51-62, 1981. FIDIV dividir enteros
[5] A. Prieto Espinosa, A. Lloris Ruiz, J.C. FSQRT raíz cuadrada
Torres Cantero: "INTRODUCCIóN A LA FABS valor absoluto
INFORMáTICA 3ªed". Editorial McGraw-
Hill. ISBN: 8448132173 • de comparación. Sirven para comparar dos
operandos. Para analizar el contenido del
Apéndice I. Arquitectura del coprocesador código de condición hay que transferir a
memoria la palabra de estado:
FCOM comparar dos valores reales
FICOM comparar dos valores enteros
512 Recursos docentes

FXAM examina el tope de la pila,


para determinar si contiene un valor fistp dword [z] ; z=st0
normalizado, renormalizado, cero, infinito o
vacío.

• de cálculo de funciones. Sirven para calcular Z = sqrt( (X-Y) / Z )


funciones trigonométricas, logarítmicas y
exponenciales:
fld dword [y] ; st0=y
FPTAN tangente de un ángulo
fld dword [x] ; st0=x st1=y
FCOS coseno de un ángulo
FSIN seno de un ángulo
fsubrp st1 ; st0=x-y st1=x st2=y
FSINCOS seno y coseno de un ángulo
fld dword [z] ; st0=z st1=x-y st2=x
• relativas a constantes. Sirven para cargar una
constante en la pila: fdivp st1 ; st0=(x-y)/z st1=z ...
FLDZ cargar 0.0
FLD1 cargar 1.0 fsqrt ; st0=sqrt((x-y)/z) . . .
FLDPI cargar PI
fistp dword [Z] ; Z=st0
• de control del microprocesador. Corresponden
a actividades internas del coprocesador
(inicialización, cambiar modo de redondeo,
permitir o inhibir interrupciones, etc): X = dist * cos(angulo)
FINIT inicializar coprocesador
FDISI desactivar ints fld dword [pidiv180] ; st0=PI/180
FENI activar ints fld dword [ang] ; st0=ang st1=PI/180
FSTSW almacenar palabra de estado
FNOP no operación fmul st1 ; st0=a=ang*PI/180

Las del cálculo del seno y coseno fcos ; st0=cos(a) st1=a


corresponden al 80387, de forma que el 8087 no
puede ejecutarlas. fld dword [dist] ; st0=dist st1=cos(a)
fmul st1 ; st0=dist*cos(a) st1=dist
A modo de ejemplo, veamos cómo realizar
tres operaciones aritméticas sencillas y la fistp dword [X] ; X=st0
comparación entre dos valores. No mostraremos
todo el programa ensamblador, sino sólo las
instrucciones que usaríamos para hacer el cálculo. Comparar X e Y

fldz ; st0= 0
Z=Y–X*X fld dword [y] ; st0=y st1=0
fld dword [x] ; st0=x st1=y st2=0

fld dword [x] ; st0=x ; comparer st0 con st1 (st0-st1)


fcomp st1
; st0=st0*st0 ;cargar la palabra de estado en AX
fmul st0 ; st0=x*x st1=x fnstsw

fld dword [y] ; st0=y st1=x*x st2=x ; si (st0<st1) entonces ah=???????1 (x<y)
; si (st0>st1) entonces ah=???????0 (x>y)
; st0=st1-st0 and ah,00000001b
fsubrp st1 ; st0=y-x*x st1=y st2=x*x jnz x_menor
XI Jornadas de Enseñanza Universitaria de la Informática 513


x_menor:

Figura 3. Captura de pantalla bajo Linux en la que el programa-control (abajo a la derecha) envía coordenadas al
simulador del radar (arriba a la izquierda). En este caso, la pantalla del simulador muestra tres objetivos,
uno de los cuales ha sido interceptado.
LABNET: Laboratorio remoto para control
de procesos
Nourdine Aliane
Departamento de Arquitectura de Computadores y Arquitectura
aliane@uem.es

Aída Martínez, Alberto Fraile, Jaime Ortiz


Área de Informática
Universidad Europea de Madrid

Resumen alumnos realizar sus prácticas sin restricciones


de horarios y un número ilimitado de veces.
En este trabajo, se presenta una herramienta Desde el punto de vista pedagógico, las prácticas
didáctica para la realización de experimentos de realizadas de forma remota ofrecen una
control sobre maquetas de laboratorio de forma formación similar a las realizadas in–situ.
remota utilizando Internet. Las características Finalmente, hay que resaltar que para la
más importantes de nuestra aplicación son: el formación de tipo semi-presencial o continuada,
acceso simultáneo a varias maquetas, la elección la flexibilidad que ofrece un sistema de acceso
del tipo de realimentación (local o remota), la remoto a un laboratorio es de gran importancia.
elección de un controlador predefinido y la
generación automática de informes. La idea de compartir los equipos de un
laboratorio usando Internet con fines educativos
Palabras Clave: Control Remoto, Laboratorios remonta a principio de los noventa y en el
Remotos, Educación, Internet trabajo [1] se propone un esquema básico de
acceso remoto a los sistemas de control de un
laboratorio, así como compartirlos con otras
1. Introducción universidades. En realidad, el artículo [2] se
considera como el primer trabajo enfocado a la
Dentro de la enseñanza del control automático, enseñanza del control automático a través de
la realización de prácticas experimentales sobre Internet, y desde entonces, se han llevado a la
sistemas reales es de suma importancia ya que, práctica varias aplicaciones relacionadas con los
no solamente ayuda a los estudiantes a asimilar laboratorios remotos. En las referencias [4, 7, 8,
los conceptos teóricos, sino también desvela 9], podemos encontrar todos los aspectos más
otros aspectos difíciles de abordar de forma importantes relacionados con los laboratorios
teórica. remotos.
Desafortunadamente, varios factores dificultan No se deben confundir un laboratorio virtual y
la realización de prácticas [5] como el gran un laboratorio remoto. Los laboratorios
número de alumnos, la poca capacidad de los virtuales, en su mayoría, son sistemas basados
laboratorios, ya sea en medios o en espacio, lo en la simulación. En muchas ocasiones, estos
que hace imprescindible la restricción del acceso laboratorios se instalan y se ejecutan de forma
a los laboratorios a ciertas horas prefijadas. local y no requiere ningún componente externo
El acceso remoto a los laboratorios responde en [12]. En otras ocasiones, la ejecución de una
gran medida a los problemas anteriores. Por un simulación es remota. En este tipo de sistemas,
lado, permite incrementar el ratio de ocupación el funcionamiento de la aplicación requiere los
y la posibilidad de utilizar a tiempo compartido recursos de un servidor y la interacción se
equipos costosos, y por otro, permite a los realiza a través de aplicaciones Web. Estas
516 Recursos docentes

aplicaciones se conocen como laboratorios


virtuales y remotos [3]. 2. DESCRIPCIÓN DEL SISTEMA
En los laboratorios remotos, los usuarios operan
remotamente sobre ciertos dispositivos, sean
didácticos como maquetas de laboratorio o 2.1. Arquitectura del sistema
industriales. El manejo del dispositivo puede ser
una acción remota simple como el control de Nuestro sistema consiste en una aplicación
una maqueta de un tren [13], donde el control se orientada a la realización de experimentos de
limita a mandar ordenes. En otros casos, La control con maquetas de laboratorio de forma
acción puede tener una realimentación sobre el remota utilizando la red Internet (o Intranet). La
sistema, siendo ésta local o remota como en [6], arquitectura del sistema sigue el modelo
[10] o [14]. En este caso, además de ofrecer cliente/servidor, tal y como se muestra en la
capacidades de laboratorio virtual, los gráfica nº1.
laboratorios requieren de servidores específicos
que gestionan no solamente los usuarios, pero
Maquetas
también las máquinas a tele-operar.
En la página Web de la revista “International Clientes
Journal of Engineering Education” [15], así
como la página del “Comité Español de TCP/IP
Automática, CEA-IFAC”, [16], podemos
acceder a varios trabajos relacionados con los
laboratorios remotos o virtuales para la Servidor
educación y directamente relacionados con las
ingenierías como la robótica, visión por Laboratorio
computador, la automatización, la
instrumentación y el control de procesos. Figura 1: Arquitectura del sistema
Finalmente, señalamos de la existencia de una
red temática sobre laboratorios virtuales y El servidor es concurrente y permite gestionar
remotos cuyo objetivo principal es el diseño de hasta 4 un máximo de 4 maquetas controladas
un portal con posibilidad de integrar varios desde clientes diferentes. Esta limitación es,
laboratorios virtuales y ofrecer servicios de fundamentalmente, debida a las tarjetas de
acceso a todo un banco de laboratorios virtuales adquisición de datos utilizadas.
y remotos.
2.2. Modos de control
En la actualidad, pocas universidades disponen
realmente de un sistema fiable y con
En lo referente a los experimentos de control,
funcionalidades suficientes como para llevarlo a
nuestro sistema nos permite dos configuraciones
la práctica y satisfacer, así, todas las
básicas: El control local y el control remoto.
motivaciones que hemos señalado al principio.
En lo que queda del artículo, explicaremos la Control Local: En ésta configuración, el
arquitectura y el funcionamiento de nuestro controlador está ubicado en lado servidor, como
sistema. A continuación, se comentarán las lo indica la figura nº2. La acción remota se
funciones más destacadas del cliente y del limita a la configuración de los experimentos
servidor. Finalmente, se sacarán las como la elección de la maqueta, el tipo de
conclusiones más importantes y se indicarán las controlador, y el secuenciamiento de las órdenes
posibles mejoras de nuestro sistema. como iniciar o parar un experimento.
Finalmente, el cliente puede recibir los datos del
experimento en tiempo real, o una vez finalizado
el experimento.
XI Jornadas de Enseñanza Universitaria de la Informática 517

linealidad es de 0 a 10v para las maquetas


unipolares y de -10 a 10v para las bipolares.

Figura 2: Realimentación local


3. LA HERRAMIENTA LABNET
Control Remoto: En esta modalidad, el
controlador está ubicado en lado del cliente tal y
como lo indica la figura nº3. La realimentación
se hace a través de la Internet. La inyección de
los retardos de transmisión en el lazo de control
afecta seriamente al comportamiento global del
sistema. Estos retardos dependen de varios
factores como: el protocolo utilizado (TCP,
UDP), el medio utilizado para la transmisión de
datos (el cable o la red inalámbrica), el tráfico en
la red en el momento del experimento, etc.

Figura 3: Realimentación Remota.

2.3. Los controladores

En el control propiamente dicho, nuestro sistema


cuenta con una serie de controladores
predefinidos. Estos son:
• PID teórico,
• PI-D filtrado
• PID con Anti-Windup.

Estos tres controladores predefinidos son las


más utilizadas en la industria y representan más
del 95% de los controladores industriales.

2.4. Maquetas utilizadas


Figura nº 4: Las maquetas de nivel, temperatura y
Nuestro sistema utiliza tres tipos de maquetas estabilizador de barcos.
didácticas: una maqueta para el control de nivel,
otra para el control de temperatura y un sistema
de estabilización de barcos. En la figura nº4, La herramienta LABNET se articula en 2 partes:
podemos ver unas fotografías de las maquetas. el cliente y el servidor. En este apartado
En la Web de nuestro laboratorio [11], se explicaremos las funcionalidades más
pueden ver las características principales y el destacadas de ambas partes.
funcionamiento de cada una de las maquetas.
Las tres maquetas admiten entradas y salidas
normalizadas en voltajes y su rango de
518 Recursos docentes

3.1. EL CLIENTE

La aplicación cliente es el punto de entrada al


sistema LABNET. Los usuarios se conectan al
sistema con un usuario y de una password. El
usuario tiene acceso a los servicios del sistema
navegando por el sistema de menús.

Figura 6: Elección del tipo de controlador


3.1.2 Visualización de datos e informes
Para visualizar los datos de los experimentos, el
cliente dispone de una herramienta con las
siguientes funcionalidades:
Visualización grafica: Esta opción, nos permite
visualizar los datos de las variables elegidas
como la salida del sistema, la señal de control,
etc.
Exportación de los datos: Una vez finalizado el
experimento, podemos exportar los datos a
Figura 5: Entorno GUI del cliente LABNET formatos más conocidos como (Excel, Matlab,
La figura nº5 muestra el entorno GUI del cliente html, jpeg, etc).
LABNET. Las funcionalidades más destacadas Generador de informes: Esta opción crea un
del cliente son: documento de texto con los datos del usuario,
los parámetros de configuración y una serie de
• Configuración de un experimento
enlaces a todos los archivos generados por el
• Visualización de datos e informes
experimento. En la figura nº 7, podemos ver el
• Gestor de plantillas modelo de un informe generado por el cliente
Todas las ventanas del sistema tienen asociadas LABNET.
una ayuda breve y explicativa del elemento que
se está configurando en cada momento.

3.1.1 Configuración de un experimento


Una vez ingresado en el sistema LABNET, el
cliente puede activar las opciones que
corresponden al experimento que se desee
realizar. Las opciones más destacadas son:
• Elección de una maqueta
• El tipo de control (local o remoto)
• Elección de la señal de referencia
• Elección de un PID (El teórico, con D-
filtrada o con Antiwindup) y sus
diversos parámetros
En la figura nº 6 se puede ver el menú
correspondiente a la elección de un controlador.

Figura 7: Ejemplo de informe generado


XI Jornadas de Enseñanza Universitaria de la Informática 519

La administración de las maquetas consiste en


establecer la correspondencia exacta entre las
3.1.3 Gestor de plantillas
maquetas reales y sus equivalentes virtuales
El gestor de plantillas es una herramienta que definidas en el servidor, así como la
consiste en guardar los datos de un experimento especificación de los driver´s de las tarjetas de
en un archivo plano. La carga de la plantilla de adquisición de datos.
un experimento nos permite lanzarlo a ejecución
La figura nº9 nos muestra la ventana
de forma inmediata. Las plantillas de se pueden
correspondiente a la administración de las
editar y modificar utilizando un editor de texto.
maquetas.

3.2. EL SERVIDOR
El servidor constituye un puente entre los
clientes y las maquetas del laboratorio. Con su
entorno GUI, el administrador puede acceder a
todas las utilidades de administración de forma
sencilla. Las funciones más desatacadas son:
• Administración de usuarios.
• Administración de las maquetas
• Administración de los experimentos
• Administración de las conexiones

La figura nº8 nos muestra el aspecto del servidor

Figura 9: Administrador de las maquetas

El servidor lleva un modelo virtual de cada


maqueta y tiene definidos varios modelos. El
administrador decide que maquetas conectar al
sistema, realizando la correspondencia exacta
entre las entradas-salida del modelos virtual y la
maqueta real.
El sistema lleva la cuenta de las maquetas
activadas y los clientes disponen de esta
información justo al acceder al sistema.

3.2.3 Administración de los experimentos


Figura 8: El servidor LABNET
En la opción experimentos, el servidor nos
muestra toda la información relativa a los
3.2.1 Administración de las maquetas experimentos activados en cada momento.
Nuestro laboratorio cuenta con 9 maquetas y el La información consiste en un registro de datos
sistema LABNET sólo puede gestionar un que identifican el usuario, la maqueta utilizada,
máximo de 4 maquetas. el controlador utilizado, las señales utilizadas,
520 Recursos docentes

los diversos parámetros y tiempos del La gestión del tiempo se hace mediante el reloj
experimento. multimedia de Windows. Es un reloj bastante
preciso para periodos de muestreo mayores de 5
La figura nº10 nos muestra la utilidad de
milisegundos. Un estudio estadístico del error,
administración de los experimentos.
realizado sobre un solo temporizador nos
muestra un error del 0,2% con una desviación
estándar del orden de 0,05%.
4. CONSIDERACIONES SOBRE LA
IMPLEMENTACIÓN Toda la implementación del sistema se ha
codificado en Builder C++ y la concurrencia se
El servidor se ejecuta sobre un PC Pentium-III ha llevado a cabo mediante los hilos de la API
con Windows 2000 y alberga 2 tarjetas de Win32.
adquisición de datos PCLAB-816 para bus ISA
de Advantech.
5. EXPERIMENTOS Y PRUEBAS
Durante la fase de desarrollo, hemos realizado
varias pruebas parciales. Las más importantes
son las pruebas sobre el reloj multimedia, el
generador de señales, las pruebas sobre los
controladores y finalmente los retardos debidos
a la red

El temporizador
Las pruebas realizadas sobre el reloj de windows
son de tipo estadístico y son diseñadas para
evaluar la robustez y la regularidad de los
temporizadores. La prueba consiste en
programar un temporizador periódico que
ejecute una rutina cada periodo de muestreo.
Esta misma prueba se realiza un número elevado
de veces y se comparan los tiempos exactos de
Figura 10: Administración de los experimentos los experimentos con los tiempos esperados.
Para simplificar la configuración del sistema, se Para periodos de muestreo del rango 5…50
han definido modelos virtuales de entrada-salida milisegundos, y realizando la misma prueba
de todas las maquetas utilizadas. Estos modelos 6000 veces, se ha obtenido un promedio de error
virtuales guardan la información como la del 0,2% y con una desviación estándar del
polaridad de las señales de control y de salida, orden de 0,05%. Esta prueba ha sido realizada
sus escalas, rangos, etc. El administrador solo solo para un temporizador y conviene
tiene que realizar un cableado entre las maquetas generalizarla a varios temporizadores.
virtuales y las reales sin preocuparse de los
detalles de ganancias de las tarjetas de
adquisición de datos. El generador de señales
En cuanto a la implementación digital de los Para comprobar el buen funcionamiento del
controladores PID, se ha utilizando un diseño generador de señales, se ha diseñado un plan de
basado en la conversión del diseño analógico pruebas el cual consiste en generar una señal
utilizando la aproximación de Tustin. El modulo especificando los parámetros de amplitud y
de los controladores está tanto en el cliente frecuencia, a continuación sacarla por un por un
como en el servidor. canal de salida de la tarjeta de adquisición. Esta
misma señal se captura y se procesa con
Matlab/Simulink. Esta prueba nos permite no
XI Jornadas de Enseñanza Universitaria de la Informática 521

solamente comprobar la onda de la señal, sino su de muestreo más elevados ya que son sistemas
generación en el tiempo. lentos.
En todo caso, estamos añadiendo un retardo de 1
periodo de muestreo que es inherente a la
Los controladores
implementación de un control digital.
Las pruebas realizadas sobre los controladores
son en lazo cerrado y en modo local. La prueba
consiste en consiste en comparar las señales de 6. CONCLUSIONES
control de PID implementado y del mismo PID,
pero implementado en el Matlab/Simulink, pero En este artículo, en un primer lugar, se han
tiene como entradas las mismas señales presentado los trabajos más importantes en los
generadas por el sistema LABNET. últimos años en el diseño de plataformas para el
acceso a los laboratorios remotos. A
La figura nº11 muestra el aspecto de la respuesta continuación, se ha presentado nuestro sistema
de la maqueta de temperatura ante un escalón y dando sus funcionalidades más importantes.
controlada con un PID con D-filtrada.
Nuestro sistema presenta ventajas en varios
aspectos, en comparación con otros sistemas,
como la posibilidad de controlar varias maquetas
de forma concurrente, la posibilidad de
experimentar una acción de control local o
remoto, la generación de informes o la
reutilización de plantillas. Estos aspectos hacen
que nuestra aplicación sea funcional y
productiva.
Sin embargo, pensamos que sistema LABNET
Figura 11: La respuesta de la maqueta de temperatura
controlada con un PI-D-filtrada
es mejorable, en los siguientes aspectos: la
posibilidad de cambio de los parámetros del
regulador en tiempo real, la posibilidad de
El control remoto edición de las leyes de control, su descarga al
servidor, la posibilidad de incrementar el
En el caso de ejecución del algoritmo de control número de maquetas de forma independiente del
en la parte cliente, hemos evaluado los retardos hardware.
que se añaden en la transmisión por la red
dependiendo del tipo de conexión (cable o
inalámbrica). Referencias
Tiendo en cuenta las condiciones experimentales [1] Aburdene, M. F., Mastascusa, et all “A
(con poco tráfico en la LAN de nuestro proposal for a remotely shared control
Campus), hemos observado, en promedio, que systems laboratory”, Proceedings of the
por el cable tenemos un retardo que en todos los ASEE 1991 Frontiers in Education
casos es menor de 1 milisegundo, mientras este Conference, Session 24A3, 1991, pp. 589-
se dispara hasta casi 42 milisegundos en el caso 592.
del acceso inalámbrico.
[2] Aktan, B, C.A. Bohus, “Distance
El efecto de los retardo sobre la calidad del Learning Applied to Control Engineering
control remoto es mínimo en el caso del cable, Laboratories”. IEEE Transactions on
ya que las maquetas que estamos utilizando son Education”, 1996 Vol 39(3), pp 320-326.
sistemas lentos. Esto nos permite utilizar
periodos de muestreo algo más elevados. En el [3 ] J. Albino Méndez Pérez et all,
caso de la red inalámbrica, el retardo es algo Controlweb: una herramienta para el
elevado, pero aun así, podemos elegir periodos análisis y simulación de sistemas de
522 Recursos docentes

control en internet. XXIII jornadas de Laboratory”. IEEE Control Systems


automática, Léon Magazine, October 1999, pp 19-34.
[4] Control Systems Lab, The University of [9] Johansson, M., Gäfvert, M. and Åström,
Tennessee at Chattanooga: K.J. “Interactive Tools for education in
Automatic Contro”, IEEE Control Systems
http://chem.engr.utc.edu/Webres/Stations/c
Magazine, June. 1998
ontrolslab.html
[10] J. Sánchez and F. Morilla S. Dormido
[5] Daniel Gasa Fonollosa, et all,
“Teleoperation of an inverted pendulum
”Laboratorio remoto de automática:
through the world wide Web“ in workshop
plantas de variable discreta” XXIII
on internet based control education.
jornadas de automática, Leon.
ibce’01, pages 12–14, madrid, Spain, 2001.
[6] Garcia, R. Murillo et all “Real-time
[11] www.esi.uem.es/laboratorios
Remote Network Control of an Inverted
[12] http://control.ee.ethz.ch/~hybrid/tts/
Pendulum Using ST-RTL”, 32nd
[13] http://rr.informatik.tu-freiberg.de/
ASEE/IEEE Frontiers in Education
[14] http://www.ewh.ieee.org/soc/es/1999
Conference, Boston, MA
[15] http://www.ijee.dit.ie/specialissues/
[7] Henry, J. (1996). “Controls Laboratory [16] http://www.cea-ifac.es/wwwgrupos/
Teaching via the World Wide Web”. In: [17] http://msdn.microsoft.com/library/
Proceedings of the ASEE Annual
Conference. Washington, USA, Session
3513
[8] Jamahl W. Overstreet & Anthony Tzes
(1999) “Real-Time Control Engineering
Empleo de Laboratorios Virtuales en el Espacio Europeo de Enseñanza

Lenin Lemus1, Alberto Llorens1, Mª. Belén Bollo1, José Manuel Gómez2
1
Dpto. de Informática de Sistemas y Computadores
2
Dpto. de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia
46022 Valencia
e-mail: lemus@disca.upv.es, allloboi@eui.upv.es, mbolse@fiv.upv.es, jogomez@dsic.upv.es

Resumen TIC (“Tecnologías de la Información y la


Comunicación”) en el ámbito educativo de la
Desde hace dos años, la Universidad Politécnica UPV, tanto a nivel de ponencias o
de Valencia (UPV) está potenciando el desarrollo publicaciones como de proyectos y
de “Proyectos de Adaptación al Espacio Europeo herramientas desarrolladas.
de Educación Superior” (PAEEES). Bajo este 2. Estudiar y analizar la viabilidad de aplicar
marco de trabajo, un grupo de profesores creó en dichas tecnologías para dar soporte a
el año 2004 el grupo de trabajo “Nuevas metodologías de tipo activo, en diversos
Tecnologías para el Aprendizaje Activo” (NTA2). contextos tales como la docencia presencial, el
Por otro lado, los laboratorios virtuales son una aprendizaje a distancia o el trabajo en grupo, y
excelente herramienta para cumplir con algunos teniendo en cuenta aspectos como los sistemas
de los objetivos del Espacio Europeo de de evaluación, la realización de actividades
Enseñanza Superior (EEES). prácticas, la gestión de proyectos o la
En esta ponencia se presentan los objetivos del resolución de problemas.
grupo NTA2. A continuación, se describen los 3. Realizar casos prácticos en asignaturas
objetivos de un proyecto PAEEES propuesto por correspondientes a titulaciones de la UPV
el grupo NTA2 y finalmente se describe con donde se primará el aprendizaje activo entre
detalle una de las seis acciones que componen al los alumnos que cursen dichas asignaturas.
proyecto PAEEES, en concreto nos referimos a la Para ello se utilizarán tecnologías como
acción especial Laboratorios Virtuales. campus virtuales, acceso a laboratorios
remotos, herramientas de evaluación, tutores
1. Introducción inteligentes, libros electrónicos, entornos
colaborativos, dispositivos móviles.
Desde hace dos años, la Universidad Politécnica
de Valencia (UPV), dentro del marco de Por tal motivo se han creado seis acciones:
Integración en el EEES (“Espacio Europeo de la 1. Docencia presencial.
Enseñanza Superior”), ha potenciando la creación 2. Evaluación.
de grupos de trabajo encaminados a la mejora de 3. Aprendizaje Colaborativo.
la calidad de las asignaturas impartidas en su seno. 4. Laboratorios Remotos.
En el año 2004, se crea el grupo de Innovación 5. Laboratorios Virtuales.
Educativa NTA2 (“Nuevas Tecnologías para el 6. Gestión de Proyectos.
Aprendizaje Activo”), el cual pretende revisar y En esta ponencia se presentan los resultados
aplicar aquellas innovaciones tecnológicas que de la acción correspondiente a Laboratorios
contribuyan a la convergencia hacia dicho Espacio Virtuales.
Europeo derivado de la Declaración de Bolonia. La ponencia está estructurada de la siguiente
Para este fin, el grupo NTA2 propuso llevar a forma:
cabo un PAEEES (“Proyecto de Adaptación al • En la sección dos, se presenta la motivación
Espacio Europeo de Educación Superior”) en por la cual aparecen los laboratorios
donde los objetivos que se persiguen son tres: virtuales y se propone una definición del
concepto “Laboratorio Virtual”. Ya al final
1. Revisar y establecer un catálogo de los del presente documento, en el Apéndice A,
trabajos relacionados con la aplicación de las se facilita una revisión histórica de los
524 Recursos docentes

acontecimientos más importantes sucedidos que permita al estudiante poner en práctica todos
en el ámbito de los laboratorios virtuales. los conocimientos que vaya adquiriendo a lo largo
• En la tercera sección se presentan los del estudio de la materia y, esto, en algunos casos,
criterios para establecer un catálogo de los requiere de la manipulación de equipo sofisticado.
laboratorios virtuales disponibles. Este En las enseñanzas tradicionales, este papel lo
apartado también se dedica al material desempeñan las prácticas realizadas en los
didáctico que se presenta para que sea laboratorios. Tradicionalmente, este tipo de
utilizado en las asignaturas de la UPV. prácticas fueron pensadas para contar con la
presencia física tanto del estudiante como del
profesor.
2. Laboratorios virtuales El poder trasladar este entorno práctico a la
enseñanza a distancia, requiere de la existencia de
un sistema de apoyo: un laboratorio virtual.
En esta sección se define el término que en el
proyecto PAEES NTA2 se le ha dado a
“Laboratorio Virtual”. Cabe destacar, que algo tan 2.2. Definición
trivial como presentar una definición no ha sido
fácil, debido a que sus características han ido En el apéndice A, se proporciona una revisión
evolucionando de la mano de Internet, de manera histórica de la evolución del concepto de
que la idea de laboratorio virtual puede variar laboratorio virtual.
dependiendo del entorno en el cual se utilice. A partir de esta evolución, se puede ver que
Para llegar a esta definición, primero se algunos autores conciben un laboratorio virtual
establecen la motivación de los laboratorios como un programa de simulación [8]. Otros,
virtuales, a continuación, se presentan las consideran que un laboratorio virtual se encarga
características aceptadas por la comunidad del control remoto de la instrumentación.
educativa para un laboratorio virtual y finalmente Por otro lado, en el artículo [10] publicado en
se presenta nuestra definición, que de ninguna 1995 “The Virtual Laboratory: Using Networks to
manera trata de ser la única aceptable en las enable Widely Distributed Collaboratory
comunidades científica o educativa. Science”, los autores, establecen que un
laboratorio virtual debe cumplir con los siguientes
2.1. Motivación requisitos:
• Control remoto y monitorización de los
En la sociedad moderna en la que nos experimentos.
encontramos, la educación a distancia requiere de • Comunicaciones multimedia entre los
sistemas de enseñanza más flexibles, accesibles y investigadores, a ser posible en multicast.
adaptativos. • Un cuaderno de notas digital con todas las
Hasta hace unos años, el modelo educativo de facilidades para introducción de datos,
educación a distancia se basó fundamentalmente ficheros, figuras, búsquedas, etc.
en las tutorías por teléfono o en el correo • Gestión de los recursos, para decidir
ordinario. Actualmente, las nuevas tecnologías adecuadamente que usuario o usuarios puede
ofrecen: acceder a cada uno de los experimentos
• Los sistemas hipermedia como forma de disponibles.
estructurar la información • Seguridad tanto en el aspecto de permitir y
• E Internet como soporte de dicha denegar acceso como en los recursos para
información [1]. gestionar posibles fallos del sistema.
A pesar de que estas dos herramientas, pueden • Diversos tipos de comunicación: Voz, imagen,
ser suficientes, para la creación de sistemas de datos, resultado de experimentos, estado de
apoyo al aprendizaje de materias dotadas de una los experimentos.
componente práctica no muy fuerte, la enseñanza • Ancho de banda: Adecuado para permitir las
de asignaturas tales como: el control automático, distintas comunicaciones de datos científicos
la arquitectura y tecnología de computadores, la como de imágenes o vídeo.
física, etc., requiere de algo más. De un elemento
XI Jornadas de Enseñanza Universitaria de la Informática 525

Si analizamos estas características, podemos • El mayor ancho de banda posible


encontrar muchas similitudes con las 4. Mecanismos para evaluar el aprendizaje de los
funcionalidades básicas de un sistema de gestión usuarios, con el fin de validar el objetivo
de contenidos (CMS: Content Managent System). primario:
De hecho, en el artículo “Introducción a los ”Proporcionar una experiencia similar a la
Sistemas de Gestión de Contenidos (CMS) de obtenida en un laboratorio de prácticas”.
código abierto” [18] se explica que los CMS
proporcionan un entorno que posibilita la 3. Trabajo realizado en la acción
actualización, mantenimiento y ampliación de la
“Laboratorios Virtuales”
Web con la colaboración de múltiples usuarios. Y
como sabemos, en cualquier entorno virtual ésta
es una característica importante, que además En el proyecto PAEES, se acordó que cada acción
puede ayudar a crear una comunidad cohesionada realizara, como mínimo, los siguientes puntos:
que participe más de forma conjunta. 1. Revisar y establecer un catálogo de los
El grupo de trabajo NTA2 ha tomado en trabajos relacionados con la aplicación de las
cuenta esto y de hecho se estudian en profundidad TIC.
los entornos para la gestión de proyectos y el 2. Estudiar y analizar la viabilidad de aplicar
aprendizaje colaborativo. dichas tecnologías para dar soporte a
Por lo tanto, en nuestro caso concreto metodologías de tipo activo.
definiremos a un “Laboratorio Virtual” de la 3. Realizar casos prácticos en asignaturas
siguiente forma: correspondientes a titulaciones de la UPV.
1. El objetivo primario de un “Laboratorio
Virtual” debe ser el de proporcionar una En lo referente al punto número uno, se han
experiencia similar a la obtenida en un realizado dos acciones:
laboratorio de prácticas. • Recopilación de los enlaces a laboratorios
2. Un “Laboratorio Virtual” es un conjunto de virtuales que se proporcionan en Internet.
recursos compartidos en la red con el fin de (ver sección 3.1).
que los usuarios puedan poner en práctica los • El desarrollo un conjunto de herramientas
conocimientos teóricos adquiridos. Por lo que software para gestionar los enlaces. (Ver
es recomendable que posea recursos para: sección 3.2).
• La simulación de sistemas. En lo referente al punto número dos, se observó
• El control remoto de sistemas. que mediante la utilización de un CMS y la
creación de recursos didácticos era factible
• La monitorización de los experimentos vía
desarrollar laboratorios virtuales.
WEB.
Así pues, se han desarrollado dos recursos
• La gestión de dichos recursos.
virtuales:
3. La gestión de estos recursos es recomendable
• Un osciloscopio Virtual.
que se realice mediante un CMS, el cual debe
proporcionar mecanismos para: • Un generador de Funciones.
Estos recursos didácticos están disponibles a toda
• Dar de alta a los usuarios de los recursos y
la comunidad bajo licencia GPL.
agruparlos (investigadores, alumnos
En la sección 3.3 se presenta el osciloscopio
profesores).
Virtual.
• La creación de experimentos.
Finalmente, en lo que respecta al punto número 3,
• Control y monitorización de se está desarrollando un “Laboratorio Virtual”
experimentos. para la práctica de experiencias de Física. Este
• Comunicaciones multimedia entre los laboratorio está basado en los recursos didácticos
investigadores. del osciloscopio Virtual y del generador de
• Un cuaderno de notas digital. funciones. Se está utilizando en la asignatura
• Gestión de los recursos. “Fundamentos Físicos de la Informática”
• Seguridad. impartida en las titulaciones ITIS e ITIG de la
• Diversos tipos de comunicación. UPV.
526 Recursos docentes

3.1. Revisión y Catalogación esos registros en una base de datos Access y,


al mismo tiempo, estructurar toda esa
En primer lugar, se realizó una recopilación de información en XML creando una serie de
los enlaces a Laboratorios Virtuales que se archivos XML clasificados por campos
encuentran en Internet. En paralelo, se diseñó un científicos. De esta manera, tenemos la
catálogo de esos enlaces mediante la creación de oportunidad de guardar dos orígenes de datos
una base de datos, en la cual se almacenan las estructurados para la obtención de dichos
características más importantes relativas a cada códigos.
uno de los enlaces, como por ejemplo: título del • Para el mantenimiento de la base de datos de
laboratorio, descripción, tecnología empleada, enlaces a Laboratorios Virtuales se ha
universidad que lo desarrolla, etc. implementado otra herramienta que nos
Actualmente se tiene una base de datos con permite, mediante una interfaz más agradable,
alrededor de 200 enlaces a Laboratorios Virtuales poder llevar a cabo esta tarea de una manera
existentes en la red. cómoda y sencilla.
Ésta y otra información está disponible a la Con ayuda de la tecnología .NET se han
comunidad a través del servidor desarrollado aplicaciones Web en ASP .NET,
http://didas.disca.upv.es:8080/portal_recursos mediante las cuales se hace más visible el
mantenimiento de la base de datos de enlaces a
Para la catalogación de dichos enlaces fue Laboratorios Virtuales. Estas herramientas
necesario utilizar estándares de clasificación de permiten vía Web, modificar los enlaces
las áreas del conocimiento. En nuestro caso almacenados en la base de datos y/o dar de alta los
particular, hemos utilizado la nomenclatura nuevos enlaces que aparezcan en Internet para
internacional de la UNESCO para los campos de continuar, de esta forma, nuestra recopilación de
la Ciencia y la Tecnología disponible en los trabajos relativos a laboratorios virtuales.
http://www.cica.es/aliens/otrius/otrius/CodUnesco
/List_CodUnesco.htm. Con esto, se ha creado una 3.3. Material didáctico para las asignaturas de
base de datos con los códigos que dicha la UPV
organización establece actualmente para las áreas
científicas de ciencia y tecnología. Para crear un laboratorio virtual, se propone la
Adicionalmente se han implementado una utilización de un CMS que se encargue de
serie de herramientas que nos permitirán mantener gestionar: la creación de usuarios, la realización
esas bases de datos de una manera más cómoda y de experimentos y el acceso al material. En
sencilla. nuestro caso proponemos utilizar el CMS Plone.
http://plone.org
3.2. Herramientas software
Bajo este entorno, se ha dejado disponible un
Para el mantenimiento de las bases de datos se han recurso didáctico que es un osciloscopio virtual.
implementado dos herramientas con el objetivo de
facilitar la realización de esta tarea a aquellos El Osciloscopio Virtual (OV) es
encargados de llevarla a cabo tanto actualmente, fundamentalmente una herramienta didáctica,
como en el futuro. aunque también está pensada para ser utilizada
Distinguimos las herramientas en dos puntos como herramienta de trabajo. Presenta una
relativos a cada una de las bases de datos que interfaz muy elaborada que le proporciona un
hemos creado. Así pues tenemos que: realismo asombroso (ver figura 1). Esta
• Para la creación de la base de datos de los característica y la gran facilidad de interacción
códigos UNESCO, y puesto que entre el usuario y el OV permiten estudiar y usar
previsiblemente se trataba de una base de este aparato con suma facilidad. Se ha buscado el
datos extensa (ahora con más de 2200 máximo parecido con un osciloscopio analógico
registros) se creó una herramienta Web en real aunque se le ha dotado de ciertas
JSP. características que permiten utilizarlo como
Esta herramienta nos permitía insertar todos herramienta de trabajo, esto nos ha llevado a
XI Jornadas de Enseñanza Universitaria de la Informática 527

incluir una versión digital del instrumento, aunque Para fomentar el aspecto educativo de la
muy simplificada. herramienta se han incluido unos tutoriales que
Sus características principales son: explican con detalle el funcionamiento del
• Una interfaz gráfica casi idéntica a la carátula instrumento. El usuario es guiado en todo
de los osciloscopios reales de doble traza, momento por medio de unos bocadillos, tal y
donde los botones se pueden pulsar, girar y como se aprecia en la Fig. 2. Los tutoriales vienen
encender utilizando el ratón. definidos por una serie de archivos de texto que
• Un método de enseñanza y evaluación permiten establecer diferentes configuraciones
interactivos mediante tutoriales y preguntas para cada paso del tutorial y así forzar a estar en
que pudieran ser evaluadas a posteriori por el un estado dado en algún momento del tutorial,
sistema de forma automática. aunque también se puede dejar libertad al usuario
• Un buen visualizador de señales sintéticas y para que se vea forzado a seguir los pasos de la
reales. explicación si quiere terminar correctamente el
• Comunicación con otras aplicaciones a través tutorial.
de puertos de comunicaciones y LiveConnect.
• Interacción con un repositorio de tutoriales de
diferentes idiomas y señales.
• Posibilidad de visualizar señales reales a
través de largas distancias.

Una de las principales especificaciones del


OV es que se pudiera acceder a él desde cualquier
sitio, utilizando la Web y un simple navegador.
Así, el alumno no tendría que depender de ningún Figura 1. Tutorial interactivo.
laboratorio o máquina especial. El alumno puede
trabajar desde su casa o desde cualquier lugar con Una característica relevante del OV es que
acceso a Internet. Los Applets de Java son permite una evaluación automática de los
programas que se pueden añadir a una página conocimientos adquiridos por el alumno en el uso
Web para dotar al navegador de mayor del osciloscopio. Es decir, que mediante una
operatividad y poder realizar, de esta forma, interfaz en LiveConnect de JavaScript se puede
complejas aplicaciones. Nuestro OV es un Applet hacer una pregunta al alumno a través de un
de Java que funciona desde cualquier navegador simple navegador Web para que el alumno
que soporte Java. modifique los valores de la simulación y después
que el propio navegador, utilizando su interacción
El OV tiene dos modalidades de trabajo: una con el simulador, pueda indicar al alumno o al
modalidad analógica, orientada a la enseñanza, y profesor de forma automática si el ejercicio se ha
otra digital, orientada a su uso práctico. realizado correctamente. Así, junto con la
pregunta, se establecerá los valores correctos que
En la modalidad analógica del OV una señal debe tener el OV cuando se termine el ejercicio y
aparecerá como se mostraría dicha señal en un automáticamente el navegador preguntará al OV
osciloscopio real según la configuración si está establecido correctamente o no y así
establecida de la simulación. De este modo, el evaluar al alumno.
usuario puede variar la posición de cualquiera de
los mandos del instrumento y comprobar su efecto En la modalidad digital el OV pasa a tener un
sobre la visualización de la señal de forma control más exhaustivo de la visualización de la
completamente interactiva. Esto puede ser señal ya que, mediante una barra de
especialmente útil en los conceptos de difícil desplazamiento, se puede elegir qué porción de la
asimilación como suelen ser los relacionados con señal aparece en pantalla. Además, al contrario
la etapa de disparo. que en el modelo analógico, la señal está detenida
528 Recursos docentes

en la pantalla permitiendo ampliarla, reducirla y


desplazarla verticalmente y horizontalmente.

Figura 2. Recurso didáctico, osciloscopio virtual.

Durante el presente curso (2004-2005) este


Conclusiones recurso está siendo utilizado en la asignatura de
“Fundamentos Físicos de la Informática”.
En esta ponencia se han presentado los resultados Finalmente, los autores del artículo
obtenidos en la acción Laboratorios Virtuales del encontramos útil la idea de agregar a un CMS
proyecto PAEEES llevado a cabo por el grupo recursos didácticos para crear laboratorios
NTA2. Dichos resultados son: virtuales que faciliten la enseñanza bajo el marco
1. En el portal del grupo NTA2 del EEES.
http://didas.disca.upv.es:8080/portal_recursos
bajo la acción “Laboratorios Virtuales” se Apéndice A. Antecedentes Históricos de
encuentran páginas WEB con los resultados Laboratorios Virtuales
obtenidos.
2. Una catalogación de las URLs de laboratorios Como hemos visto, la motivación de los
virtuales. laboratorios virtuales surge, básicamente, por la
3. Para la creación de nuevos laboratorios virtuales necesidad de crear sistemas de apoyo al estudiante
se cuenta con la herramienta que hemos creado: para sus prácticas de laboratorio con el objetivo de
el OV, un recurso didáctico útil para aprender a optimizar el tiempo que éste emplea en la
utilizar un osciloscopio. realización de dichas prácticas. Sin embargo, el
4. El recurso didáctico está a disposición de la concepto de laboratorio virtual se ha ido
comunidad bajo licencia GPL. extendiendo a lo largo de las últimas dos décadas.
5. En la WEB del grupo NTA2 se encuentra un La tesis doctoral “Modelo de referencia de
tutorial de utilización del OV. laboratorios virtuales y Aplicaciones a sistemas
de Tele-educación” [2] recoge gran parte de la
revisión histórica relativa a los laboratorios
XI Jornadas de Enseñanza Universitaria de la Informática 529

virtuales y sus características principales. A • Control completo sobre el entorno y libertad


continuación, basándonos en esta tesis trataremos para realizar lo que se desee.
de revisar las aportaciones más interesantes que 1997: En la conferencia del IMTC
han ido apareciendo a lo largo del tiempo. encontramos un repaso de normas relativas a
1984: Aparece el concepto de instrumento instrumentos virtuales [13].
virtual [3] como instrumento cuyas características Este mismo año, investigadores de la
vienen definidas por la programación. Universidad de Illinois presentan un completo
1992: Aparece una de las primeras referencias laboratorio de instrumentación electrónica puesto
a laboratorios en los que intervienen operadores a a disposición de los usuarios a través de Internet.
distancia bajo el apelativo de Laboratorio Este es el primer laboratorio virtual con control
distribuido [4]. Además, aparece explícitamente el remoto de instrumentación electrónica en
término laboratorio virtual [5], describiendo la funcionamiento [14].
programación orientada a objetos como sistema 1998: Las referencias a laboratorios virtuales
para el desarrollo de un laboratorio de simulación. incrementan su número de forma considerable.
1993: Lo más interesante a destacar es la Una de las más destacadas, es la conferencia de
aparición de un nuevo concepto, que es el IMTC y la asociada ETIMVIS’98 donde se
colaboratorio [6]. describe un modelo detallado de un laboratorio
1994: Se presenta un estudio realizado por la virtual de simulación [15], y una propuesta de
Universidad de Vanderbilt en EE.UU. en el que se laboratorio docente en el que los alumnos utilizan
desarrolla un laboratorio virtual basado en instrumentos virtuales para crear sus
simulación como apoyo a las prácticas experimentos.
tradicionales [7] y, que concluyó, con la necesidad 1999: Además de los consejos respecto al uso
de esta herramienta para aprender las habilidades del Web en clases que recoge este artículo [16] y
básicas y el manejo de los equipos, lo cual en el que se incluyen referencias a laboratorios
optimizaba tanto el tiempo de los alumnos como virtuales de simulación y de control remoto,
el del personal de laboratorio. encontramos en el IMTC una detallada
Ese mismo año aparece un artículo [8] en el especificación [17] de cómo montar un laboratorio
que se define explícitamente un laboratorio virtual virtual con elementos comerciales disponibles,
como un programa de simulación. junto con los requisitos básicos que debe afrontar
Además, cabe destacar la aparición de una cualquiera que se plantee el diseño de un
experiencia pionera en el campo del control laboratorio virtual.
remoto, ya no de instrumentación sino de robots 2000: Se van sucediendo artículos en
[9] que permitía controlar remotamente un brazo conferencias y revistas donde se describen
robot. Dicha experiencia puede ser considerada distintos laboratorios virtuales y donde se va
actualmente un laboratorio virtual. entrando en detalle en los distintos métodos a
1995: Encontramos una descripción detallada utilizar en el desarrollo de laboratorios virtuales y
de los requisitos que un laboratorio virtual debe se comentan posibles soluciones que mejoren o
cumplir [10], encontrando, a la vez, una serie de aumenten el rendimiento de éstos. La idea de
similitudes con las características de otra utilizar la simulación como paso previo al uso de
tecnología Web desarrollada en los últimos años. los instrumentos permitirá que se reduzca el
1996: A lo largo de este año, encontramos tiempo necesario de uso del instrumento real y por
diversos artículos que nos van indicando tanto, del recurso más costoso.
elementos necesarios para el éxito de un sistema Por último, solo cabe destacar las múltiples
de educación a distancia. En estos artículos se referencias en las que se presentan experiencias en
recalca que el aprendizaje activo es lo que debe distintos laboratorios distribuidos de distintas
predominar en las prácticas y por tanto un áreas experimentales que se han extendido por la
laboratorio que pretenda ofrecerse por control red en los últimos años y, de los cuales se ha
remoto debe facilitar: hecho una recopilación y catalogación en este
• Colaboración entre usuarios. trabajo.
• Presencia activa.
530 Recursos docentes

Referencias

[1] Sánchez, José. Dormido, Sebastián. Morilla, F. [10] Johnston, William E. Agarwal, Debora. The
Laboratorios virtuales y remotos para la Virtual Laboratory: Using Networks to enable
práctica a Distancia de la Automática. Widely Distributed Collaboratory Science.
Departamento de Informática y Automática, Ernest Orlando Lawrence Berkeley National
UNED. Laboratory, University of California, 1995.
[2] Rodrigo, Vicent M. Modelo de referencia de [11] Hernández, A.M. Benlloch, J.V., Benet, G.
laboratorios virtuales y Aplicaciones a Sistema de instrumentación programable
sistemas de Tele-educación, 2003. multiusuario vía red local para el desarrollo
[3] Goldberg, Harold. What is Virtual de prácticas de laboratorio. II Congreso
Instrumentation? IEEE Instrumentation & TAEE ’96, Sevilla 1996.
Measurement Magazine, 2000. [12] Benlloch, J.V. Lemus, L. Buendía, F. García
[4] Mercurio, Philip J., Elvins T.T., Young J.M. Bayo, J.L. Remote Data Acquisition over
Stephen J., Cohen, Philip S., Fall, Kevin R., the Internet. Annual Conference on Education
Ellisman, Mark H. The distributed laboratory: in Electrical and Information Engineering,
an interactive visualization environment for 2000.
electron microscope and 3d imaging. [13] Spoelder, H.J.W. Ullings, A.H. Groen, F.C.A
Communications of the Association for Virtual Instrumentation: A survey of
Computing Machinery, 1992. Standards and their Interrelation. IEEE
[5] Haden, G.L. An object Oriented Modelling Instrumentation and Measurement
and Simulation Component for Virtual Technology Conference. Ottawa, Canada,
Engineering Laboratories. Proceedings of 1997.
22nd annual conference Frontiers in [14] Werges, Stephan C. Naylor, David L. A
Education, 1992. Networked Instructional Instrumentation
[6] Cerfetal, V.G. National Collaboratories – Facility. Annual Meeting of the American
Applying Information Technology for Society for Engineering Education,
Milwaukee, 1997.
Scientific Research. Committee on a National
Collaboratory, National Research Council. [15] Ferrero, Alessandro. Piuri, Vincenzo. A
National Academy Press, Washington D.C. Simulation Tool for Virtual Laboratory
1993. Experiments in a WWW Environment. IEEE
[7] Mostermean, P.J. Donaldt, M.A.M. Campbell, IMTC. St. Paul, Minnesota, Mayo 1998. IEEE
J. Olin. Burow, C. Bouw, R. Brodersen A.J. Transaction on Instrumentation and
Bourne J.R. Virtual Engineering Measurement, 1999.
Laboratories: Design and Experiments. [16] IEEE Control System Magazine. Using the
Journal of Engineering Education, 1994. Web in Your Courses: What Can You Do?
[8] Mostermean, P.J. Campbell, J. Olin. Design What Should You Do?, Febrero 1999.
and Implementation of an Electronics [17] Benetazzo, L. Bertocco, M. Ferraris, F.
Laboratory Simulator. P.J. Mostermean, J. Ferrero, A. Offelli, C. Parvis, M. and Piura, V.
Olin Campbell, R. Brodersen A.J. Bourne J.R. A Web-Based Distributed Virtual Educational
IEEE Transactions on Education. 1996. laboratory. IEEE TIM, 2000.
[9] Goldberg, Ken. Mascha, Michael. Gentner, [18] García, Xavier C. Alfonso, Julià M.
Steven. Rossman, Juergen. Rothenberg, Nick. Introducción a los Sistemas de Gestión de
Sutter, Carl. Wiegley, Jeff. The Mercury Contenidos (CMS) de código abierto.
project – Robotic tele-excavation. Beyond the Departamento de Informática y Automática,
Web: Excavating the Real World Via Mosaic. UNED, 2004.
International WWW Conference. Chicago,
1994.
EIPMail: Una herramienta para la retroalimentación en
evaluación continua vía correo electrónico.

Luis Martín, Borja Monsalve y Francisco Carrero


Dpto. de Sistemas Informáticos
Escuela Superior Politécnica
Universidad Europea de Madrid
28670 Villaviciosa de Odón, Madrid
e-mail: {luis.martin, borja.monsalve, francisco.carrero}@uem.es

Resumen puede quedarse anclada en el sistema de


evaluación global. Dado que el número de
La herramienta que aquí se presenta pretende pruebas aumenta, y dado que cambia su
servir como sistema de apoyo a la naturaleza, se hace necesaria una capacidad de
retroalimentación de información al alumno en comunicación mayor entre el alumno y el
evaluación continua. Los libros Excel son un profesor (nótese que se habla del alumno en
recurso utilizado por gran parte de los docentes singular). El requisito mínimo es establecer un
para el control y seguimiento de la evaluación procedimiento de retroalimentación de
continua. EIPMail (Envío de Información información al alumno sobre su evaluación de
Personalizada vía eMail) trabaja directamente forma continuada. La frecuencia de esta
sobre los datos almacenados en una hoja Excel, retroalimentación debe ser proporcional,
permitiendo la selección de los mismos y su además, a la frecuencia de asignación de notas y
envío formateado en un correo electrónico a valoraciones en evaluación continua.
cada alumno de forma personalizada. Este Para llevar a cabo la tarea de informar a los
recurso docente ha gozado de una considerable alumnos sobre su evaluación de manera
aceptación entre el alumnado y quiere ser el periódica, en condiciones normales se hace
primero de un conjunto de programas de apoyo imprescindible que el número de alumnos en un
a la docencia construidos en torno a libros mismo grupo sea manejable [1]. En ocasiones la
Excel. reducción de este número de alumnos no es
viable por problemas relacionados con los
recursos (humanos o materiales) de los
1. Introducción departamentos, por lo que se deben idear
soluciones alternativas para poder mantener
estos esquemas de evaluación.
Los nuevos modelos educativos conllevan
metodologías de trabajo diferentes a las
tradicionales. En evaluación continua se
pretende premiar el esfuerzo continuado del 2. Motivación
alumno, pudiendo tener influencia directa en la
nota final aspectos como la participación en Entre los principales objetivos de la Declaración
clase o la asistencia. Todo esto supone que el de Bolonia [4][5], destacan la unidad y la
alumno está recibiendo notas o valoraciones que cooperación. La implantación de metodologías
afectan a su evaluación con una frecuencia activas en el aula que fomenten estos principios
mucho mayor que en evaluación global. La tiene un alto grado de importancia. Por ejemplo,
normativa de evaluación, además, se vuelve más una de las técnicas que está alcanzando gran
compleja, lo que lleva asociado una dificultad popularidad es el Aprendizaje Cooperativo. Esta
añadida tanto para los estudiantes como para los metodología puede aplicarse a la resolución de
profesores. ejercicios prácticos en el aula: el profesor divide
Si se pretende que el sistema de evaluación la clase en grupos reducidos de alumnos, a los
continua funcione, la metodología de trabajo no cuales asigna ejercicios o problemas a resolver.
532 Recursos docentes

Para la realización de esta tarea los estudiantes momento se plantea el objetivo de hacer llegar a
disponen de tiempo en el aula, pero la mayoría los alumnos determinada información objetiva
del trabajo lo realizan los grupos de forma sobre sus progresos en la asignatura. Se ha
autónoma fuera del horario de la asignatura. decidido desarrollar una aplicación que trabaja
Tras esto se procede a la corrección, donde con los datos almacenados sobre los alumnos en
cualquier miembro del grupo puede ser una hoja Excel, y que es capaz de enviarlos por
requerido para resolver el problema, y la correo electrónico de forma automática y
calificación obtenida es la que finalmente personalizada.
reciben todos los componentes del grupo.
Toda esta metodología encaja dentro del
sistema de evaluación continua seguido en una 3. La asignatura
asignatura, donde el alumno obtiene también
una calificación a partir de los distintos La asignatura “Estructuras de Datos y de la
exámenes parciales que va realizando a lo largo Información” (en adelante EDI) es una materia
del curso. La nota final de la materia sería el troncal, de segundo curso, impartida en las
resultado de un reparto porcentual de los titulaciones del área de informática de la Escuela
diferentes exámenes, notas de ejercicios de Superior Politécnica de la Universidad Europea
clase, notas de las prácticas de laboratorio y de Madrid. Originalmente tiene asignados 12
asistencia a las clases que el estudiante va créditos en el Boletín Oficial del Estado, de los
obteniendo a lo largo del curso. cuales 9 son teóricos y 3 son prácticos.
Para que el alumno tenga conocimiento de En la dinámica de la materia se distinguen
su situación en la asignatura, se revela claramente dos componentes: una teórica y otra
determinante el hecho de que pueda estar al práctica. La primera de ellas se desarrolla
tanto en cada momento el estado de su básicamente siguiendo una metodología de clase
evaluación. En el caso que nos ocupa, y como se magistral, que se ve complementada con la
ha comentado con anterioridad, son varios los realización de ejercicios para practicar y afianzar
factores que influyen en lo que se convertirá en los conceptos explicados. Normalmente estos
la calificación final del alumno. Se hace ejercicios se plantean al concluir cada tema.
necesario informar al estudiante acerca de sus Para su realización se han implantado técnicas
evoluciones (porcentaje de asistencia a clase, de aprendizaje cooperativo: los alumnos se
notas en los ejercicios, calificaciones de las organizan en grupos para la realización,
prácticas, etc.), con una frecuencia acorde con el corrección y calificación de los problemas. La
ritmo de la asignatura. asistencia se considera requisito indispensable
El sistema de comunicación elegido ha sido para la evaluación continua, por lo que se aplica
el correo electrónico. Se ha escogido este medio un coeficiente corrector sobre la nota del alumno
por su carácter activo: el correo electrónico dependiente de su porcentaje de faltas
permite al profesor decidir el ritmo con el que injustificadas.
un alumno recibe la información, viéndose así El apartado práctico se basa en la realización
reforzada su labor de director de la asignatura en del curso “Estructuras de Datos y Algoritmos”
evaluación continua. Existen alternativas de de iCarnegie. Este curso, que consiste en la
comunicación basadas en tecnología web [2] realización de cuestionarios y prácticas de
que no permiten este tipo de control por parte programación en C++ (sobre una base teórica,
del profesor, ya que queda a iniciativa del que, en este caso, encaja perfectamente con el
alumno la consulta de los datos. En este sentido, temario de EDI), es uno de de los diez ofertados
cabe resaltar también la contribución motivadora por esta institución asociada a la Carnegie
de una sabia gestión de la transmisión de Mellon University. Los cursos ofertados por
información por parte del profesor. El correo iCarnegie utilizan técnicas de formación a
electrónico ha sido utilizado como herramienta distancia a través de Internet.
de comunicación en casos anteriores [3].
Todos los alumnos de la Universidad
Europea de Madrid tienen acceso a una cuenta
que les proporciona la propia universidad. Por el
XI Jornadas de Enseñanza Universitaria de la Informática 533

Figura 1. Ejemplo de hoja Excel.

La información guardada incluye el nombre


4. Herramienta del fichero fuente, la hoja Excel que contiene
los datos, y los campos seleccionados.
• Configurar los datos del correo electrónico del
profesor.
4.1. Funcionamiento
Como única restricción para los archivos
EIPMail utiliza como fuente de datos ficheros Excel, las hojas deberán contener los nombres de
Excel donde se encuentra tabulada la información las columnas en la primera fila, y los datos a partir
referente a la evaluación de los alumnos (Figura de la segunda.
1). Para su correcto funcionamiento, los ficheros Una de las prioridades en el diseño y
Excel deberán estar registrados como origen de desarrollo de EIPMail ha sido conseguir una cierta
datos ODBC. facilidad de uso. Se ha intentado que todas las
Las funciones principales de la funcionalidades antes mencionadas se encuentren
herramienta son las siguientes: integradas y fácilmente accesibles desde la
interfaz principal (Figura 2). El flujo normal de
• Elegir el libro Excel que sirve como origen de utilización de la herramienta consta de los
datos. siguientes pasos:
• Consultar la información que se envía a los • Crear una nueva configuración de consulta.
alumnos mediante correo electrónico. • Elegir la hoja Excel que sirve como origen de
• Ver la lista de direcciones obtenida tras la datos.
consulta y seleccionar los destinatarios de los • Una vez que la herramienta muestra los
mensajes. nombres de las columnas disponibles,
• Acceder a una vista previa del mensaje que le seleccionar aquéllas que quiere incluir en el
llegará al alumno. correo electrónico.
• Enviar los mensajes de correo. • Enviar los mensajes de correo. Antes de
realizar el envío, el usuario puede visualizar y
También existen opciones de configuración tales modificar la lista de direcciones, así como
como: acceder a una vista previa del mensaje
• Almacenar configuraciones de consulta generado.
personalizadas, para su posterior reutilización.
534 Recursos docentes

El correo electrónico generado tiene un comprensión de la información por parte del


formato tabulado (Figura 3), facilitándose así la receptor

Figura 2. Captura de la pantalla principal de EIPMail.

para que el alumno no abandone la asignatura en


4.2. Resultados evaluación continua.
Aunque los resultados no son concluyentes
La herramienta ha comenzado a utilizarse en el dada la altura del curso, se ha observado cómo el
año académico 2004/2005, con tres de los siete nivel de participación en evaluación continua para
grupos de la asignatura. Aunque el curso aún no el presente año académico ha aumentado en
ha finalizado, se pueden realizar valoraciones comparación con el curso 2003/2004.
sobre su acogida entre el alumnado.
En general, los alumnos de los grupos de
prueba muestran su satisfacción ante este sistema 5. Conclusiones y trabajos futuros
de envío de información personalizada. No sólo
declaran conocer mejor su situación durante el EIPMail se ha revelado como un apoyo positivo a
curso, sino que además, en su opinión, tanto el la docencia en evaluación continua. Se ha podido
funcionamiento como la finalidad del sistema de llevar a cabo una tarea que, sin la herramienta,
evaluación se entienden más claramente cuando hubiese supuesto una carga de trabajo
existe una retroalimentación adecuada. Un prácticamente inabordable para los profesores.
elevado número de alumnos ha solicitado un Los alumnos, por su parte, se muestran satisfechos
aumento en la frecuencia de envío de la con la información recibida y proponen mejoras y
información. Esta petición puede ser abordada con nuevas posibilidades. Por supuesto, la frecuencia
facilidad utilizando EIPMail, quedando a servicio con la que se envía la retroalimentación queda a
únicamente del criterio del profesor atender la elección del usuario de la herramienta.
demanda. Todo esto, además, sirve como estímulo
XI Jornadas de Enseñanza Universitaria de la Informática 535

Se pretende que la versión actual no sea más principales proyectos de futuro se encuentra la
que el germen de todo un sistema de herramientas construcción de herramientas de apoyo no sólo a
de apoyo a la evaluación en torno a los datos la consulta, sino también a la modificación de
almacenados en libros Excel (o cualquier otro datos en evaluación continua (por ejemplo,
origen de datos de uso común). Entre los

Figura 3. Ejemplo de mensaje de correo recibido.

gestión de faltas de asistencia), el posible envío de [2] Dougiamas, M. Moodle: A Free Open Source
información de apoyo al seguimiento de la Course Management System for Online
evaluación (comentarios, valoraciones, etc…) así Learning. www.moodle.org.
como de aplicaciones que faciliten la [3] Huang, A. Innovative Use of Email for
comunicación en el sentido opuesto a EIPMail, es Teaching. Communications of the ACM.
decir, que posibiliten el envío de información por Noviembre de 2001, Vol. 44, Nº 11. Págs. 29
parte de los alumnos al profesor. a 32.
[4] Sorbonne Joint Declaration. Joint declaration
Referencias on harmonisation of the architecture of the
European higher education system, by the four
[1] Cernuda del Río, Agustín. Retroalimentación Ministers in charge for France, Germany, Italy
a los alumnos tras los exámenes finales: Un and United Kingdom. Paris, the Sorbonne,
caso práctico. X Jornadas de Enseñanza May 25, 1998.
Universitaria de la Informática, 2004. [5] The Bologna Declaration of 19 June 1999.
Alicante. Joint declaration of the European Ministers of
Education.
jsYASP: Un simulador de un procesador educativo en Javascript

Lluís Ribas Xirgo, David Rodríguez Jurado


Departamento de Microelectrónica y Sistemas Electrónicos
Escuela Técnica Superior de Ingeniería (ETSE) – Universitat Autònoma de Barcelona (UAB)
08193 Bellaterra
e-mail: Lluis.Ribas@UAB.es

Resumen Con todo, la utilización de un simulador de


una máquina elemental didáctica permite
Los procesadores sencillos se emplean en la consolidar los conocimientos logrados en las
docencia de los fundamentos de los computadores clases teóricas, referentes a la estructura y
para mostrar su funcionamiento. En este trabajo se funcionamiento de un computador. Estos
presenta un simulador de una de estas máquinas simuladores deben de tener un manejo simple para
elementales. Se ha realizado en Javascript para evitar que los estudiantes pasen más tiempo
poder ser ejecutado desde cualquier plataforma sin entendiendo su uso que aprendiendo el
necesidad de instalación. Como resultado funcionamiento de los procesadores que simulan.
adicional, la interfaz gráfica resulta muy simple y Más aun, atendiendo al hecho de que la
amigable y, además, el simulador es de código implantación del espacio europeo de educación
abierto. Con todo, el uso del simulador facilita un superior supondrá la revisión de los planes de
modelo docente complementario al presencial que estudio y de la metodología de la enseñanza,
resulta conveniente para el marco que se establece resulta conveniente disponer de herramientas que
en el nuevo espacio europeo de educación permitan centrar la programación docente en el
superior. aprendizaje del alumno.
El objetivo de este trabajo consiste en
1. Introducción desarrollar un simulador de una máquina
elemental que pueda ejecutarse en cualquier
plataforma y cuyo uso sea muy simple.
En las asignaturas que tratan de los
El procesador es el mismo que ya se utiliza en
fundamentos de los computadores se enseña cómo
la asignatura de Fundamentos de Computadores
funciona un ordenador a partir de su arquitectura
desde el año 2000 [3] y la interfaz gráfica se
básica. Así pues, un computador es una máquina
inspira en el simulador existente.
que toma datos del exterior, los procesa de
La independencia de plataforma supone, en la
acuerdo a un programa y obtiene unos resultados.
práctica, que los estudiantes puedan desarrollar el
En este modelo, el procesador dispone de una
trabajo práctico fuera del laboratorio. Esto supone
memoria en el que se almacenan datos e
una mayor flexibilidad tanto para ellos como para
instrucciones (la llamada arquitectura de Von
los profesores. La simplicidad del uso permite que
Neumann) y una unidad de procesado que las
el alumno se centre en el procesador. Dado que
ejecuta con los datos correspondientes.
éste último debe enfatizar los aspectos clave de la
El procesador es pues, el elemento clave de
arquitectura de los computadores, este mismo
los ordenadores y el que merece una atención
hecho implica un aumento de la eficiencia
especial en los programas docentes de las
educativa de la herramienta.
asignaturas de los temas correspondientes.
Este artículo se organiza como sigue. En el
Dado que el empleo de procesadores reales
apartado siguiente se describen brevemente
(como los i808x) causa una cierta dispersión del
algunos procesadores educativos y, en especial, el
aprendizaje, es recomendable emplear otros de
empleado en nuestra universidad. A continuación
más simples que mantengan las características
se presenta el simulador y, finalmente, se destacan
básicas de la arquitectura de los mismos. Más aun,
los puntos más importantes conseguidos con este
si se tiene en cuenta que, en la asignatura de
trabajo en el apartado de conclusiones.
Fundamentos de Computadores de la titulación de
Informática de la UAB, el tiempo para la parte de
rudimentos de arquitectura es de 4,5 créditos.
538 Recursos docentes

2. Procesadores didácticos instrucciones pueden acceder a sus operandos


mediante cuatro tipos de direccionamiento en
Todos los procesadores de orientación didáctica se memoria distintos: inmediato, directo, indexado y
basan en la arquitectura de Von Neumann, pues es por registro. La comunicación con el exterior se
la empleada en la mayoría de los procesadores supone que se produce mediante mapeo de los
actuales. dispositivos periféricos en memoria.
En esta arquitectura, el procesador ejecuta un Por otra parte, CODE-2 (o computador
programa que se almacena en su memoria didáctico elemental [2]) dispone de una UCP más
principal. El modo de ejecución de este programa completa, con un camino de datos que incluye un
es totalmente secuencial: la unidad central de banco de 16 registros y una unidad aritmético-
procesamiento (UCP) lee una instrucción de la lógica (ALU) con las operaciones básicas. Dado
memoria, la ejecuta y calcula qué instrucción que toda la máquina es de 16 bits, la memoria
deberá ejecutar a continuación. Este ciclo de tiene un tamaño de 64Kb. Dispone de dos
ejecución de las instrucciones del programa instrucciones para acceder a los datos en memoria
almacenado en la memoria se repite mediante direccionamiento directo o indexado.
indefinidamente. Así pues, se trata de un procesador que se inspira
Los distintos procesadores didácticos que en los de arquitectura RISC. Por otra parte,
existen lo desarrollan de maneras ligeramente dispone de instrucciones de llamada de funciones.
diferentes. La comunicación con el exterior se realiza
Una de las más simples es Blue [1], que tiene mediante puertos de entrada/salida.
un repertorio de sólo 16 instrucciones y El procesador que se emplea en la asignatura
únicamente dispone de direccionamiento directo de Fundamentos de Computadores de nuestra
para acceder a los datos de las instrucciones. Este universidad es una versión algo más compleja que
procesador tiene una UCP con un camino de datos Blue, pero mucho menos que CODE-2. En el
con los registros imprescindibles para la apartado siguiente se describe con un poco más de
comunicación con la memoria (MAR y MBR) y el detalle.
seguimiento del ciclo de ejecución de
instrucciones (PC e IR), así como tres registros 2.1. El procesador didáctico YASP
para datos (A, Y y Z). La memoria es de 4K-
palabras de 16 bits. La comunicación con el YASP es el acrónimo de yet another simple
exterior sólo puede hacerse mediante mapeo en processor y fue desarrollado en el Departamento
memoria de los dispositivos correspondientes. de Informática de la UAB [3] para ilustrar el
En cambio, la máquina rudimentaria [4] es un funcionamiento de un computador con
procesador que dispone de una memoria de 256 arquitectura de Von Neumann. Su camino de
palabras de 16 bits, con un camino de datos que datos incluye sólo los registros necesarios para
cuenta con un banco de 8 registros. Las efectuar la comunicación con la memoria, el

Memory MAR CommUnit


BusW
(256x8) Communication
MB Unit
8

A
CU Z ALU

Control Unit X
C Arithmetic-Logic Unit

ALU PC
5 microinst
IR
BusM BusR

Figura 1. Esquema de la máquina elemental YASP


XI Jornadas de Enseñanza Universitaria de la Informática 539

seguimiento del ciclo de ejecución de plataformas de ejecución más comunes, también


instrucciones y la realización de las operaciones hay otras que se emplean cada vez más. En
indicadas con un registro de propósito general, el especial las derivadas de la iniciativa del software
acumulador. (Hay otro registro auxiliar que puede libre o de código abierto y, claro, del Linux como
emplearse para datos.) La memoria es de 256 su sistema operativo.
bytes, puesto que todos los registros son de 8 bits. Así pues, se plantea la necesidad de
Su repertorio de instrucciones incluye las más desarrollar un simulador para un procesador
comunes y dispone de 4 modos de didáctico que pueda ejecutarse en varias
direccionamiento: inmediato, directo, indexado e plataformas. Con ello se simplifica enormemente
indirecto. Este último se incluye sólo para ilustrar la gestión de las versiones del propio simulador y
su funcionamiento, aunque lo más común en su instalación. Además, se consigue una
procesadores simples sería una forma indirecta independencia de la plataforma existente en los
mediante registro. (En YASP no tiene sentido laboratorios que permite tanto su actualización
hacerlo así, pues sólo dispone de dos registros como que los alumnos realicen su trabajo en otros
para datos.) lugares y pudiendo organizar su tiempo de forma
La comunicación con los periféricos de más adecuada a sus necesidades.
entrada y/o salida se realiza mediante puertos y
líneas de petición y aceptación. Con ello, YASP 3.1. Simulador en Javascript de YASP
se puede ver perfectamente como un procesador
completo que puede aceptar datos del exterior y Con el requerimiento anterior, se pensó en
también proporcionarle resultados. emplear Javascript para desarrollar un simulador
Las líneas de petición y de aceptación de la máquina elemental YASP que fuera
permiten ilustrar el funcionamiento de los multiplataforma y de código abierto.
protocolos asíncronos de comunicación. YASP no De hecho, con disponer de un navegador de
acepta interrupciones porque implicaría el uso de web compatible en cualquier plataforma, se podrá
llamadas a subrutinas, que tampoco implementa. ejecutar el simulador. Así pues, dado que es el
De todas maneras, las interrupciones pueden navegador el que ejecuta el simulador, éste se
emularse mediante las líneas de aceptación. convierte en una aplicación multiplataforma de
La no inclusión de instrucciones de manera directa. Por otra parte, no es necesaria su
llamada/retorno de función se debe a que resulta instalación, si bien es cierto que también puede
habitual que los alumnos aun no hayan adquirido ejecutarse desde el mismo ordenador para no
el conocimiento de estructuras de datos como la depender de la conexión a la red.
pila, necesarias para su implementación. Además, El código Javascript se incluye en la página
aumentaría mucho la complejidad de YASP. que se descarga para ejecutar el simulador, por lo
tanto, es de código abierto y puede ser modificado
3. Simuladores de procesadores docentes libremente por quién lo desee. Es posible añadir
nuevas opciones al simulador, como también
Tal como se ha comentado en la introducción, realizar cambios en el procesador.
estos simuladores deben de tener una interfaz de Se descartaron otras tecnologías de desarrollo
aspecto agradable y fácil de usar, y han de poder de programas con tecnología de la web como
ejecutarse sin mayor problema en distintas applets en Java o aplicaciones en Flash de
plataformas. Macromedia porque requieren de la instalación de
Todos los procesadores que se han descrito en la máquina virtual de Java o del plug-in de Flash,
el apartado anterior disponen de simuladores que respectivamente.
se ejecutan en plataformas de PC con alguna de Aun así, Javascript tampoco es totalmente
las versiones del sistema operativo Microsoft independiente de plataforma, pues los distintos
Windows. Aunque no hay que olvidar que existen navegadores que existen en el mercado no lo
diferencias entre versiones de Windows que implementan de igual forma. En algunos casos
pueden dificultar la ejecución de algún simulador hay instrucciones que solo son válidas para un
preparado para otra distinta de la que se emplea determinado navegador o métodos que funcionan
para su ejecución. A pesar de ser éstas las de diferente forma. Para conseguir un correcto
540 Recursos docentes

funcionamiento de jsYASP en la mayoría de disponible en microelec.uab.es/ribas/edu/fc/yasp.)


navegadores posibles, se optó por utilizar los Está previsto su uso en el curso 2004/2005 en
objetos y métodos que tienen una implementación sustitución del simulador compatible con
común. Esto hizo que en alguna ocasión hubiese Windows preexistente.
que renunciar a la eficiencia en detrimento de la En un futuro se realizará una versión para que
compatibilidad. varios simuladores intercambien datos a través de
La interfaz del simulador de la máquina los puertos de los procesadores.
elemental YASP, jsYASP, (véase la figura 2) se
ha realizado con HTML, utilizando básicamente Referencias
tablas y elementos de formulario, para conseguir
la mayor homogeneidad posible en la [1] Foster, C. Computer Architecture. NY: Van
visualización de YASP en los diferentes Nostrand Reinhold, 1976.
navegadores. Es muy simple e intuitiva. Todas sus [web.frm.utn.edu.ar/tecnicad2/tec_dig2/tools/te2blu
funciones se engloban en una única superficie de e.html]
trabajo organizada en subventanas: una para el [2] Prieto, A.; Pelayo, F.J.; Gómez-Mula, F.;
código en ensamblador y otras para el procesador. Ortega, J.; Cañas, A.; Martínez, A.;
jsYASP se ha probado con Internet Explorer Fernández, F.J. Un computador didáctico
5.0, Mozilla 1.7.3, Mozilla Firebird 1.0, Netscape elemental (CODE-2). Actas de las VIII
6.0 y otras versiones superiores de los Jornadas de Enseñanza Universitaria de la
navegadores ya citados. Informática (JENUI'2002), pp. 117-124,
Cáceres, 10-12 Julio 2002.
4. Conclusión [atc.ugr.es/intro_info_mcgraw/alumno/code2.htm]
[3] Ribas, Ll. Pràctiques de fonaments de
Se ha presentado jsYASP, un simulador de un computadors. Bellaterra: Serv. Pub. UAB,
procesador educativo realizado con Javascript que 2000.
es multiplataforma, de código abierto y con una [4] –. Estructura básica de un computador.
interfaz amigable: Para ejecutar jsYASP sólo es Barcelona: UOC, 2002.
necesario un navegador compatible. (Está

Figura 2. Ventana de ejecución

También podría gustarte