(Last Revision: 12/12/98)

		CS 3750 Study Questions for All Chapters
                 in Silberschatz & Galvin, 5th Edition


To prepare for tests, study the homework questions.  That
should be enough.  Below are additional questions that can help
you to focus on many of the issues I find important.  Keep in
mind that this list does NOT cover EVERYTHING I consider
important.

=================================================================
Chapter 01 -- Introduction
=================================================================
What actions does an operating system perform?

What services does an operating system provide?

What forces have driven the development of operating systems?

List several major milestones in the development of operating
systems.

Discuss the operation of an old-fashioned batch system.

Explain control cards.

Define "multi-processing" and "multi-programming", being
careful to explain the difference between them.

Explain distributed systems.

=================================================================
Chapter 02 -- Computer System Structures
=================================================================
Discuss the basic architectural components of a modern
computing system, such as cache, registers, ALU, CPU, system
bus, primary memory, device controllers, and hard disks.  How
are these elements typically structured and organized.  How do
they interoperate?

Explain interrupts and how the functioning of a modern
computing system depends on interrupts.

Explain DMA.

Explain privileged mode and privileged instructions. 

Discuss the way that the existence of two operating modes
facilitates the maintenance of correct operation in a
multiprogramming operating system.  Be sure to include a
specific example to illustrate each important point you make.

Discuss some important operating systems capabilities and the
hardware support required to implement them.

Explain system calls.

=================================================================
Chapter 03 -- Operating System Structures
=================================================================
An operating system can be thought of as a supplier of many
services to user processes, and a manager of many resources
that are available to user processes.  Name some of these
services and resources. (Variety in your answer will count more
than quantity.)

What is a system call?  Who (what type of process) would MAKE a
system call?  Who (what process) would be the CALLEE?

Explain what a process is.

What are the services that an operating system provides in
relation to:

Process Management
Main-Memory Management
Secondary Storage Management
I/O System Management
File Management
Protection
Networking

Explain system calls

Discuss several approaches to designing an operating system.

=================================================================
Chapter 04 -- Processes
=================================================================
Define "program" and "process", being careful to explain the
difference between them.

What is the "state" of a process?  (in the widest sense -- NOT
the kind of state that is either new, active, waiting, or
halted.)  List some of the components of a process state.

Explain processes and threads.

Explain process control blocks.

Explain ready queue and I/O queue.

Explain the roles of short term and long term schedulers.

Explain swapping and context switching.

Discuss some important Unix system calls.

Explain user-level versus kernel-level threads.

Explain the producer-consumer problem.

Discuss several styles of interprocess communication.

=================================================================
Chapter 05 -- CPU Scheduling
=================================================================
Explain preemptive and non-preemptive scheduling.

Explain shortest-job-first (SJF) scheduling.  What does it
achieve?  When is it easy to implement, and when is it hard to
implement?

Explain "aging" and what the need for it is.

Explain round robin.

Explain symmetric multiprocessing.

Explain throughput, turnaround time, waiting time and response
time.

=================================================================
Chapter 06 -- Process Synchronization
=================================================================
Define "critical section" and "critical section problem".
Be sure to adequately describe the context in which these
concepts are important.

Explain the meaning of each of the following three requirements
for a solution to a critical section problem:  a) mutual
exclusion b) progress c) bounded waiting.

What is a "software solution" to a critical section problem?
When we studied software solutions, what underlying assumptions
did we rely upon concerning the instruction set of the machine
on which our programs would execute?

Complete the following working definition of an atomic
operation:  If two processes attempt to execute an ATOMIC
OPERATION concurrently, the result will be ... "

Explain how the "hardware" of a computer can be used to insure
the atomicity of an operation such as the "wait" of a
semaphore, or a "test-and-set".

Give a complete description of one of the following "classic
problems" in process coordination: a. The producer/consumer
problem (bounded buffer version) b. The readers/writers problem
(either the first or second version) c.  The dining
philosophers problem.  (Note: I'm asking that you STATE one of
these problems, not give a solution.)

Define "busy waiting".  How can busy waiting be avoided in the
synchronization protocols of a uni-processor computer?

Describe the data structure "counting semaphore" (also called a
"queueing semaphore").  Be sure to describe

A.  the data object itself, its structure and organization from
a logical standpoint,

B.  the operations that are available on such a semaphore and
their important characteristics, such as what they input, what
they output, pre-conditions, and post-conditions.  Don't forget
that there are "atomicity" conditions that must be met by these
operations.

=================================================================
Chapter 07 -- Deadlocks
=================================================================
What are the four necessary conditions for deadlock?  Discuss
some of the (operating system) techniques that prevent deadlock
by making sure that one or more of the conditions never holds.
What are some of the details and requirements of the
implementation of these techniques?

Discuss deadlock avoidance.  What is involved in the Banker's
algorithm?  How does an operating system use the Banker's
algorithm to avoid deadlock?  What is a safe sequence?  If a
system is not in deadlock, is it always in a safe state?  

Describe a method by which an operating system can detect
deadlock.  How should this be done in a system in which there
is just one instance of each resource type?  What about a
system in which there are multiple instances of some resource
types?

=================================================================
Chapter 08 -- Memory Management
=================================================================
Discuss various approaches to the management of main memory.
Include fixed partitions, variable partitions, segments, and
paging.  What are external and internal fragmentation?

=================================================================
Chapter 09 -- Virtual Memory
=================================================================
Discuss virtual memory, and various approaches to the
implementation of virtual memory.

Discuss implementations of page replacement.

Discuss the issues involved in per-process frame allocation.

Discuss ways of detecting and dealing with thrashing processes.

Discuss the issues involved in choosing a page size.

=================================================================
Chapter 10 -- File-System Interface
=================================================================
Describe several approaches to organizing a file system.
Explain advantages and disadvantages of the various methods.

Discuss some of the problems inherent in maintaining a
directory structure in which arbitrary multiple links to files
are allowed to exist.

=================================================================
Chapter 11  -- File-System Implementation
=================================================================
How should blocks on magnetic disk be numbered so that
allocation of a series of blocks will result in a minimal
number of seeks for sequential accesses to files?

Discuss the design goals important in the choice of a data
structure for representing the free space list for a magnetic
disk.

Define contiguous, linked, and indexed file allocation
methods.  What kinds of file accesses are supported efficiently
by each?  What are some advantages and disadvantages of each?
Which method suffers from the effects of external fragmentation?

In order to support create, open, read, write, reset (seek),
and delete operations on files, what information about each
file must be stored by the operating system?

=================================================================
Chapter 12 -- I/O Systems
=================================================================
Discuss the ways that typical device controllers interact with
the CPU and other components of a modern computing system.

Discuss polling, interrupt driven I/O, and DMA.

Discuss interrupt levels.

Discuss block-oriented and character-oriented I/O.

=================================================================
Chapter 13 -- Secondary Storage Structure
=================================================================
Explain various disk scheduling policies.

What is involved in disk formatting?

Discuss swap space implementations.

Discuss disk striping and RAID's.

=================================================================
Chapter 14 -- Tertiary-Storage Structure
=================================================================
won't be covered

=================================================================
Chapter 15 -- Network Structures
=================================================================
Discuss various approaches to managing and coordinating
multiprocessor systems.  Be sure to include loosely coupled
vs.  tightly coupled, and master/slave organization.

Describe various network topologies.

Define "Distributed System".

What are the advantages of a distributed system?

Describe several popular connection topologies of distributed
systems.

Discuss the following routing strategies:  fixed routing,
virtual circuits, and dynamic routing.

Discuss the following connection strategies:  circuit
switching, message switching, and packet switching.

Discuss CSMA/CD, token passing, and message slots as they
relate to resolving contention.

Discuss the ISO layers.

=================================================================
Chapter 16 -- Distributed-System Structures
=================================================================
Discuss computation and process migration.

Discuss fault-tolerance.

Discuss scalability.

=================================================================
Chapter 17 -- Distributed-File Systems
=================================================================
Discuss processor and storage device transparency.

Discuss the relative merits of several distributed filesystems.

=================================================================
Chapter 18 -- Distributed Coordination
=================================================================
Why do we require a process to advance its logical clock when
it receives a message whose time-stamp is greater than the
current value of its logical clock?

Discuss ways that distribute processes can achieve mutual
exclusion.

Discuss ways that distributed processes can achieve atomic
distributed transactions.

Discuss ways that distributed processes can prevent deadlock.

Discuss distributed deadlock detection.

Discuss election algorithms.

=================================================================
Chapter 19 -- Protection
=================================================================
Discuss domains, capabilities, access lists, and access
matrices.

=================================================================
Chapter 20 -- Security
=================================================================
Discuss authentication procedures.

Discuss threats such as trojan horse, trap door, worm, virus.

Discuss threat monitoring.

=================================================================
Chapter 21 -- The Unix System
=================================================================
Discuss Unix design principles and innovations.

Discuss fork, execve, wait, and vfork.

Discuss CPU scheduling under Unix.

Discuss the 4.2BSD file-system.

Discuss the advantages and disadvantages of writing the
majority of an operating system in a high-level language.

=================================================================
Chapter 22 -- The Linux System
=================================================================
won't be covered

=================================================================
Chapter 23 -- Windows NT
=================================================================
won't be covered

=================================================================
Chapter 24 -- Historical Perspective
=================================================================
won't be covered

=================================================================
=================================================================