Paper Topics
(updated Feb 7)
Below is a list of suggested contemporary OS topics, issues, and
research paper references. Each student must complete 4 short
paper assignments on OS topics selected from this list or on OS topics
suggested by the student and approved by the instructor. Each
student may complete a longer, more detailed research paper on a topic
from this list (or suggested by the student and approved by the
instructor) in place of the midterm or final exam.
Short papers summarize and review the topics as they relate to the core
OS principles covered in class and in the textbook (processes, threads,
scheduling, synchronization, memory management, I/O systems,
distributed systems issues). About 4-5 pages, with appropriate
references.
Long research papers explore a topic in more depth, include detailed
discussion of core OS principles, and may include program/data
analysis. Include appropriate references.
- Thread Models
- Solaris and Linux have recently moved from an MxN thread model
to a 1-1 thread model. Why? What are the advantages and
disadvantages of each model?
- Virtual Machine Environments
- Some operating systems can run other operating systems as
guests or as "virtual machines". Examples include Solaris Zones
and IBM mainframe LPARs on large systems, and VMware, WINE, and Lindows
on smaller systems. How is this accomplished? How do the
virtual environment map memory, interrupts, processes, etc to those on
the host OS?
- Checkpoint/Restart
- Long-running programs may need to be interrupted and resumed at
a later time. Discuss/explore the OS requirements to accomplish
the complete stop and restart of a program. In distributed
systems, processes may stop on one system, and restart on
another. What OS actions are required to accomplish this?
- 32-bit & 64-bit Operating Systems
- For years, low-end PCs and servers have used 32-bit processors,
while 64-bit processors (Alpha, SPARC) have powered high-end, SMP
servers. Recently, 64-bit workstations and small servers (using
Intel Itanium, AMD Athlon64 and Opteron, and IBM PowerPC G5) have
appeared. Discuss the advantages and disadvantages of 32-bit vs
64-bit operating systems,
especially memory and file size and addressability issues.
- Buffer overflow
- One of the most common security exploits is the "buffer
overflow". How does this work? Recently (Solaris 8 and 9),
Sun added the ability to turn off "stack execution". Do
programs need this feature?
- Memory issues (multiple topics):
- Large Physical Memory
- some systems can directly address an enormous physical memory
space (Sun F15K can have nearly 500GB of physical memory. What
are the benefits/problems with using such large memory space?
- Memory Placement
- When a process requests memory, the OS delivers one or more
memory pages. These pages may be on the same system board as the
CPU running the process, on some other system board, or, in the case of
distributed memory systems, on another system. Some OS's have
recently added APIs that allow allocation of memory "close" to the
CPU. Explain the advantages and disadvantages of such placement.
- Page Coloring
- Page Size variation
- Binary Execution
- Some systems can execute binary code compiled for a different
OS. For example, lxrun
allows Solaris x86 users to execute Linux (for x86) binaries. How
is this accomplished? Are there performance consequences or other
limitations?
- Resource Management
- Modern OS's (like Solaris 9) now include a resource manager that allows
administrators to limit the CPU, memory, and I/O resources allocated to
users, processes, or applications, using a "Fair Share
Scheduler". How does this scheduler work? What is the
benefit of explicitly managing resources in this way?
- CMP (Chip Multi Processing) and CMT (Chip Multi Threading)
- IBM, Intel, AMD, and Sun have recently announced processors
that have multiple CPUs on a single chip, and processors that can
execute multiple threads per clock cycle (also called
HyperThreading). OS's like Linux and Solaris view these
processors as having more than one CPU for process/thread scheduling
purposes. What are the advantages of this approach? What
are the difficulties? (hint: caches)
- Research/Industry Paper Critiques (short topics)
- Summarize and critique the paper (in writing), and give a brief
discussion/presentation in class. Must include discussion of
relevant core OS topics:
- ...
- MORE TOPICS WILL BE ADDED THROUGHOUT THE SEMESTER
Project Topics
Each student is required to complete a mid-semester project and a final
project. The project must include the measurement and analysis of
operating system behavior.
The mid-semester project should focus on a single system and OS image,
showing how an OS behaves under resource exhaustion (for example:
running out of memory, maxing the CPU utilization, maxing the I/O
bandwidth, running too many processes, running out of file handles or
inodes). Explain what is happening within the OS as it tries to
manage its resources, and how measurements of the OS behavior tell the
user/administrator how to alter the system to improve
behavior/performance. Do NOT
use shared CS systems for this project! Use a non-shared
PC or laptop.
The final project will focus on multiple, distributed systems.
Details TBA.