Archivo de la categoría: máster en computación

máster en computación en la especialidad de sistemas embebidos de la Universidad de Cantabria

el lenguaje de especificación SystemC

En esta tercera sesión del seminario teórico de la asignatura de lenguajes de especificación de sistemas del máster en computación, nos hemos adentrado durante las tres horas en el estudio del lenguaje de especificación de sistemas estándar OSCI SystemC. Ha sido un poco duro asistir a una clase un viernes por la tarde …

El lenguaje SystemC unifica la descripción hardware y software de un sistema embebido tomando como base el lenguaje de programación C++ con su paradigma de programación orientada a objetos. Sobre esta base se construye una librería estándar y un entorno de simulación orientado a eventos por parte de la organización OSCI.

Aparte de lo dado en el seminario, hay una referencia (aparte de la web de OSCI) donde se puede encontrar material de estudio y práctica de SystemC, que es el tutorial de Doulos.En este mismo sitio web podemos ver material de estudio y ejemplos del otro lenguaje de especificación que tiene una amplia difusión en la industria es System Verilog.

Sigue leyendo el lenguaje de especificación SystemC

Anuncios

Lenguajes y herramientas de especificación y verificación de sistemas

Hoy hemos tenido la primera sesión de esta asignatura troncal del máster en computación especialidad sistemas embebidos: M15: Lenguajes y herramientas de especificación y verificación de sistemas ( Periodo: 19 Nov. A 19 de Dic. 2008 ) El profesor, Eugenio Villar Bonet, nos ha informado de que vamos a tener un entorno virtual de aprendizaje en el Aula Virtual de la Universidad de Cantabria donde vamos a encontrar todo el material del curso.

El período de la asignatura se distribuye en 45 horas presenciales y 80 horas de trabajo del alumno (no presencial) Las 45 horas presenciales se distribuyen en 30 horas de seminario teórico con ejercicios propuestos (a realizar dentro de las 80 horas, supongo) y 15 horas de laboratorio. Las horas de laboratorio las da Fernando Herrera. Las horas teóricas las da Eugenio Villar. El horario de las teóricas de lunes a viernes de 17 a 20 horas. Vamos a tener un profesor visitante, Axel Jantsch, que va a impartir una parte del temario, en concreto los modelos de computación. Su parte será impartida en una semana de Febrero (10-15 horas)

La evaluación de la asignatura sigue las directrices innovadoras de Bolonia. El 50% de la calificación se deriva de la resolución de los ejercicios propuestos. La calificación se realiza por el método de evaluación colectiva. Los ejercicios se plantean a todos los alumnos pero se asigna a uno, que debe resolverlo y defender su solución ante el resto de los compañeros y profesor. Tras la presentación se abrirá un periodo de discusión. Al final el profesor dará una calificación y los compañeros otra. La nota final será la media de la nota del profesor y la media de la nota del resto de los compañeros. Para evitar suspicacias y asegurar una calificación justa de los compañeros (que idealmente deben juzgar la solución con conocimiento de causa y comparando con la propia) se utilizará un sistema mediante el cual la nota que individualmente emita cada compañero se comparará con la emitida por el profesor y si la diferencia es mayor que una cierta cantidad, la nota del alumno se descartará y se le penalizará con unas décimas en su nota final.

El otro 50% de la nota provendrá de la evaluación de las prácticas de laboratorio.

Sigue leyendo Lenguajes y herramientas de especificación y verificación de sistemas

asignación del trabajo final de programación concurrente

Hoy me han asignado el trabajo final de la asignatura de programación concurrente del máster en computación que estoy realizando en la Universidad de Cantabria. Mediante la resolución y presentación de este trabajo voy a ser evaluado en la asignatura. En el archivo comprimido que he recibido por correo electrónico se encuentra una implementación secuencial de la aplicación y un documento de ocho páginas en el que se explica el objeto del mismo:

El objetivo de este trabajo es diseñar un driver que facilite el uso de una tarjeta de entrada y salida analógica con 8 líneas analógicas de entrada y 4 líneas analógicas de salida, por aplicaciones concurrentes, así como el diseño de las aplicaciones concurrentes que hacen uso de ellas.

Los drivers son unas piezas de software, normalmente integradas en el sistema operativo, que suelen hacer uso intensivo de los threads. Aquí hay que tener en cuenta que no importa tanto entender la especificación del mismo como la implementación secuencial para poder convertirla en una implementación concurrente. El trabajo debe ser terminado este mes de noviembre. El resultado va a ser el código de la implementación concurrente y una presentación para ser defender la solución adoptada ante el profesor responsable de la asignatura.

concurrencia en otros lenguajes

El curso de Programación Concurrente del Máster de Computación me ha dotado de los conocimientos básicos necesarios para entender y aplicar la programación concurrente en varios escenarios más allá del lenguaje de programación Java y el paradigma de programación orientada al objeto, y más allá también de los servicios que ofrecen en este sentido los sistemas operativos modernos. Hoy me he puesto a investigar un poco cómo se trata la concurrencia en otros lenguajes y sistemas operativos de los que he tenido contacto en esta asignatura del máster (i.e Java y Microsoft Windows)

Sigue leyendo concurrencia en otros lenguajes

laboratorio de programación concurrente: sincronización

Esta semana tenía que haber estado dedicada a la concurrencia en el lenguaje de programación Ada, pero la ausencia del profesor que nos lo iba a impartir la parte teórica de lunes a miércoles ha provocado que tengamos una extensión de la parte de laboratorio de programación concurrente en java. En este laboratorio estamos realizando una práctica tutorizada de simulación de trenes en la que ya hemos hecho la primera parte de conversión en Threads concurrentes de los objetos Tren.

Esta conversión es el primer paso del trabajo de asegurar que las clases compartidas por esos Threads, Tunel y CentroRegulación, sean thread-safe protegiendo su estado y asegurando que se cumplen los invariantes en cuanto a su correcta utilización por parte de los trenes (en la clase Tunel solamente pueden circular trenes en un sentido, pertenecientes al mismo tramo, en un momento dado)

Sigue leyendo laboratorio de programación concurrente: sincronización