Hot Topics in OS Research Andy Wang COP 5611 Advanced Operating Systems
Some Hot Areas Safely executing untrusted code File and storage systems Ubiquitous computing Virtual machine environments Reliability
Safely Executing Untrusted Code Type-safe languages Virtual machines Verified code
File and Storage Systems Very large-scale file systems Reliability Performance vs. cost of ownership Energy consumption Very long-term storage Peer-to-peer backup system Challenges: privacy, consistency over encrypted data, fairness
File and Storage Systems Some advanced tools: Rabin fingerprinting Compare-by-hash Convergent encryption Erasure code Bloom filter Search on encrypted domain
Ubiquitous Computing Lots and lots of inexpensive mobile wireless devices Distributed resource sharing across untrusted domains Economic models Bartering Tickets Credits
Ubiquitous Computing Distributed resource discovery Pastry, Tapestry, Chord Hypercube routing Distributed radix sort O(log(n)) O(1) lookup with clever replication Distributed access control models Peer-to-peer coordination
Ubiquitous Computing Constrained resources CPU Cannot afford strong security measures Memory, disk Variable bandwidth Energy Battery density approaches that of a grenade Sensor networks
Ubiquitous Computing E-commerce How to authenticate with unknown servers? How to make e-cash anonymous, transferable, non-traceable, and non- forgeable? How to prevent free-rides? How to provide micropayments?
Virtual Machine Environments OS support for efficient executions Parasitic virtualization
Reliability Running device drivers in isolated kernel address spaces Static code analysis for common programming errors Soft-state-only systems, designed to crash
Reliability Use computational dependencies to locate failures Secure hardware to certify software General security
Revisiting Existing Designs Path Vertical paths vs. layers Capriccio Event-based scheduling Threads with linked stacks to conserve storage Conquest Lots of RAM
Introspective Computing Self-administration Configuration, optimization, evolution Exploit contextual information Autonomous computing Automatically detect and repair system problems
Performance Rewrite binaries for smaller memory footprint Use compiler to cluster and issue bulk system calls Download user-level binaries into the kernel