Operating Systems

Operating doggedly...

How To Read in Operating Systems

You've probably seen Keshav's How To Read a Paper PDF in other courses here in the CS department at Berea. It is good to revisit this, but I want to step away from the details of the process and hit a few meta points that I think are critical in the context of this semester.

Share and Discuss

We learn better when we engage with others. When you come to class, don't start by whipping out Facebook and checking in on things that, put simply, probably won't matter in three days. (They probably don't matter now.) Instead, come into class, and get out your notes. Review what you read/watched/did, and bring those questions that you had back to the front of your mind.

As classmates come in, discuss those questions with them. Identify possible exam questions that came from the work that you did. In short, discuss the material in a critical and productive way together, and see if you're able to help clarify things. (Or, just as well, see if you can identify more points of confusion that we can discuss as a class.)

Read for Concepts

You're reading for concepts, not details. And, in truth, there aren't many in this course.

  • Resource allocation (memory, disk)
  • Resource sharing and coordination (scheduling)
  • Resource protection (memory)
  • Performance (responsiveness, throughout)
  • Resource storage (disk, hierarchies)
  • Connectivity and communication (networking)

Now, I want to be clear about something: any one of these are a graduate-level course unto themselves. You could spend an entire semester reading papers and exploring algorithms for parallel processing and scheduling in single- and multi-core environments. In fact, you could spend a year, or more likely, a whole PhD, and you'd still only know part of what there is to know about the topic. (See Matt Might's Illustrated Guide to a PhD.)

So, as you're reading, and taking notes, make sure you're mastering the concepts. When we study memory allocation, you should know a general memory allocation algorithm or two---that's the lasting knowledge.

Identify What you Do Not Know

When you're reading, you're welcome to take notes on content. If that helps you remember things, then good, do so. (I remember things better by taking notes... some people do, some people don't.)

However, if you read, and take notes, and stop there, you're not doing yourself a service. In fact, you are not learning. You're memorizing content, and my guess is, you'll forget most of what you read by the end of the term, if not within 6 months of graduation.

When you're taking notes, engage actively. That means:

  1. Structure your notes.
  2. Draw connections to other topics within the course, as well as in other courses.
  3. Write down questions, not just facts. Investigate those things on your own, in an attempt to clarify any confusion or lack of understanding you might have.
  4. Ask questions. If you can't clarify your questions on your own, bring them in for discussion.
  5. Identify possible exam questions early, share them with your classmates, and challenge yourself and each-other. If you're thinking in terms of "how would I test myself on this material," then you're also thinking in terms of "how would I know that I have learned and understand these ideas."

Put simply: identify what you do not know, and learn it.



This website is provided under a CC BY-SA license by the The Berea CS Department.
Fall 2013 offering of taught by Matt Jadud