# ZygOS: Achieving Low Tail Latency for Microsecond-scale Networked Tasks
###### paper origin: SOSP '17
###### paper: [link](https://dl.acm.org/doi/10.1145/3132747.3132780)
### Motivation
* Datacenter application
* To server μs-scale RPCs with low tail latency
### Problem
* IX has two main issues
* Imbalance : some cores may be idle while other cores can barely finish its' work
* Bad tail-latency performance when the service time distribution has a high dispersion
### Evaluted systems
* Queuing model : Load vs. Latency
* Single-queue system performs better compared to systems with multiple queues
* FCFS performs better in regards to tail latency for distribution with low dispersion


* Systems evalution, during the benchmark, systems simply receive request from open connections, wait the requested amount of time and return a response
* Upper bounds : zero operating system overheads, no scheduling overheads, no propagation delays, no head-of-line blocking, no interrupt delays, etc.
* Linux-floating : all open connections are put into a single poll which all threads my poll
* Linux-partitioned : each thread accept its set of connections
* IX : modeled as partitioned-FCFS

### Design & Implementation
* Although it can not provide a robust solution to the tail latency problem, synchronization-free dataplane still provides substantial throughput improvement over conventional OS
* Based on IX dataplane, add a pull-based, work-stealing scheme
* shuffle layer added, a shuffle queue per core
* cores poll on each other's shuffle queue while in idle
* replace adaptive batching by intermediate buffering
* use IPI to ask other cores to fullfill the shuffle queue

### Evaluation


### Discussion
* The choice of an SLO also informs on the choice of the underlying operating system and scheduling strategy
