Designing Windows Class Assignments and Hands-on Projects at POSTECH
This paper presents the work of Professor Seung-won Hwang and her colleagues at the Pohang University of Science and Technology (POSTECH) in South Korea in designing class assignments using the Windows® Operating System Curriculum Resource Kit (CRK)i teaching materials and the Windows Research Kernel (WRK)ii lab environment from Microsoft. At the end of the first semester using the new assignments, Professor Hwang conducted a satisfaction survey to get student feedback on the usefulness and relevance of the new Windows materials to their academic and business careers. Student feedback has been positive, especially for the hands-on labs. The majority also felt that working with Windows projects instead of UNIX projects would be more useful for their future careers.
About the School
POSTECH admits approximately 300 undergraduate students each year and has repeatedly been ranked as the top specialized science and technology school not only in Korea but in all of Asia. The 30 undergraduates in the Department of Computer Science and Engineering receive a broad theoretical and practical background in computer science and engineering that gives a strong foundation for graduate study as well as an industrial career. Scientific and engineering aspects of computers are equally emphasized and covered in terms of computer theory, hardware, and software. Topics include computer programming, mathematics and statistics, data structures and algorithms, automata and formal languages, computer architecture, and system software, followed by courses in application areas.
With a low 6:1 ratio of students to faculty, POSTECH favors a mentor-apprentice relationship between faculty and students, and professors emphasize creative approaches to learning so that students can participate in research projects and industrial training programs. This helps students learn firsthand how theories and their applications actually affect the workplace.
About the Class
Professor Seung-won Hwang, of the Department of Computer Science and Engineering at POSTECH, used the CRK and WRK for the first time to design coursework for a class of 48 undergraduate (junior and senior) and 5 graduate students. The Operating Systems class is structured to provide three hours of classroom teaching and 1.5 hours of lab internals per week; the coursework is a mix of homework assignments and hands-on projects using a live Windows kernel. Prior to this class, operating system teaching had been based on UNIX textbooks and the Nachos and Pintos simulators.
Assignments were mainly simple questions on operating system concepts (adapted from the book Microsoft Windows Internalsiii) and simple coding assignments using the Windows application programming interface (API). The CRK slides and homework suggestions and Microsoft Windows Internals proved very useful in helping students with assignments. In particular, a 1.5-hour-per-week lab session relating the Windows implementation to textbook operating system concepts helped familiarize students with the Windows APIs.
Projects were designed to get students familiar with kernel internals. Projects were run live on the WRK, with the WRK running on a virtual machine. Project teams were required to complete two hands-on projects: a fair-scheduling project plus a hands-on project of their choosing.
Fair-scheduling topic (60%): To get students started, two lab sessions demonstrated the installation of the WRK and briefed students on how thread scheduling is implemented in the kernel. Students were provided with test programs to assess their implementations of fair scheduling. The CRK and the Microsoft Windows Internals book proved helpful when designing Windows API assignments in the course, providing sample project topics and guidance materials. Faculty members will continue to use these resources when designing their kernel projects in the future.
Find-it-yourself topic (40%): After receiving staff guidance on the fair-scheduling topic, students were ready to implement their own ideas. Student presentation sessions helped encourage the class participants to suggest creative extensions to the kernel. Students were required to demonstrate their implementations, using either demo or test programs.
Professor Seung-won Hwang found that the WRK can be readily extended to include multiple internal project topics. This table shows examples of student project topics that were actually implemented.
Identify a process-hoarding CPU and lower its priority.
Detect deadlocks from WaitforSingleObj or WaitforMultipleObjs calls and avoid deadlocks.
In the Windows operating system, a process can access the logical memory of another process. Allow a process to disable such access from different processes.
Design a page-replacement algorithm that considers age, last access, and dirty bit all together.
Detect keyboard events and log them in a file. (This is the area students found most difficult, as a large part of the File System source code is not part of the WRK.)
Randomize stack addresses generated in Windows, to make stack overflow attacks more difficult.
Because of the complexity of the operating system and the size of the live source code base, students initially needed the most help in understanding operating system concepts, where in the code base to implement their proposed changes, and how to test programs.
Student Satisfaction Survey
An informal survey was run after finals to find out whether students found their API assignments and kernel internals projects useful for (a) understanding operating system concepts, and (b) their future careers.
Understanding operating system concepts
Helpfulness of kernel internals projects in understanding OS concepts.
More than 80 percent of students were positive that Windows API assignments and kernel internals projects were helpful in understanding operating system concepts. Students found that kernel internals projects were slightly more interesting, challenging, and relevant for the operating system course. This shows the value of more CRK guidance on kernel internals projects.
Students were also asked if they preferred an operating system course with Windows projects over one with UNIX projects. The majority preferred Windows, commenting that it was a rare opportunity to see the code, and that it was fun to work with an operating system that is used every day. They also liked the friendly WRK work environment with debug tools and virtual machine provided, and they felt that working with Windows was more useful for their future careers.
Preference for Windows projects over Unix.
However, they found the lack of some resources, such as the file system, restricting, and reported that the Windows kernel code seemed large and complicated. Since existing course textbooks were oriented to UNIX, they felt that learning Windows poses additional overhead and said it was harder to understand the big picture, particularly since faculty and instructors had limited experience with Windows kernel internals.
Relevance of Windows kernel internals projects to a graduate career.
Students were asked if they thought their Windows API assignments and kernel internals project experience would be helpful in their future careers.
For Windows API assignments, students expecting to go into the software industry were 100 percent positive in stating that their experience was helpful. Eighty percent of the students going on to academia or to jobs outside the software industry agreed.
For kernel internals projects, the majority of students going into the software industry expected their kernel internals project experience to be helpful. Those going to graduate school or into another industry expected their experience to be somewhat helpful.
In fall 2006, POSTECH offered an undergraduate-level introductory operating system course using Windows-based teaching and lab materials. Feedback indicated that students were positive about their learning experiences, with students reporting that they learned more from hands-on projects modifying the Windows kernel than from class assignments using the Windows API. Students benefitted most from faculty-provided test programs, guidance on where in the code base to focus their efforts, and staff suggestions for multiple project topics.
i Windows Operating Systems Internals Curriculum Resource Kit (CRK)
The CRK is a collection of instructional material that follows the ACM/IEEE-CS Operating System Body of Knowledge to illustrate operating systems concepts using Windows XP as a case study. The CRK is based on the book Microsoft Windows Internals and adapted for university use by the book’s authors, Mark Russinovich and David Solomon, and Professor Andreas Polze of the University of Potsdam, Germany.
The experiments, quizzes, and assignments integrated with the course materials were tested over the five years in Professor Polze’s operating systems architecture class, as described in a paper presented at the SIGCSE 2006 Technical Symposium on Computer Science Education. Universities can download the CRK core units from the MSDN® Academic Alliance Developer Center3 and use them to supplement lectures on operating systems. (https://www.facultyresourcecenter.com/curriculum/pfv.aspx?ID=6191).
ii Windows Research Kernel (WRK)
The WRK contains the bulk of the source code for the core Windows (NTOS) kernel (compatible with Windows Server 2003 Service Pack 1 [SP1] and Windows XP for x86-based and x64-based computers). It includes the core sources for object management, processes, threads, virtual memory, and more. Other modules are provided as binary objects that can be linked to produce a fully functional NTOS executable file and booted using Windows Server 2003 SP1 or Windows XP Professional x64 Edition. The current WRK release (version 1.2) is a kit with a build environment, Microsoft Virtual PC 2007, and documentation.
iii Microsoft Windows Internals
Russinovich, M. E. and Solomon, D. A. Microsoft Windows Internals. 4th Edition. Microsoft Press, 2005.
This case study is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.
Document published June 2009