Prerequisites for CS 526

Many students who do not have a traditional computer science background take CS 526. While this is possible, it is difficult if you do not have the prerequisite knowledge. Some suggestions on what you need to know are given here; please look this over and determine what you do and don't know, and think about how you will handle what you don't, before coming to the instructor to ask for permission to register for the course.

The official prerequisite for CS 526 is CS 503 or equivalent. Some knowledge of operating systems, particularly memory management, system calls, process switching, and concepts of kernel vs. user space, is necessary. However, it is feasible to take the course without having had CS 503, provided you have some understanding of the above topics - many undergraduate operating systems courses, or even a reasonable level of background and self-study, provide the necessary knowledge. One self-study option is Operating System Concepts by Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne. You should read Chapters 1-3, 9, and sections 10.3, 11.6, and 13.4. Skim 4, 7, and 11. Reading Chapters 18 and 19 will give you a head start on the course, and make it easier to follow examples in class.

What is not listed (except by being derived from the prerequisite chain for CS 503) is the level of computer science theory required. An undergraduate program in computer science should cover everything, however for those without an undergraduate degree in computer science you should make sure you have the requisite knowledge. The following topics/weeks from courses in the Purdue undergraduate program describe the topics you should understand:

If you find appropriate texts or pointers to good background for self-study of this material, please let me know. I will vette the suggested material (perhaps saving you from studying things you don't need), and update this web page for the benefit of other students.

Valid XHTML 1.1!