OS Exam Study Guide


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  COMPUTER SYSTEM OVERVIEW

1.1 Basic Elements

1.2 Processor Registers

User-Visible Registers -- Every computer has registers. Be able to name the registers in a computer you are familiar with.
Control and Status Registers -- What's the difference between "user-visible" registers and control/status registers?
1.3 Instruction Execution
Instruction Fetch and Execute  -- Why is this a concern for OS design?
I/O Function  -- How is the OS involved in I/O?
1.4 Interrupts
Interrupts and the Instruction Cycle  -- What are interrupts, and how do they impact OS design?
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?
1.5 The Memory Hierarchy
What does this mean? What does it imply for OS design?
1.6 Cache Memory
Motivation -- Explain
Cache Principles -- How does it work? How does that help?
Cache Design
1.7 I/O Communication Techniques
Interrupt-Driven I/O  -- What does this mean? How is the OS involved?
Direct Memory Access  -- What does this mean? How is the OS involved?
Appendix 1A Performance Characteristics of Two-Level Memories
Be able to summarize the implications of cache on performance
Appendix 1B Procedure Control
Be able to explain the procedure call protocol in a computer you are familiar with. Compare and contrast that with interrupts.

2  OPERATING SYSTEM OVERVIEW

2.1 Operating-System Objectives, and Functious
The Operating System as a User/Computer Interface -- What does this mean? Give a concrete example.
The OperatingSystem as a Resource Manager -- What resources, and how does the OS manage them?
Ease of Evolution of an Operating System
2.2 The Evolution of Operating Systems -- Can you describe each of these?
Serial Processing
Simple Batch Systems
Multiprogrammed Batch Systems
Time-Sharing Systems
2.3 Major Achievements -- This chapter gives only a brief introduction, but can you describe each of these and explain how they impact OS design?
Processes
Memory Management
Information Protection and Security
Scheduling and Resource Management
System Structure
2.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.

2.5 Windows 2000 Overview

History
Single-User Multitasking
Architecture
Client/Server Model
Threads and SMP
Windows 2000 Objects
2.6 Traditional UNIX Systems
History
Description
2.7 Modern UNIX Systems
System V Release 4 (SVR4)
Solaris 2.x
4.4BSD
Linux

3  PROCESS DESCRIPTION AND CONTROL

3.1 Process States -- What are the states in these models, and what triggers state changes?
A Two-State Process Model
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?
3.2 Process Description -- Describe the process control structures for an OS you are familiar with :-)
Operating System Control Structures
Process Control Structures
3.3 Process Control
Modes of Execution -- What does this mean? Relate it to an OS your are familiar with.
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
3.4 Unix SVR4 Process Management -- How does SVR4 differ from where we are going with SandBox?
Process States
Process Description
Process Control
3.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  THREADS SMP, AND MICROKERNELS

4.1 Processes and Threads -- What do threads do for programming? What pitfalls do they bring to the table?

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

4.7 Summary
 

5  CONCURRENCY: MUTUAL EXCLUSION AND SYNCHRONIZATION

5.1 Principles of Concurrency -- Compare and contrast the difrferent ways of making concurrency work.

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  CONCURRENCY, DEADLOCK AND STARVATION

6.1 Principles of Deadlock -- What is deadlock, and how can it be detected and/or prevented?

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
 

7  MEMORY MANAGEMENT

7.1 Memory-Management Requirements -- Be able to describe these and how and to what extent you expect to deal with them in your own OS.
Relocation
Protection
Sharing
Logical Organization
Physical Organization
7.2 Memory Partitioning -- Be able to describe these and what you intend to choose for your own system. Why?
Fixed Partitioning
Dynamic Partitioning
Buddy System
Relocation
7.3 Paging -- Explain how this works. How is it different from segmentation?

7.4 Segmentation

7.5 Summary, Key Terms, and Review Questions

Key Terms
Review Questions
Appendix 7A Loading and Linking -- How are these operations relevant to OS design? What parts of them are necessary in your own OS?
Loading
Linking

8  VIRTUAL MEMORY

8.1 Hardware and Control Structures
Locality and Virtual Memory -- What is the impact of locality on VM?
Paging
Segmentation
Combined Paging and Segmentation
Protection and Sharing -- How does VM help these concerns?
8.2 Operating System Software -- Be familiar with these different policies, and how they impact memory management and throughput.
Fetch Policy
Placement Policy
Replacement Policy
Resident Set Management
Cleaning Policy
Load Control
8.3 UNIX and Solaris Memory Management -- Be able to discuss intelligently the major differences between these systems.
Paging System
Kernel Memory Allocator
8.4 Linux Memory Management
Linux Virtual Memory
Kernel Memory Allocation
8.5 Windows 2000 Memory Management
W2K Virtual Address Map
W2K Paging
8.6 Summary, Key Terms, and Review Questions
Key Terms
Review Questions

9  UNIPROCESSOR SCHEDULING

9.1 Types of Processor Scheduling  -- My thinking is that this over-analyzes the problem, probably because of my limited experience doing time-sharing systems. Except for the rare mainframe, most computers are running in single-user mode: there may be time-critical operations like I/O and front process, and the rest just takes up whatever processor cycles are left. You should at least be familiar with the terms in this chapter.
Long-Term Scheduling
Medium-Term Scheduling
Short-Term Scheduling
9.2 Scheduling Algorithms
Short-Term Scheduling Criteria -- Know these
The Use of Priorities -- Why do we care?
Alternative Scheduling Policies -- Be able to name them
Performance Comparison -- Skip the math
Fair-Share Scheduling
9.3 Traditional UNIX Scheduling

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

10  MULTIPROCESSOR AND REAL-TIME SCHEDULING

10.1 Multiprocessor Scheduling -- Most of this chapter is pretty esoteric. Understand the concepts.
Granularity
Design Issues
Process Scheduling
Thread Scheduling
10.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.
Characteristics of Real-Time Operating Systems
Real-Time Scheduling
Deadline Scheduling
Rate Monotonic Scheduling
10.3 Linux Scheduling  --

10.4 UNIX SVR4 Scheduling

10.5 Windows 2000 Scheduling

Process and Thread Priorities
Multiprocessor Scheduling
10.6 Summary, Key Terms, and Review Questions

11  I/O MANAGEMENT AND DISK SCHEDULING

11.1 I/O Devices

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  FILE MANAGEMENT

12.1 Overview

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

13  DISTRIBUTED PROCESSING, CLIENT/SERVER, AND CLUSTERS

-- We did not spend any time in this chapter. There's a reason for that.

14  DISTRIBUTED PROCESS MANAGEMENT

-- We did not spend any time in this chapter.

15  SECURITY

15.1 Security Threats
Types of Threats -- What are they? How do we defend against them?
Computer System Assets -- What, and how do they relate to the threats?
15.2 Protection
Protection of Memory -- Be able to discuss this intelligently in the context of SandBox
User-Oriented Access Control -- What does this mean?
Data-Oriented Access Control -- How do we do this?
15.3 Intruders
Intrusion Techniques -- What are they, and how do we defend against them?
Password Protection
Password Selection Strategies -- What are the choices, advantages, disadvantages?
Intrusion Detection -- How?
15.4 Malicious Software
Malicious Programs -- Be able to list and describe them, and what they do to the system/users
The Nature of Viruses -- Be able to give a technically accurate definition of a virus
Types of Viruses
Macro Viruses
Antivirus Approaches -- How do they work?
E-mail Viruses
15.5 Trusted Systems
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 Scheme
Access Token
Security Descriptors
15.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.