(Latest Revision: 11/29/2001)
CS 3750 Study Guide for Exams
COMPUTER SCIENCE 3750 -- Operating Systems I
Make notes on what you read. To prepare for tests, study your
notes and the homework questions. That should be enough. There
are additional questions below 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 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 multiprocessor systems.
- 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 how system calls are implemented.
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
- 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 context of a process? List as many components
of process context as you can think of.
- 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 the fork and exec Unix system calls.
- Explain the producer-consumer problem.
- Discuss several styles of interprocess communication.
Chapter 05 -- Threads
- Compare/contrast processes and threads.
- Explain user-level versus kernel-level threads.
- Discuss potential benefits of programming with threads.
- Discuss thread support models -- i.e. many-to-one model,
one-to-one model, and many-to-many model.
- Discuss the system call implementation issues that come up
as a result of the introduction of multithreading.
- Discuss the signal handling issues that come up as a result
of the introduction of multithreading.
Chapter 06 -- 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." Also, what is the need for aging?
- Explain round robin.
- Explain symmetric multiprocessing.
- Explain throughput, turnaround time, waiting time and
response time.
Chapter 07 -- 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
- the data object itself, its structure and
organization from a logical standpoint,
- 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 08 -- 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 09 -- 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 10 -- 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 11 -- 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 12 -- File-System Implementation
- 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 13 -- 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 14 -- Mass Storage Structure
- Explain various disk scheduling policies.
- What is involved in disk formatting?
- Discuss swap space implementations.
- Discuss disk striping and RAID's.
Chapter 15 -- Distributed System Structures
- Discuss computation and process migration.
- Discuss fault-tolerance.
- Discuss scalability.
- 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 the term: 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-File Systems
- Discuss location transparency and location independence --
be able to define the two and explain the difference.
- Discuss some naming schemes for a distributed file system.
Discuss their relation to location transparency, location
independence, and administrative complexity.
- Discuss the benefits and disadvantages of server-side and
client-side file caching. Address the relation to
minimizing disk access delay and network transmission delay.
Address the relation to potential loss of data and/or loss
of cache consistency.
- Discuss the cache-consistency problem and approaches to a
solution -- in particular client and server inititated
approaches.
- Discuss disk caching versus RAM caching on the client side
-- definitions & pro's and con's
- Discuss cache-update policies -- define write-through,
delayed-write, write-on-close. Discuss pro's and con's.
- Discuss stateful versus stateless file service --
definitions & pro's and con's.
- Discuss some schemes for replicating files in a distributed
filesystem
- Discuss the design and implementation of AFS
- Discuss the relative merits of NFS and AFS.
-
Chapter 17 -- 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 18 -- Protection
- Discuss domains, capabilities, access lists, and access
matrices.
Chapter 19 -- Security
- Discuss authentication procedures.
- Discuss threats such as trojan horse, trap door, worm,
virus.
- Discuss threat monitoring.
Chapter 20 -- The Linux System
- No questions yet.
Chapter 21 -- Windows 2000
- No questions yet.
Chapter 22 -- Historical Perspective
- Describe automatic job sequencing. What important
advantage(s) did it bring to computing systems design?
- Describe off-line processing. What important advantage(s)
did it bring to computing systems design?
- Describe spooling. How does it differ from off-line
processing?
- For each of the following operating systems, name one important
innovation it contributed: Atlas, XDS-940, THE, RC 4000, CTSS, MULTICS,
OS 360, and Mach.