(Latest Revision: 08/17/00)
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 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 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 "state" of a process? (in the widest sense -- not
the kind of state that is either "new", "active", "waiting", or
"halted.") List as many components of process state as you can think
of.
- 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." Also, what is the need for aging?
- 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
- 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 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
- 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
- No questions yet.
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 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-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
- No questions yet.
Chapter 23 -- Windows NT
- No questions yet.
Chapter 24 -- 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.