skip to main content
research-article

Teaching semaphores using... semaphores

Published:01 January 2015Publication History
Skip Abstract Section

Abstract

The word "semaphore" describes both a structure used in computing to manage concurrency and a signal used by trains and naval vessels to transmit information and prevent collisions. In this paper, we present a series of activities which help students build intuition about concurrency by managing "railway semaphores" using an open source train simulation game.

The increasing importance of multi-core computers and computing clusters makes concurrency an especially important topic in both operating systems and systems programming courses. Students often struggle to understand semaphores and concurrency problems. One reason for this is that these subjects are often presented as abstract mathematical objects which are hard to visualize. Using simulation to make these ideas more concrete can improve understanding and increase engagement in the course.

References

  1. Akimoto, N., de Cheng, J., An educational game for teaching and learning concurrency, Proceedings of the 1st international conference on knowledge economy and development of science and technology, 34--39, 2003.Google ScholarGoogle Scholar
  2. Bedy, M., Carr, S., Huang, X., Shene, C., A visualization system for multithreaded programming, SIGCSE Bulletin, 32, (1), 1--5, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bi, Y., Beidler, J., A visual tool for teaching multithreading in Java, Journal of Computing Sciences in Colleges, 22, (6), 156--163, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Burns, A., Davies, G., Pascal-FC: A language for teaching concurrent programming, SIGPLAN Notices, 23, (1), 58--66, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Bynum, W. L., Camp. T., After you, Alfonse: a mutual exclusion toolkit, SIGCSE Bulletin, 28, (1), 170--174, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Christopher, W. A., Procter, S. J., Anderson, T. E., The Nachos instructional operating system, Proceedings of the USENIX Winter Conference, 481--490, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Donaldson, J. L., Teaching operating systems in a virtual machine environment, SIGCSE Bulletin, 19, (1), 206--211, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Higginbotham, C. W., Morelli, R., A system for teaching concurrent programming, Proceedings of the Twenty-Second SIGCSE Technical Symposium on Computer Science Education, 309--316, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Holland, D. A., Lim, A. T., Seltzer, M. I., A new instructional operating system, Proceedings of the 33rd SIGCSE technical symposium on computer science education, 111--115, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Hoskey, A., Simple OS: A component-based operating system simulator in the spirit of the little man, Journal of Computing Sciences in Colleges, 117--124, 2013 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Kolikant, Y. B., Ben-Ari, M., Pollack, S., The anthropology semaphores, Proceedings of the 5th annual SIGCSE/SIGCUE ITiCSE conference on innovation and technology in computer science education, 21--24, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. OpenTTD developers, OpenTTD Wiki, http://wiki.openttd.org, retrieved April 2014.Google ScholarGoogle Scholar
  13. OpenTTD developers, OpenTTD Wiki, http://wiki.openttd.org/signals/, retrieved April 2014.Google ScholarGoogle Scholar
  14. Pfaff, B., Romano, A., Back, G., The pintos instructional operating system kernel, Proceedings of the 40th ACM technical symposium on computer science education, 453--457, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Reese, D., Using multiplayer games to teach interprocess communication mechanisms, SIGCSE Bulletin, 32, (4), 45--47, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in

Full Access

  • Published in

    cover image Journal of Computing Sciences in Colleges
    Journal of Computing Sciences in Colleges  Volume 30, Issue 3
    January 2015
    131 pages
    ISSN:1937-4771
    EISSN:1937-4763
    Issue’s Table of Contents

    Publisher

    Consortium for Computing Sciences in Colleges

    Evansville, IN, United States

    Publication History

    • Published: 1 January 2015
    Published in jcsc Volume 30, Issue 3

    Qualifiers

    • research-article

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader