# Operating Systems Papers - Index

## Meta stuff

* Reading lists
  * [CS 736 @ UW-Madison: Advanced Operating Systems](https://blog.ruipan.xyz/earlier-readings-and-notes/index/cs-736-uw-madison-fall-2020-reading-list)
  * [CS 262a @ Berkeley: Advanced Topics in Computer Systems](https://ucbrise.github.io/cs262a-fall2020/)
  * [OSTEP (Operating Systems: Three Easy Pieces)](http://pages.cs.wisc.edu/~remzi/OSTEP/) is written by the brilliant Remzi & Andrea and each chapter is followed by a lovely reading list about the topic covered in the chapter.
  * Some reading notes by individuals:
    * [Zeyuan Hu's paper reading notes](https://zhu45.org/), with a focus on database systems
    * [An open-source reading notes in CN](https://github.com/dyweb/papers-notebook), with a focus on virtualization and distributed systems

![Source: http://pages.cs.wisc.edu/\~remzi/OSTEP/](https://1313833672-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MMTslgmrrtRXvxD2lk9%2F-MROIdBKI4P1M11TD7f5%2F-MROIqbSLWD5Q1pCzp-D%2Fv2-522ded6304485cdac723f25d03c012dd_1200x500.jpg?alt=media\&token=06900777-8d15-465e-a503-c2c6ced90915)

* Some other stuff
  * [CS 262a @ Berkeley Fall 2020 class summary slides](https://ucbrise.github.io/cs262a-fall2020/notes/26-Class-Summary.pdf)
  * [Systems Benchmarking Crimes](https://www.cse.unsw.edu.au/~gernot/benchmarking-crimes.html)

## Table of Contents

### File and Storage Systems

| Title                                                                                                                                                                                                                                                              | Venue                                    |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------- |
| [FFS: A Fast File System for UNIX](https://blog.ruipan.xyz/earlier-readings-and-notes/index/ffs-a-fast-file-system-for-unix)                                                                                                                                       | ACM Transactions on Computer Systems ‘84 |
| [NFS: Sun's Network File System](https://blog.ruipan.xyz/earlier-readings-and-notes/index/nfs-suns-network-file-system)                                                                                                                                            | USENIX '86                               |
| [RAID: A Case for Redundant Arrays of Inexpensive Disks](https://blog.ruipan.xyz/earlier-readings-and-notes/index/raid-a-case-for-redundant-arrays-of-inexpensive-disks)                                                                                           | SIGMOD ‘88                               |
| [LFS: The Design and Implementation of a Log-Structured File System](https://blog.ruipan.xyz/earlier-readings-and-notes/index/lfs-the-design-and-implementation-of-a-log-structured-file-system)                                                                   | ACM Transactions on Computer Systems ‘92 |
| [SnapMirror: File-System-Based Asynchronous Mirroring for Disaster Recovery](https://blog.ruipan.xyz/earlier-readings-and-notes/index/snapmirror-file-system-based-asynchronous-mirroring-for-disaster-recovery)                                                   | FAST '02                                 |
| [Venti: A New Approach to Archival Storage](https://blog.ruipan.xyz/earlier-readings-and-notes/index/venti-a-new-approach-to-archival-storage)                                                                                                                     | FAST '02                                 |
| [ARC: A Self-Tuning, Low Overhead Replacement Cache](https://blog.ruipan.xyz/earlier-readings-and-notes/index/arc-a-self-tuning-low-overhead-replacement-cache)                                                                                                    | FAST '03                                 |
| [RDP: Row-Diagonal Parity for Double Disk Failure Correction](https://blog.ruipan.xyz/earlier-readings-and-notes/index/rdp-row-diagonal-parity-for-double-disk-failure-correction)                                                                                 | FAST '04                                 |
| [Data Domain: Avoiding the Disk Bottleneck in the Data Domain Deduplication File System](https://blog.ruipan.xyz/earlier-readings-and-notes/index/data-domain-avoiding-the-disk-bottleneck-in-the-data-domain-deduplication-file-system)                           | FAST '08                                 |
| [Mnemosyne: Lightweight Persistent Memory](https://blog.ruipan.xyz/earlier-readings-and-notes/broken-reference)                                                                                                                                                    | ASPLOS '11                               |
| [A File is Not a File: Understanding the I/O Behavior of Apple Desktop Applications](https://blog.ruipan.xyz/earlier-readings-and-notes/index/a-file-is-not-a-file-understanding-the-i-o-behavior-of-apple-desktop-applications)                                   | SOSP '11                                 |
| [OptFS: Optimistic Crash Consistency](https://blog.ruipan.xyz/earlier-readings-and-notes/index/optfs-optimistic-crash-consistency)                                                                                                                                 | SOSP '13                                 |
| [All File Systems Are Not Created Equal: On the Complexity of Crafting Crash-Consistent Applications](https://blog.ruipan.xyz/earlier-readings-and-notes/index/all-file-systems-are-not-created-equal-on-the-complexity-of-crafting-crash-consistent-applications) | OSDI '14                                 |
| [The Unwritten Contract of Solid State Drives](https://blog.ruipan.xyz/earlier-readings-and-notes/index/the-unwritten-contract-of-solid-state-drives)                                                                                                              | EuroSys '17                              |
| [From WiscKey to Bourbon: A Learned Index for Log-Structured Merge Trees](https://blog.ruipan.xyz/earlier-readings-and-notes/index/from-wisckey-to-bourbon-a-learned-index-for-log-structured-merge-trees)                                                         | OSDI '20                                 |
| [CheckFreq: Frequent, Fine-Grained DNN Checkpointing](https://blog.ruipan.xyz/machine-learning-systems/machine-learning-systems-index/checkfreq-frequent-fine-grained-dnn-checkpointing)                                                                           | FAST '21                                 |

### Process Synchronization and Scalability ( 🥵 )

| Title | Venue |
| ----- | ----- |
|       |       |

### Scheduling

| Title                                                                                                                                                                                                                                                | Venue          |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
| [Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism](https://blog.ruipan.xyz/earlier-readings-and-notes/index/scheduler-activations-effective-kernel-support-for-the-user-level-management-of-parallelism) | ACM SIGOPS '91 |
| [Lottery Scheduling: Flexible Proportional-Share Resource Management](https://blog.ruipan.xyz/earlier-readings-and-notes/index/lottery-scheduling-flexible-proportional-share-resource-management)                                                   | OSDI '94       |
| [Resource Containers: A New Facility for Resource Management in Server Systems](https://blog.ruipan.xyz/earlier-readings-and-notes/index/resource-containers-a-new-facility-for-resource-management-in-server-systems)                               | OSDI '99       |
| [The Linux Scheduler: A Decade of Wasted Cores](https://blog.ruipan.xyz/earlier-readings-and-notes/index/the-linux-scheduler-a-decade-of-wasted-cores)                                                                                               | EuroSys '16    |
| [Monotasks: Architecting for Performance Clarity in Data Analytics Frameworks](https://blog.ruipan.xyz/earlier-readings-and-notes/index/monotasks-architecting-for-performance-clarity-in-data-analytics-frameworks)                                 | SOSP '17       |
| [Gandiva: Introspective Cluster Scheduling for Deep Learning](https://blog.ruipan.xyz/machine-learning-systems/machine-learning-systems-index/gandiva-introspective-cluster-scheduling-for-deep-learning)                                            | OSDI '18       |
| [Tiresias: A GPU Cluster Manager for Distributed Deep Learning](https://blog.ruipan.xyz/machine-learning-systems/machine-learning-systems-index/tiresias-a-gpu-cluster-manager-for-distributed-deep-learning)                                        | NSDI '19       |
| [Themis: Fair and Efficient GPU Cluster Scheduling](https://blog.ruipan.xyz/machine-learning-systems/machine-learning-systems-index/themis-fair-and-efficient-gpu-cluster-scheduling)                                                                | NSDI '20       |

### OS Structure and Virtual Machines

| Title                                                                                                                                                                                                                            | Venue    |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
| [Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://blog.ruipan.xyz/earlier-readings-and-notes/index/disco-running-commodity-operating-systems-on-scalable-multiprocessors)                         | SOSP '97 |
| [Memory Resource Management in VMWare ESX Server](https://blog.ruipan.xyz/earlier-readings-and-notes/index/memory-resource-management-in-vmware-esx-server)                                                                      | OSDI '02 |
| [ReVirt: Enabling Intrusion Analysis through Virtual Machine Logging and Replay](https://blog.ruipan.xyz/earlier-readings-and-notes/index/revirt-enabling-intrusion-analysis-through-virtual-machine-logging-and-replay)         | OSDI '02 |
| [Biscuit: The benefits and costs of writing a POSIX kernel in a high-level language](https://blog.ruipan.xyz/earlier-readings-and-notes/index/biscuit-the-benefits-and-costs-of-writing-a-posix-kernel-in-a-high-level-language) | OSDI '18 |
| [LegoOS: A Disseminated, Distributed OS for Hardware Resource Disaggregation](https://blog.ruipan.xyz/earlier-readings-and-notes/index/legoos-a-disseminated-distributed-os-for-hardware-resource-disaggregation)                | OSDI '18 |

## To Read

### To move from local note to GitBook

#### File and Storage Systems

* [ ] Mnemosyne: Lightweight Persistent Memory
* [ ] Level Hash: Write-Optimized and High-Performance Hashing Index Scheme for Persistent Memory

#### Process Synchronization and Scalability

* [ ] Monitors: An Operating System Structuring Concept
* [ ] Mesa: Experiences with Processes and Monitors in Mesa
* [ ] Scalability Analysis: An Analysis of Linux Scalability to Many Cores
* [ ] Scalable Commutativity: The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors
* [ ] (Delegation/RCL) Remote Core Locking: Migrating Critical-Section Execution to Improve the Performance of Multithreaded Applications
* [ ] Shuffle Locks: Scalable and Practical Locking with Shuffling
* [ ] Arachne: Core-Aware Thread Management

#### Scheduling

* [ ] SEDA: An Architecture for Well-Conditioned, Scalable Internet Services
* [ ] TAM: Principled Schedulability Analysis for Distributed Storage Systems using Thread Architecture Models

#### OS Structure and Virtual Machines

* [ ] THE: The Structure of "THE" Multiprogramming System
* [ ] Nucleus: The Nucleus of a Multiprogramming System
* [ ] Exokernel: An Operating System Architecture for Application-Level Resource Management
* [ ] Arrakis: The Operating System is the Control Plane
* [ ] UNIX: The UNIX Time-Sharing System

### To read

* [ ] seL4: Formal Verification of an OS Kernel
