|
|
|
|
|
by mywittyname
2190 days ago
|
|
An OS course taught in Python is really just a data structures and algorithms course. When you ignore the hardware aspect, topics like scheduling and virtual memory management are about selecting an algorithm with the appropriate trade-offs. My OS course was hacking on x86 Linux in C. The C wasn't really the difficult part. Honestly, neither was the assembly, as most of was boilerplate: here's how you configure to registers for a system call, here's how you trigger the interrupt for the system call, here's how you get the return codes, etc. I don't think the class would have been nearly as valuable if C were replaced with Python. At that point, so many of the interesting details would be hand-waved away that it wouldn't really be all that different from the other programming classes I took. |
|
As to the inciting question, there is a Stonybrook OS course [0] designed around a java simulator that students implement modules for. Springer published M Kifer's book [1] about this OSP2 system. (The binaries are accessible via the link 'Students: Software Download'.) I'm of the impression that the course involves examining the trade-offs of each module. So the thread section spawns a bunch of request events per process for a module to deal with, whether with round robin or priority queues or whatever.
[0] https://www3.cs.stonybrook.edu/~kifer/Courses/cse306/
[1] https://www.springer.com/gp/book/9781846288425