Computer Hardware and Operating Systems
“Virtual memory is one of the greatest ideas in the history of computer science.”
Text: Computer Systems: A Programmer’s Perspective by Randal Bryant, David O’Hallaron 3rd Edition
Prof: Dr. Donald Acton
Dr. Acton is a nice person and a passionate lecturer. His assignments are interesting and he adds a historical angle to the material. Unfortunately, certain administrative mishaps greatly hindered the delivery of the course. If the readings and online quizzes for each week were clearly outlined, assignments were screened by TA’s for errors and more TA’s staffed with monitoring piazza the course would have been a lot more enjoyable.
Difficulty
After returning from a systems heavy co-op, I found the material much less intimidating then CPSC 213. The assignments were lengthy but very doable and had a high average. The quizzes were more challenging, but if you practiced the exercises from the book and practice quizzes you should be fine. Readings are really important to get the most out of this course, especially as the slides are not amenable to self-study.
Key Concepts
Pipelining
Caching
Virtual Memory
Locality
File Systems
Exceptions
Hard Concepts
Calculating cache miss rate for C code: Need to clearly visualize the cache and how the data structure fits into it.
Assembly implementation: Need to remember how the stack and registers can be used to pass parameters and store stack pointers and return addresses.
Conclusion
Somewhat interesting course. I found it a lot more detailed and less mind-blowing then CPSC213.