Skip to main content

Teaching Operating Systems: Just Enough Abstraction

  • Conference paper
  • First Online:
ICT Education (SACLA 2016)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 642))

Abstract

There are two major approaches to teaching operating systems: conceptual and detailed. I explore the middle ground with an approach designed to equip students with the tools to explore detail later as the need arises, without requiring the time and grasp of detail needed to understand a full OS implementation. To meet those goals, I apply various strategies to different concepts, for example, faking the detail and using techniques from computer architecture simulation. The course aims to give students a better sense of how things work than a conceptual approach without the time required for a full implementation-based course.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Aas, J.: Understanding the Linux 2.6. 8.1 CPU scheduler. Technical report, Silicon Graphics Inc. (2005). https://github.com/bdaehlie/linux-cpu-scheduler-docs/blob/master/linux_cpu_scheduler.pdf

  2. Anderson, C.L., Nguyen, M.: A survey of contemporary instructional operating systems for use in undergraduate courses. J. Comput. Sci. Coll. 21(1), 183–190 (2005). http://dl.acm.org/citation.cfm?id=1088791.1088822

    Google Scholar 

  3. Ben-Ari, M.: Constructivism in computer science education. In: Proceedings 29th SIGCSE Technical Symposium on Computer Science Education, pp. 257–261. SIGCSE 1998. ACM, New York (1998)

    Google Scholar 

  4. Bijker, W.E., Hughes, T.P., Pinch, T., Douglas, D.G.: The Social Construction of Technological Systems: New Directions in the Sociology and History of Technology. MIT Press, Cambridge (2012)

    Google Scholar 

  5. Chen, J.B., Endo, Y., Chan, K., Mazières, D., Dias, A., Seltzer, M., Smith, M.D.: The measured performance of personal computer operating systems. ACM Trans. Comput. Syst. 14(1), 3–40 (1996)

    Article  Google Scholar 

  6. Dall, C., Nieh, J.: Teaching operating systems using code review. In: Proceeding 45th ACM Technical Symposium on Computer Science Education, pp. 549–554. SIGCSE 2014, ACM (2014)

    Google Scholar 

  7. Kim, B.: Social constructivism. Emerg. Perspect. Learn. Teach. Technol. 1(1), 16 (2001)

    Google Scholar 

  8. Laadan, O., Nieh, J., Viennot, N.: Structured Linux kernel projects for teaching operating systems concepts. In: Proceedings of the 42nd ACM Technical Symposium on Computer Science Education, pp. 287–292. SIGCSE 2011 (2011)

    Google Scholar 

  9. Luk, C.K., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi, V.J., Hazelwood, K.: Pin: Building customized program analysis tools with dynamic instrumentation. In: Proceedings 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 190–200. PLDI 2005 (2005)

    Google Scholar 

  10. Machanick, P.: Experience of applying Blooms Taxonomy in three courses. In: Proceedings Southern African Computer Lecturers Association Conference, pp. 135–144 (2000)

    Google Scholar 

  11. Machanick, P.: A social construction approach to computer science education. Comput. Sci. Educ. 17(1), 1–20 (2007)

    Article  Google Scholar 

  12. Machanick, P.: 2OS: more programming from the machine up. Rhodes University, Grahamstown (2016). http://homes.cs.ru.ac.za/philip/Courses/CS3-OS/Cs3ToOS.pdf

  13. McKusick, M.K., Joy, W.N., Leffler, S.J., Fabry, R.S.: A fast file system for UNIX. ACM Trans. Comput. Syst. 2(3), 181–197 (1984)

    Article  Google Scholar 

  14. Nichols, B., Buttlar, D., Farrell, J.: Pthreads programming: A POSIX standard for better multiprocessing. OReilly, Sebastopol (1996)

    Google Scholar 

  15. Nieh, J., Vaill, C.: Experiences teaching operating systems using virtual platforms and Linux. In: Proceedings 36th SIGCSE Technical Symposium on Computer Science Education, pp. 520–524. SIGCSE 2005 (2005)

    Google Scholar 

  16. Pamplona, S., Medinilla, N., Flores, P.: Exploring misconceptions of operating systems in an online course. In: Proceedings 13th Koli Calling International Conference on Computing Education Research, pp. 77–86. Koli Calling 2013 (2013)

    Google Scholar 

  17. Pfaff, B., Romano, A., Back, G.: The Pintos instructional operating system kernel. In: Proceedings 40th ACM Technical Symposium on Computer Science Education, pp. 453–457. SIGCSE 2009 (2009)

    Google Scholar 

  18. Piaget, J.: The Construction of Reality in the Child. Routledge, Milton Park (1954)

    Book  Google Scholar 

  19. Pietrek, M.: Inside the windows scheduler. Dr. Dobbs J. 17(8), 64–71 (1992). http://dl.acm.org/citation.cfm?id=134643.134652

    Google Scholar 

  20. Sandberg, R., Goldberg, D., Kleiman, S., Walsh, D., Lyon, B.: Design and implementation of the Sun network filesystem. In: Proceedings Summer USENIX Conference, pp. 119–130 (1985)

    Google Scholar 

  21. Schmidt, A., Polze, A., Probert, D.: Teaching operating systems: Windows kernel projects. In: Proceedings of the 41st ACM Technical Symposium on Computer Science Education, pp. 490–494. SIGCSE 2010 (2010)

    Google Scholar 

  22. Silberschatz, A., Galvin, P.B., Gagne, G.: Operating System Concepts, 9th edn. Wiley, Harlow (2012)

    MATH  Google Scholar 

  23. Tanenbaum, A.: Modern Operating Systems, 4th edn. Pearson, Harlow (2014)

    MATH  Google Scholar 

  24. Uhlig, R.A., Mudge, T.N.: Trace-driven memory simulation: A survey. ACM Comput. Surv. 29(2), 128–170 (1997)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Philip Machanick .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing AG

About this paper

Cite this paper

Machanick, P. (2016). Teaching Operating Systems: Just Enough Abstraction. In: Gruner, S. (eds) ICT Education. SACLA 2016. Communications in Computer and Information Science, vol 642. Springer, Cham. https://doi.org/10.1007/978-3-319-47680-3_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-47680-3_10

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-47679-7

  • Online ISBN: 978-3-319-47680-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics