Project List
- Measurement
- Measure the cost / benefit of dynamically loaded librarie vs. statics librarie.
- Measure the AFS file system in our department and compare its
performance for our workload against NFS V4, a newly available file
system.
- Measure the experienced performance loss of running our standard
workload on top of a virtual machine, to see whether we would
notice.
- Measure the isolation capabilites of different isolation
techniques and virtual machine monitors, such as processes, vservers,
jails, Xen, and VMware.
- OS kernels
- Given that people are running OSs on top of a virtual machine,
are there any services that can be removed because of redundancies?
E.g. device detection, file systems, drivers, memory management? What
is the resulting performance?
- File Systems
- Build a file system specific to virtual machines
- Inject disk faults into Sun's ZFS to test its reliability and
performance
- Magnetic RAM, or MRAM, is finally making it to market. This is a
form of non-volatile memory that is faster than DRAM and almost as
fast as SRAM. It has no seek or access latency, unlike Flash. Design a
file system optimized for this storage technology.
Freescale presentation
Wikipedia
- Security
- Build a rootkit detection system based hibernation or portable
USB devices. This device has access to DMA right out of memory,
allowing it to bypass any mechanism a rootkit uses for hiding.
Wikipedia on rootkits
- Build a system using Microsoft's restricted tokens to isolate
applications with the appropriate permissions - you will need to
figure out a good policy and how to test the system for security. This
system should be able to prevent malicious attachments or downloads
from compromising files of other applications.
Access control in Windows
- Reliability
- Measure what fails within an OS kernel, and figure out why and
how often. This provides guidance to OS designers in how to structure
error handling code, by figuring out what is commonly exercised and
must be fast, and what is not. In addition, figure out how the OS
responds to different error conditions, for examply by ignoring the
error, retrying, crashing, or returning an error code.
- Scheduling and Synchronization
- Multi-core scheduling
Computer architects believe that
future chip multiprocessors will have hetergeneous processors, in that
some will be more powerful than others. This allows code that can't
use a powerful processor, because it has poor memory or branch
locality, to execute more efficiently. A major problem is figuring out
which thread to schedule on which cores. Design (1) a way of figuring
out which threads don't need a high-performance processor (perhaps
using processor performance counters, and (2) a scheduling algorithm
that executes those on the lower-performing processors.
- Compare the synchronization code in Solaris to Linux (e.g. low
level locks) to measure which kernel does a better job at fine-grained
locking. For example, measure how many locks must be acquired to
perform a task (to measure locking overhead) and how many memory
locations are protected by a single lock.
Previous project lists: