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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
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
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
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)
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)
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)
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)
Kim, B.: Social constructivism. Emerg. Perspect. Learn. Teach. Technol. 1(1), 16 (2001)
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)
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)
Machanick, P.: Experience of applying Blooms Taxonomy in three courses. In: Proceedings Southern African Computer Lecturers Association Conference, pp. 135–144 (2000)
Machanick, P.: A social construction approach to computer science education. Comput. Sci. Educ. 17(1), 1–20 (2007)
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
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)
Nichols, B., Buttlar, D., Farrell, J.: Pthreads programming: A POSIX standard for better multiprocessing. OReilly, Sebastopol (1996)
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)
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)
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)
Piaget, J.: The Construction of Reality in the Child. Routledge, Milton Park (1954)
Pietrek, M.: Inside the windows scheduler. Dr. Dobbs J. 17(8), 64–71 (1992). http://dl.acm.org/citation.cfm?id=134643.134652
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)
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)
Silberschatz, A., Galvin, P.B., Gagne, G.: Operating System Concepts, 9th edn. Wiley, Harlow (2012)
Tanenbaum, A.: Modern Operating Systems, 4th edn. Pearson, Harlow (2014)
Uhlig, R.A., Mudge, T.N.: Trace-driven memory simulation: A survey. ACM Comput. Surv. 29(2), 128–170 (1997)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)