Recent Changes - Search:

Instructor

  • who: Michael Swift
  • where: Room 7369
  • when: Thurs. 1:30-2:30
  • email: swift 'at' cs.wisc.edu

TA

  • who: Ceyhun Alp
  • where: 1306
  • when: Wednesday 1:15-2:15
  • email: e.ceyhun.alp 'at' gmail.com

Lecture:

  • when: Tues./Thur. 11:00 -- 12:15
  • where: Computer Sciences 1325
  • list: compsci736-1-s16 'at' lists.wisc.edu

HomePage

Resources

edit SideBar

ProjectIdeas

Measurement

  • Virtual memory use. Operating systems and programmers expect page-based virtual memory. Evaluate how important page-based virtual memory is, by measuring the savings in fragmentation, swapping, copy-on-write, demand-allocation, etc.
  • Superpages. Measure the benefit of transparent superpages and when they work. Look at alternate mechanisms of exposing large pages or address translation to applications, such as primary regions and direct segments
  • Isolation. Virtual machines and containers provide different kinds of isolation. Can you create a mechanism to measure the amount of isolation a system provides to quantify the difference? Isolation can refer to resource isolation or performance isolation.

Modification

  • User mode drivers The new VFIO features better allow drivers to execute in user-mode code, with only a small interrupt handler in the kernel. This is an extension of the old UIO model. Implement this, and measure the effect on the system in terms of reliability, performance, memory use.
  • Fast IPC. Many people are deploying microservices using HTTP and REST for communication. Can you modify such a system to use something faster, similar to LRPC for better performance?

Design

  • Multiple levels of caching. In a system with hard disks, flash SSDs, and non-volatile memory, where should data be stored optimally? Modify or build a caching system to incorporate multiple levels of persistent caching.
  • Cloud computing. The data centers at cloud providers contain a variety of machines with different performance levels. Can you build a system to optimize the performance of an application by getting it to run on the best possible machines?
  • Heterogeneous scheduling. future processors may have many CPUs (or GPUs). The central challenge is how to assign threads to the best core. Build such a scheduler.
  • Optimized file systems. It may be possible to design a better file system for specific workloads, such as applications with millions of small files, only a few large files, append-only writes, etc. Pick an application and design a better file system for it in FUSE.
Edit - History - Print - Recent Changes - Search
Page last modified on February 11, 2016, at 10:47 AM