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.