CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm...

67
CS 318 Principles of Operating Systems Fall 2017 Lecture 14: I/O & Disks Ryan Huang

Transcript of CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm...

Page 1: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

CS 318 Principles of Operating Systems

Fall 2017

Lecture 14: I/O & DisksRyan Huang

Page 2: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Midterm Results

• Mean: 56.5, Max: 72.5, STD Dev 8.7- 318 Section: Mean 58.5 (amazing!), Max 70, STD Dev 9.2

10/24/17 CS 318 – Lecture 14 – I/O & Disks 2

0

5

10

15

20

25

40 45 50 55 60 65 70 80

Perc

ent

Score Range

Page 3: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Midterm Results

10/24/17 CS 318 – Lecture 14 – I/O & Disks 3

Page 4: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Midterm Results

• Tend to overthink a problem- The synchronization and dining graduate problem are directly adapted from

homework and textbook- A variety of overly complex (incorrect) answers

• Some serious misconception- E.g., syscall makes user-level threads faster (Q4 also from homework)

• Don’t panic if you didn’t do well on midterm- Still a lot of chance to make up, e.g., do Lab 3 well- But do make sure you understand all the questions and answers now

10/24/17 CS 318 – Lecture 14 – I/O & Disks 4

Page 5: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Administrivia• Midterm solution will not be directly posted online- The Rubric items are published in gradescope- Can request to see the copy of sample solution in my office hour or the CAs’

• If there is issue with grading, email the staff list or request through gradescope• If you want to talk about midterm, don’t hesitate to contact me• Lab 3 is out, please start early- workload increasing- absolute late penalty increasing- suggest checking design with the staff first

10/24/17 CS 318 – Lecture 14 – I/O & Disks 5

Page 6: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

I/O Devices

• I/O is critical to computer system to interact with systems.

• Issue:- How should I/O be integrated into systems? -What are the general mechanisms? - How can we make the efficiently?

10/24/17 CS 318 – Lecture 14 – I/O & Disks 6

Page 7: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Structure of Input/Output (I/O) Device

CPU Memory

Graphics

Memory Bus(proprietary)

General I/O Bus(e.g., PCI)

Peripheral I/O Bus(e.g., SCSI, SATA, USB)

10/24/17 CS 318 – Lecture 14 – I/O & Disks 7

Page 8: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Buses

• Buses- Data paths that provided to enable information between CPU(s), RAM, and

I/O devices.

• I/O bus- Data path that connects a CPU to an I/O device.- I/O bus is connected to I/O device by three hardware components: I/O ports,

interfaces and device controllers.

10/24/17 CS 318 – Lecture 14 – I/O & Disks 8

Page 9: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

What Is I/O Bus? E.g., PCI

10/24/17 CS 318 – Lecture 14 – I/O & Disks 9

Page 10: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Canonical Device

Command Data

Canonical Device

Device Registers: Status interface

10/24/17 CS 318 – Lecture 14 – I/O & Disks 10

OS reads/writes to these

Page 11: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Canonical Device

Command Data

Canonical Device

Device Registers:

???

Status interface

internals

10/24/17 CS 318 – Lecture 14 – I/O & Disks 11

OS reads/writes to these

Page 12: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Canonical Device

Command Data

Canonical Device

Device Registers:

Micro-controller (CPU)Memory (DRAM or SRAM or both)Other Hardware-specific Chips

Status interface

internals

10/24/17 CS 318 – Lecture 14 – I/O & Disks 12

OS reads/writes to these

Page 13: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Hardware Interface Of Canonical Device

• status register- See the current status of the device

• command register- Tell the device to perform a certain task

• data register- Pass data to the device, or get data from the device

• By reading or writing the above three registers, the OS controls device behavior.

10/24/17 CS 318 – Lecture 14 – I/O & Disks 13

Page 14: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Hardware Interface Of Canonical Device

• Typical interaction example

while ( STATUS == BUSY)

; //wait until device is not busy

write data to data register

write command to command register

Doing so starts the device and executes the command

while ( STATUS == BUSY)

; //wait until device is done with your request

10/24/17 CS 318 – Lecture 14 – I/O & Disks 14

Page 15: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Polling

• OS waits until the device is ready by repeatedly reading the status register- Positive aspect is simple and working. - However, it wastes CPU time just waiting for the device.

• Switching to another ready process is better utilizing the CPU.

.1 1 1 1 1 p p p p p 1 1 1 1 1CPU

Disk

Diagram of CPU utilization by polling

1 1 1 1 1

: task 11 : pollingP“waiting IO”

10/24/17 CS 318 – Lecture 14 – I/O & Disks 15

Page 16: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Interrupts

• Put the I/O request process to sleep and context switch to another

• When the device is finished, wake the process waiting for the I/O by interrupt- Positive aspect is allow to CPU and the disk are properly utilized.

1 1 1 1 1 2 2 2 2 2 1 1 1 1 1CPU

Disk

Diagram of CPU utilization by interrupt

1 1 1 1 1

: task 11 : task 22

10/24/17 CS 318 – Lecture 14 – I/O & Disks 16

Page 17: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Polling vs Interrupts • However, “interrupts is not always the best solution”- If, device performs very quickly, interrupt will “slow down” the system.

• E.g., high network packet arrival rate- Packets can arrive faster than OS can process them- Interrupts are very expensive (context switch)- Interrupt handlers have high priority- In worst case, can spend 100% of time in interrupt handler and never make any progress –

receive livelock- Best: Adaptive switching between interrupts and polling

If a device is fast à poll is best.If it is slow à interrupts is better.

10/24/17 CS 318 – Lecture 14 – I/O & Disks 17

Page 18: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

One More Problem: Data Copying• CPU wastes a lot of time in copying a large chunk of data from

memory to the device.

1 1 1 1 C C C 2 2 2 2 2 1 1 1CPU

Disk

Diagram of CPU utilization

1 1 1 1 1

“over-burdened” : task 11 : task 22

C : copy data from memory

10/24/17 CS 318 – Lecture 14 – I/O & Disks 18

Page 19: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

DMA (Direct Memory Access)

• Idea: only use CPU to transfer control requests, not data

• Include list of buffer locations in main memory- Device reads list and accesses buffers through DMA- Descriptions sometimes allow for scatter/gather I/O

Buffer descriptor list

10/24/17 CS 318 – Lecture 14 – I/O & Disks 19

Page 20: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

DMA (Direct Memory Access) Cont.

• When completed, DMA raises an interrupt, I/O begins on Disk.

1 1 1 1 2 2 2 2 2 2 2 2 1 1 1CPU

DMA

Diagram of CPU utilization by DMA

1 1 1 1 1

C C C

Disk

: task 11 : task 22

C : copy data from memory

10/24/17 CS 318 – Lecture 14 – I/O & Disks 20

Page 21: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Example: Network Interface Card

• Link interface talks to wire/fiber/antenna- Typically does framing, link-layer CRC

• FIFOs on card provide small amount of buffering

• Bus interface logic uses DMA to move packets to and from buffers in main memory

10/24/17 CS 318 – Lecture 14 – I/O & Disks 21

Page 22: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Device Interaction

• How the OS communicates with the device?

• Solutions- I/O instructions: a way for the OS to send data to specific device registers.

• Ex) in and out instructions on x86- memory-mapped I/O

• Device registers available as if they were memory locations.• The OS load (to read) or store (to write) to the device instead of main memory.

10/24/17 CS 318 – Lecture 14 – I/O & Disks 22

Page 23: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

x86 I/O instructionsstatic inline uint8_t inb (uint16_t port){uint8_t data;asm volatile ("inb %w1, %b0" : "=a" (data) : "Nd" (port));return data;

}

static inline void outb (uint16_t port, uint8_t data){asm volatile ("outb %b0, %w1" : : "a" (data), "Nd" (port));

}

static inline void insw (uint16_t port, void *addr, size_t cnt) { asm volatile ("rep insw" : "+D" (addr), "+c" (cnt)

: "d" (port) : "memory");}

Pintos threads/io.h10/24/17 CS 318 – Lecture 14 – I/O & Disks 23

Page 24: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

IDE Disk Drivervoid IDE_ReadSector(int disk, int off,

void *buf){// Select Driveoutb(0x1F6, disk == 0 ? 0xE0 : 0xF0);IDEWait();// Read length (1 sector = 512 B)outb(0x1F2, 1);outb(0x1F3, off); // LBA lowoutb(0x1F4, off >> 8); // LBA midoutb(0x1F5, off >> 16); // LBA highoutb(0x1F7, 0x20); // Read commandinsw(0x1F0, buf, 256); // Read 256 words

}

void IDEWait(){// Discard status 4 timesinb(0x1F7); inb(0x1F7);inb(0x1F7); inb(0x1F7);// Wait for status BUSY flag to clearwhile ((inb(0x1F7) & 0x80) != 0);

}

10/24/17 CS 318 – Lecture 14 – I/O & Disks 24

Page 25: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Memory-mapped IO• in/out instructions slow and clunky- Instruction format restricts what registers you can use- Only allows 216 different port numbers- Per-port access control turns out not to be useful (any port access allows you

to disable all interrupts)

• Devices can achieve same effect with physical addresses, e.g.:

- OS must map physical to virtual addresses, ensure non-cachable

volatile int32_t *device_control= (int32_t *) (0xc0100 + PHYS_BASE);

*device_control = 0x80;int32_t status = *device_control;

10/24/17 CS 318 – Lecture 14 – I/O & Disks 25

Page 26: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Protocol Variants

• Status checks: polling vs. interrupts

• Data: PIO vs. DMA

• Control: special instructions vs. memory-mapped I/O

10/24/17 CS 318 – Lecture 14 – I/O & Disks 26

Command DataDevice Registers:

Micro-controller (CPU)Memory (DRAM or SRAM or both)Other Hardware-specific Chips

Status

Page 27: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Variety Is a Challenge

• Problem:- many, many devices- each has its own protocol

• How can we avoid writing a slightly different OS for each H/W combination?

10/24/17 CS 318 – Lecture 14 – I/O & Disks 27

Page 28: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Variety Is a Challenge

• Problem:- many, many devices- each has its own protocol

• How can we avoid writing a slightly different OS for each H/W combination?

• Solution: Abstraction!- Build a common interface-Write device driver for each device- Drivers are 70% of Linux source code

10/24/17 CS 318 – Lecture 14 – I/O & Disks 28

Page 29: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

File System Abstraction

• File system specifics of which disk class it is using.- Ex) It issues block read and write request to the generic block layer.

The File System Stack

kernel

Application

File System

Generic Block Layer

Device Driver [SCSI, ATA, etc]

Specific Block Interface [protocol-specific read/write]

Generic Block Interface [block read/write]

user

POSIX API [open, read, write, close, etc]

10/24/17 CS 318 – Lecture 14 – I/O & Disks 29

Hard Drive

Page 30: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Hard Disks

10/24/17 CS 318 – Lecture 14 – I/O & Disks 30

Page 31: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Hard Disks

10/24/17 CS 318 – Lecture 14 – I/O & Disks 31

Page 32: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Hard Disks

10/24/17 CS 318 – Lecture 14 – I/O & Disks 32

Page 33: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Basic Interface

• Disk interface presents linear array of sectors- Historically 512 Bytes-Written atomically (even if there is a power failure)- 4 KiB in “advanced format” disks

• Torn write: If an untimely power loss occurs, only a portion of a larger write may complete

• Disk maps logical sector #s to physical sectors

• OS doesn’t know logical to physical sector mapping

10/24/17 CS 318 – Lecture 14 – I/O & Disks 33

Page 34: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Basic Geometry

• Platter (Aluminum coated with a thin magnetic layer)- A circular hard surface- Data is stored persistently by inducing magnetic changes to it.- Each platter has 2 sides, each of which is called a surface.

10/24/17 CS 318 – Lecture 14 – I/O & Disks 34

Page 35: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Basic Geometry (Cont.)• Spindle- Spindle is connected to a motor that spins the platters around.- The rate of rotations is measured in RPM (Rotations Per Minute).

• Typical modern values : 7,200 RPM to 15,000 RPM.

• Track- Concentric circles of sectors- Data is encoded on each surface in a track.- A single surface contains many thousands and thousands of tracks.

• Cylinder- A stack of tracks of fixed radius- Heads record and sense data along cylinders- Generally only one head active at a time

10/24/17 CS 318 – Lecture 14 – I/O & Disks 35

Page 36: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Cylinders, Tracks, & Sectors

10/24/17 CS 318 – Lecture 14 – I/O & Disks 36

Page 37: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

A Simple Disk Drive

• Disk head (One head per surface of the drive)- The process of reading and writing is accomplished by the disk head.- Attached to a single disk arm, which moves across the surface.

A Single Track Plus A Head

123

4

5

6

78 9

10

11

0

spindle

Rotates this way

10/24/17 CS 318 – Lecture 14 – I/O & Disks 37

Page 38: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

• Rotational delay: Time for the desired sector to rotate- Ex) Full rotational delay is R and we start at sector 6

• Read sector 0: Rotational delay = !"

• Read sector 5: Rotational delay = R-1 (worst case.)

Single-track Latency: The Rotational Delay

10/24/17 CS 318 – Lecture 14 – I/O & Disks 38

A Single Track Plus A Head

123

4

5

6

78 9

10

11

0

spindle

Rotates this way

Page 39: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Multiple Tracks

• Let’s Read 12!

10/24/17 CS 318 – Lecture 14 – I/O & Disks 39

123

065 4

78

9

1011

1514

1312

16

17

18

19

23

22

21

20

Page 40: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Multiple Tracks: Seek To Right Track

• Let’s Read 12!

10/24/17 CS 318 – Lecture 14 – I/O & Disks 40

Page 41: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Multiple Tracks: Seek To Right Track

• Let’s Read 12!

10/24/17 CS 318 – Lecture 14 – I/O & Disks 41

Page 42: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Multiple Tracks: Seek To Right Track

• Let’s Read 12!

10/24/17 CS 318 – Lecture 14 – I/O & Disks 42

Page 43: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Multiple Tracks: Wait for Rotation

• Let’s Read 12!

10/24/17 CS 318 – Lecture 14 – I/O & Disks 43

Page 44: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Multiple Tracks: Wait for Rotation

• Let’s Read 12!

10/24/17 CS 318 – Lecture 14 – I/O & Disks 44

Page 45: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Multiple Tracks: Wait for Rotation

• Let’s Read 12!

10/24/17 CS 318 – Lecture 14 – I/O & Disks 45

Page 46: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Multiple Tracks: Wait for Rotation

• Let’s Read 12!

10/24/17 CS 318 – Lecture 14 – I/O & Disks 46

Page 47: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Multiple Tracks: Wait for Rotation

• Let’s Read 12!

10/24/17 CS 318 – Lecture 14 – I/O & Disks 47

Page 48: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Multiple Tracks: Wait for Rotation

• Let’s Read 12!

10/24/17 CS 318 – Lecture 14 – I/O & Disks 48

Page 49: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Multiple Tracks: Transfer Data

• Let’s Read 12!

10/24/17 CS 318 – Lecture 14 – I/O & Disks 49

Page 50: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Multiple Tracks: Transfer Data

• Let’s Read 12!

10/24/17 CS 318 – Lecture 14 – I/O & Disks 50

Page 51: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Multiple Tracks: Transfer Data

• Let’s Read 12!

10/24/17 CS 318 – Lecture 14 – I/O & Disks 51

Page 52: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Yay!

10/24/17 CS 318 – Lecture 14 – I/O & Disks 52

Page 53: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Multiple Tracks: Seek Time

• Seek: Move the disk arm to the correct track- Seek time: Time to move head to the track contain the desired sector.- One of the most costly disk operations.

10/24/17 CS 318 – Lecture 14 – I/O & Disks 53

1

2

3

4

56

7

8

9

10

110

13

14

15

16

1718

19

20

21

22

2312

25

26

27

28

293031

32

33

34

35 24

1

23

4

5

6

7

89

10

11

0

13

141516

17

18

19

20 2122

23

12

252627

28

29

30

3132 33

34

35

24spindle spindle

Rotates this way Rotates this way

Page 54: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Seek, Rotate, Transfer

• Acceleration à Coasting à Deceleration à Settling- Acceleration: The disk arm gets moving.- Coasting: The arm is moving at full speed.- Deceleration: The arm slows down.- Settling: The head is carefully positioned over the correct track.

• Seeks often take several milliseconds!- settling alone can take 0.5 to 2ms.- entire seek often takes 4 - 10 ms.

10/24/17 CS 318 – Lecture 14 – I/O & Disks 54

Page 55: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Seek, Rotate, Transfer

• Depends on rotations per minute (RPM)- 7200 RPM is common, 1500 RPM is high end.

• With 7200 RPM, how long to rotate around?- 1 / 7200 RPM = 1 minute / 7200 rotations = 1 second / 120 rotations = 8.3

ms / rotation

• Average rotation?- 8.3 ms / 2 = 4.15 ms

10/24/17 CS 318 – Lecture 14 – I/O & Disks 55

Page 56: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Seek, Rotate, Transfer

• The final phase of I/O- Data is either read from or written to the surface.

• Pretty fast — depends on RPM and ector density

• 100+ MB/s is typical for maximum transfer rate

• How long to transfer 512-bytes?- 512 bytes * (1s / 100 MB) = 5 𝜇𝑠

10/24/17 CS 318 – Lecture 14 – I/O & Disks 56

Page 57: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Workload

• So…- seeks are slow- rotations are slow- transfers are fast

• What kind of workload is fastest for disks?- Sequential: access sectors in order (transfer dominated)- Random: access sectors arbitrarily (seek+rotation dominated)

10/24/17 CS 318 – Lecture 14 – I/O & Disks 57

Page 58: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Track Skew

• Make sure that sequential reads can be properly serviced even when crossing track boundaries- Without track skew, the head would be moved to the next track but the desired next

block would have already rotated under the head.

Three Tracks: Track Skew Of 2

9

19

29

35

13

3

32 22 06 16 26

10

1120

2130

31

3334 23

121

2

2425

14

15

4

5

27

2817

187

8

Spindle

Rotates this way

10/24/17 CS 318 – Lecture 14 – I/O & Disks 58

Page 59: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Disk Scheduling

• Disk Scheduler decides which I/O request to schedule next

10/24/17 CS 318 – Lecture 14 – I/O & Disks 59

9

21

33

27

15

3

24 12 06 18 30

10

1122

2334

35

2526 13

141

2

2829

16

17

4

5

31

3219

207

8

Spindle

Rotates this way

Page 60: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Disk Scheduling: FCFS

• “First Come First Served”- Process disk requests in the order they are received

• Advantages- Easy to implement- Good fairness

• Disadvantages- Cannot exploit request locality- Increases average latency, decreasing throughput

10/24/17 CS 318 – Lecture 14 – I/O & Disks 60

Page 61: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

FCFS Example

10/24/17 CS 318 – Lecture 14 – I/O & Disks 61

Page 62: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

SSTF (Shortest Seek Time First)

• Order the queue of I/O request by track

• Pick requests on the nearest track to complete first- Also called shortest positioning time first (SPTF)

• Advantages- Exploits locality of disk requests- Higher throughput

• Disadvantages- Starvation- Don’t always know what request will be fastest

10/24/17 CS 318 – Lecture 14 – I/O & Disks 62

Page 63: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

SSTF Example

10/24/17 CS 318 – Lecture 14 – I/O & Disks 63

Page 64: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

“Elevator” Scheduling (SCAN)• Sweep across disk, servicing all requests passed- Like SSTF, but next seek must be in same direction- Switch directions only if no further requests

• Advantages- Takes advantage of locality- Bounded waiting

• Disadvantages- Cylinders in the middle get better service- Might miss locality SSTF could exploit

• CSCAN: Only sweep in one direction- Very commonly used algorithm in Unix

10/24/17 CS 318 – Lecture 14 – I/O & Disks 64

Page 65: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

CSCAN example

10/24/17 CS 318 – Lecture 14 – I/O & Disks 65

Page 66: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Flash Memory• Today, people increasingly using flash memory• Completely solid state (no moving parts)- Remembers data by storing charge- Lower power consumption and heat- No mechanical seek times to worry about

• Limited # overwrites possible- Blocks wear out after 10,000 (MLC) – 100,000 (SLC) erases - Requires flash translation layer (FTL) to provide wear leveling, so repeated writes to logical

block don’t wear out physical block- FTL can seriously impact performance

• Limited durability- Charge wears out over time- Turn off device for a year, you can potentially lose data!

10/24/17 CS 318 – Lecture 14 – I/O & Disks 66

Page 67: CS 318 Principles of Operating Systemshuang/cs318/fall17/lectures/lec14...Administrivia •Midterm solution will not be directly posted online-The Rubric items are published in gradescope-Can

Next Time…

• Read Chapter 39, 40

10/24/17 CS 318 – Lecture 14 – I/O & Disks 67