Slide 1

Slide 1 text

The Tale Of The Cursed Operating Systems Textbook @kiranb

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Grimoire “A book of magic spells and incantations”

Slide 6

Slide 6 text

Chapter 1 it’s coming from INSIDE THE KERNEL

Slide 7

Slide 7 text

OOM Killer qu’est-ce que c’est?

Slide 8

Slide 8 text

/proc • a pseudo-file system about process information! • /proc/slabinfo (or `slabtop`)

Slide 9

Slide 9 text

nsd nsd fork nsd fork nsd fork anon_vma anon_vma anon_vma anon_vma

Slide 10

Slide 10 text

Chapter 2 fiNAGLEing

Slide 11

Slide 11 text

hi! Here's headers! great! here’s the body!!! got it; thanks acknowledged!

Slide 12

Slide 12 text

Nagle’s Algorithm for (i=0; i<100000; i++) write(socket, &buffer[i], 1); if you have only a few bytes to send, wait until - you have more to fill a packet - or the server acknowledges all outstanding data - or you time out

Slide 13

Slide 13 text

hi! Here's packet 1. ok I’m bored. here’s an ack. great! here’s the second packet!!! sweet! we’re done here.

Slide 14

Slide 14 text

Chapter 3 oints [2015-05-12 23:05:47.9372] Caused by: com.mongodb.MongoException: BSONObj size: -286331154 (0xEEEEEEEE) is invalid. Size must be between 0 and 16793600(16MB) First element: oints: ? type=112

Slide 15

Slide 15 text

Buffers! fsync! • `fsync` flushes all pending writes to the database • and the optional `lock` parameter locks writes, so nothing else comes in.

Slide 16

Slide 16 text

WHAT’S NEXT - concurrency!!! - scheduling ???