Basically, if the you know the textbook backwards and forwards and all your homework assignments and project to date run perfectly, you should have no problem with the exams. Failing that, here are some areas you might concentrate on (taken from the chapter header pages of Stallings, with annotations):
1.2 Processor Registers
User-Visible Registers -- Every computer has registers. Be able to name the registers in a computer you are familiar with.1.3 Instruction Execution
Control and Status Registers -- What's the difference between "user-visible" registers and control/status registers?
Instruction Fetch and Execute -- Why is this a concern for OS design?1.4 Interrupts
I/O Function -- How is the OS involved in I/O?
Interrupts and the Instruction Cycle -- What are interrupts, and how do they impact OS design?1.5 The Memory Hierarchy
Interrupt Processing -- What happens when the computer is interrupted?
Multiple Interrupts -- How does a computer deal with multiple simultaneous interrupts? What about SandBox?
Multiprogramming -- What is the relevance of interrupts to multiprogramming?
What does this mean? What does it imply for OS design?1.6 Cache Memory
Motivation -- Explain1.7 I/O Communication Techniques
Cache Principles -- How does it work? How does that help?
Interrupt-Driven I/O -- What does this mean? How is the OS involved?Appendix 1A Performance Characteristics of Two-Level Memories
Direct Memory Access -- What does this mean? How is the OS involved?
Be able to summarize the implications of cache on performanceAppendix 1B Procedure Control
Be able to explain the procedure call protocol in a computer you are familiar with. Compare and contrast that with interrupts.
The Operating System as a User/Computer Interface -- What does this mean? Give a concrete example.2.2 The Evolution of Operating Systems -- Can you describe each of these?
The OperatingSystem as a Resource Manager -- What resources, and how does the OS manage them?
Ease of Evolution of an Operating System
Serial Processing2.3 Major Achievements -- This chapter gives only a brief introduction, but can you describe each of these and explain how they impact OS design?
Simple Batch Systems
Multiprogrammed Batch Systems
Processes2.4 Characteristics of Modern Operating Systems -- I wouldn't ask you to memorize the whole chapter, but you should at least be able to tell me what the significant differences are between these major implementations.
Information Protection and Security
Scheduling and Resource Management
2.5 Windows 2000 Overview
History2.6 Traditional UNIX Systems
Threads and SMP
Windows 2000 Objects
History2.7 Modern UNIX Systems
System V Release 4 (SVR4)
A Two-State Process Model3.2 Process Description -- Describe the process control structures for an OS you are familiar with :-)
The Creation and Termination of Processes -- Do you understand processes in SandBox well enough to relate them to the description in the book?
A Five-State Model
Suspended Processes -- What happens? Why?
Operating System Control Structures3.3 Process Control
Process Control Structures
Modes of Execution -- What does this mean? Relate it to an OS your are familiar with.3.4 Unix SVR4 Process Management -- How does SVR4 differ from where we are going with SandBox?
Process Creation -- What needs to happen? Give a concrete example.
Process Switching -- What needs to happen? Give a concrete example.
Execution of the Operating System -- Explain the options, and relate it to your own plans for SandBox
Process States3.5 Summary, Key Terms, and Review Questions
Key Terms -- You should know these key terms from each chapter, so if I use them in the test, you won't need to bluff...
Review Questions -- A good way to self-test, but try also to relate the book material to the project material.
4.2 Symmetric Multiprocessing -- What additional problems come from SMP?
4.3 Microkernels -- Distinguish Microkernels from the alternatives; why is one or the other better (if so)?
4.4 Windows 2000 Thread and SMP Management
You should be able to discuss intelligently the major differences between these systems.4.5 Solaris Thread and SMP Management
4.6 Linux Process and Thread Management
5.2 Mutual Exclusion: Software Approaches -- Like what?
5.3 Mutual Exclusion: Hardware Support -- Such as? Where does SandBox fit into this picture?
5.4 Semaphores -- Can you explain how to build semaphores out of monitors?
5.5 Monitors -- What about building monitors from semaphores?
5.6 Message Passing -- How is this better than Monitors or semaphores? Is there a downside?
5.7 Readers/Writers Problem
This extended example illustrates some of the problems. While not necessarily being able to reproduce the whole argument, it might be a good idea to be able to explain what kinds of things might go wrong.5.8 Summary, Key Terms, and Review Questions
6.2 Deadlock Prevention
6.3 Deadlock Avoidance
6.4 Deadlock Detection
6.5 An Integrated Deadlock Strategy
6.6 Dining Philosophers Problem -- Famous Problems with Capitalized Names are good things to be able to explain without referring to your notes.
6.7 UNIX Concurrency Mechanisms -- What are the differences between these systems?
6.8 Solaris Thread Synchronization Primitives
6.9 Windows 2000 Concurrency Mechanisms
6.10 Summary, Key Terms, and Review Questions
Relocation7.2 Memory Partitioning -- Be able to describe these and what you intend to choose for your own system. Why?
Fixed Partitioning7.3 Paging -- Explain how this works. How is it different from segmentation?
7.5 Summary, Key Terms, and Review Questions
Key TermsAppendix 7A Loading and Linking -- How are these operations relevant to OS design? What parts of them are necessary in your own OS?
Locality and Virtual Memory -- What is the impact of locality on VM?8.2 Operating System Software -- Be familiar with these different policies, and how they impact memory management and throughput.
Combined Paging and Segmentation
Protection and Sharing -- How does VM help these concerns?
Fetch Policy8.3 UNIX and Solaris Memory Management -- Be able to discuss intelligently the major differences between these systems.
Resident Set Management
Paging System8.4 Linux Memory Management
Kernel Memory Allocator
Linux Virtual Memory8.5 Windows 2000 Memory Management
Kernel Memory Allocation
W2K Virtual Address Map8.6 Summary, Key Terms, and Review Questions
Long-Term Scheduling9.2 Scheduling Algorithms
Short-Term Scheduling Criteria -- Know these9.3 Traditional UNIX Scheduling
The Use of Priorities -- Why do we care?
Alternative Scheduling Policies -- Be able to name them
Performance Comparison -- Skip the math
9.4 Summary, Key Terms, and Review Questions
Appendix 9A Response Time -- This is a good analysis, relevant for GUI systems
Appendix 9B Queuing Systems -- Skip the math
The Single-Server Queue
The Multiserver Queue
Granularity10.2 Real-Time Scheduling -- I've done a lot of real-time embedded system code. We never did this kind of analysis.
Background -- At least understand why we care about it.10.3 Linux Scheduling --
Characteristics of Real-Time Operating Systems
Rate Monotonic Scheduling
10.4 UNIX SVR4 Scheduling
10.5 Windows 2000 Scheduling
Process and Thread Priorities10.6 Summary, Key Terms, and Review Questions
11.2 Organization of the I/O Function -- You should understand these categories and what distinguishes them
11.3 Operating System Design Issues
11.4 I/O Buffering -- What and why, again
11.5 Disk Scheduling -- Be familiar with the basic concepts
11.6 RAID -- There are two fundamentally different objectives served by RAID; understand them and how the various "levels" serve them
11.7 Disk Cache -- What is it, and how does it work?
11.8 UNIX SVR4 I/O
11.9 Windows 2000 I/O
11.10 Summary, Key Terms, and Review Questions
Appendix 11A Disk Storage Devices -- Know the terms, and how these devices differ.
12.2 File Organization and Access -- Understand the concepts
12.3 File Directories -- What goes in them?
12.4 File Sharing -- Degrees of sharing, and how implemented
12.5 Record Blocking -- What is this about? Why do we care?
12.6 Secondary Storage Management -- Understand the alternatives and how they differ; why would you choose one over the others?
12.7 UNIX File Management
12.8 Windows 2000 File System -- Be able to explain the differences between FAT and NTFS
12.9 Summary, Key Terms, and Review Questions
Types of Threats -- What are they? How do we defend against them?15.2 Protection
Computer System Assets -- What, and how do they relate to the threats?
Protection of Memory -- Be able to discuss this intelligently in the context of SandBox15.3 Intruders
User-Oriented Access Control -- What does this mean?
Data-Oriented Access Control -- How do we do this?
Intrusion Techniques -- What are they, and how do we defend against them?15.4 Malicious Software
Password Selection Strategies -- What are the choices, advantages, disadvantages?
Intrusion Detection -- How?
Malicious Programs -- Be able to list and describe them, and what they do to the system/users15.5 Trusted Systems
The Nature of Viruses -- Be able to give a technically accurate definition of a virus
Types of Viruses
Antivirus Approaches -- How do they work?
Trojan Horse Defense -- This is only one kind of protection; the author does not delve into its problems.15.6 Windows 2000 Security
Access Control Scheme15.7 Summary, Key Terms, and Review Questions
Appendix 15A Encryption -- This is a too-brief
description of an important topic. RSA is particularly important, as it
has longer-term viability than TDES or AES.