Skip to Main content Skip to Navigation
Conference papers

LEARNING PROCESS SYNCHRONIZATION INTERACTIVELY

Abstract : Teaching Computer Systems Architecture at Supélec involves both lectures and projects. We have defined and implemented a pedagogical simulator intented to teach different synchronization problems. Its main aim is to help students better understand the problems involved in variable sharing between two processes, and allow them to solve the problems, using semaphores. The simulator offers an instruction library based on a pedagogical processor used in the Computer Systems Architecture course. Students will drag-and-drop the instructions into the two instruction lists used for the processes. The overall program should fulfil the global requirements, and produce the right value for the shared variable, regardless of the execution order of the instructions. Students use our code analysis software to check the correctness of their design. If the algorithm detects a failure in the shared variable use, it builds an execution flow that exemplifies the failure. The students can follow the flow, step-by-step, by browsing through a series of on-the-fly computed panels, each one displaying the critical values of the processor registers as well as process description record fields and the current instruction field or a shared variable. The explanation panel includes arrows that point to every information transfer and a short text that describes the current overall status. The analysis and explanation builder software has been designed according to a very simple instruction set of our pedagogical computer. Its principal feature is to reduce the complexity of the student code diagnosis algorithm. The simulator is currently accessible online to our 400 students who have given us a very positive feedback on it. We have now been asked to extend its application to other problems. The possibility of such an extension has been included in the simulator pre-requirements, first by offering an open instruction library, second by designing an analysis tool able to work either with various sets of instruction sequences, or with more than two processes, multiple semaphores and/or shared variables. The most innovative aspect of our pedagogical experience is the ability to explain very precisely the faulty behavior of the code to our students while allowing them to build any sequence of instructions without the burden of conforming to a strict programming language syntax. This allows them to focus on the problem they have to solve, and probably explains why they like it so much. Furthermore, our simulator is expandable to other typical synchronization problems or, potentially, to other instruction sets.
Document type :
Conference papers
Complete list of metadata

Cited literature [16 references]  Display  Hide  Download

https://hal.archives-ouvertes.fr/hal-01402304
Contributor : Henri Delebecque Connect in order to contact the contributor
Submitted on : Thursday, November 24, 2016 - 3:02:49 PM
Last modification on : Monday, December 14, 2020 - 12:29:06 PM
Long-term archiving on: : Tuesday, March 21, 2017 - 1:17:36 AM

File

v1.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : hal-01402304, version 1

Collections

Citation

Henri Delebecque. LEARNING PROCESS SYNCHRONIZATION INTERACTIVELY. EDULEARN 2010, 2010, Barcelone, Spain. ⟨hal-01402304⟩

Share

Metrics

Record views

143

Files downloads

260