Skip to content

Research

Sam Burdick edited this page Jun 23, 2018 · 1 revision

Operating Systems

  • Silbershcatz et al. Operating System Concepts, 9th ed. This provides a good general description of the fundamental components of computer systems (processes, threads, locks, etc.)
  • CS475

Linux/Unix

  • Kerrisk, The Linux Programming Interface. A comprehensive description of what it says it's on that may just subsume other (programming, esp.) resources suggested here.

Network/Interprocess Programming

Remote Procedure Call

Distributed Systems

General

  • Van Steen/Tanenbaum: Distributed Systems, 3rd ed.
    This is a high-level and theoretical overview of distributed systems. Applicability is thus not immediately visible but still contains many essential notes and references. Should look to this in later stages of design once the basic concepts are well-understood.
  • Tanenbaum, Distributed Operating Systems.
    This is a bit easier to approach book than VS/T, but is not freely obtained.
  • Silberschatz, Chap. 17
    Describes DS through the lens of OS, but also covers networking and gives an extended distributed filesystem example.
  • DeCandia et al. Dynamo: Amazon’s Highly Available Key-value Store
    This paper describes the architecture of Dynamo. It uses various tricks of the trade such as consistent hashing and Merkel trees to optimize its scalability and performance. A good concentrated look

Consistent hashing

This is a simple algorithm used in many distributed systems such as Dynamo/Voldemort and Chord.

Fault tolerance

Clone this wiki locally