Teaching an operating systems course
Mensurae as a teaching aid.
Last Significant Update: |
2024-06-27 |
Status: |
Draft |
Comments to: |
Ed teaches an operating systems course at a local college.
Ed finds it useful to use traces of system behavior collected from real-world applications to illustrate the OS concepts that he is teaching.
Some recent examples from Ed’s course:
-
Ed and his students recently looked at traces of page faults incurred by the Firefox web browser on a small device. Ed’s students commented on the fact that page fault behavior looked ‘bursty’. This lead to a discussion on the behavior of garbage collectors on virtual-memory systems.
-
Ed collected and showed traces of scheduling behavior across all the CPUs in the system for a heavily multi-threaded application.
Ed’s students computed the mean time each thread spent actually running on a CPU and estimated the cycles ‘wasted’ due to context switches. Ed and his students discussed when an application would be considered to be “excessively threaded”.
-
Ed overlaid the traces of scheduling behavior with traces containing power management information. Ed’s students then analyzed the impact of power management on latency sensitive tasks in the workload.
อรฺยภต (Aryabhata), one of Ed’s students, built a mathematical model describing how thread scheduling was expected to behave, and checked the actual behavior of the scheduler against his model. Ed thought that was cool.
Ed is very happy with the insights that the use of Mensurae's tools offers his students.
Design Considerations
Portability
Mensurae needs to be available on the inexpensive and readily available hardware hardware typically used in educational contexts.
API-centric Project Structure
Mensurae needs to offer well-documented (and well-tested) APIs for building visualization tools. This is necessary for Ed and his fellow educators to implement the custom tools they need for their teaching.
Data Formats
Mensurae’s data formats should be expressive enough to describe a wide variety of traces.