Slide Set 10

advertisement

operating systems

Disk Management

1

operating systems

Goals of I/O Software

Provide a common, abstract view of all devices to the application programmer (open, read, write)

Provide as much overlap as possible between the operation of I/O devices and the CPU.

2

operating systems

I/O – Processor Overlap

Application programmers expect serial execution semantics read (device, “%d”, x); y = f(x);

We expect that this statement will complete before the assignment is executed.

To accomplish this, the OS blocks the process until the I/O operation completes.

3

operating systems read(device, %D”, x); y = f(x);

READ User Process

Device Independent Layer

Device Dependent Layer

Interrupt Handler

Without Blocking!

The read has not and the value of x is updated.

execute.

CPU data status command

Device Controller x

4

operating systems app1

In a multi-programming environment, another application could use the cpu while the first application waits for the I/O to complete.

Request I/O operation

I/O

Complete app2 done app2

I/O controller

5

operating systems

Performance

Thread execution time can be broken into:

•Time

•Time

•Time compute device overhead

The time the thread spends doing computations

The time spent on I/O operations

The time spent determining if I/O is complete

So, Time total

= Time compute

+ Time device

+ Time overhead

6

operating systems

Performance

When the device driver polls

Time total

= Time compute

+ Time device

+ Time overhead

Time overhead

= The period of time between the point where the device completes the operation and the point where the polling loop determines that the operation is complete. This is generally just a few instruction times.

Note that when the device driver polls, no other process can use the cpu. Polling consumes the cpu.

7

Are you done yet?

8

operating systems

Performance

When the device driver uses interrupts

Time total

= Time compute

+ Time device

+ Time overhead

When the device driver uses interrupts

Time overhead

= Time handler

+ Time ready

Time

Time handler ready is the time spent in the interrupt handler is the time the process waits for the cpu after it has completed its I/O, while another process uses the CPU.

9

operating systems process

For simplicity’s sake assume processes of the following form: Each process computes for a long while and then writes its results to a file.

We will ignore the time taken to do a context switch.

Time compute

Request an

I/O operation

Time compute

I/O controller

Time device

10

operating systems

Proc 1

Polling Case

Time overhead

Time compute

Time device

Time compute

Time compute

Proc 2

Time device

Time overhead

Time compute

In the polling case, the process starts the I/O operation, and then continually loops, asking the device if it is done.

11

Interrupt Case

operating systems

Time interrupt handler

Time overhead

Time device

Time compute Proc 1

Time compute

Time compute

Proc 2

In the interrupt case, the process starts the I/O operation, and then blocks. When the I/O is done, the os will get an interrupt.

Time device

12

Which gives better system throughput?

* Polling

* Interrupts

Which gives better application performance?

* Polling

* Interrupts

If you were developing an operating system, would you choose interrupts or polling?

13

operating systems

User space

Kernel

Buffering Issues

Read from the disk

Into user memory

Assume that you are using interrupts…

What problems Exist in this situation?

14

operating systems

User space

Kernel

Buffering Issues

Read from the disk

Into user memory

Assume that you are using interrupts…

What problems Exist in this situation?

The process cannot be completely swapped out of memory. At least the page containing the addresses into which the data is being written must remain in real memory.

15

operating systems

User space

Kernel

Buffering Issues

Read from the disk into kernel buffer.

When the buffer is full, transfer to memory in user space.

16

operating systems

User space

Kernel

Buffering Issues

We can now swap the user processor out

While the I/O completes.

What problems Exist in this situation?

1. The O/S has to carefully keep track of the assignment of system buffers to user processes.

2. There is a performance issue when the user process is not in memory and the O/S is ready to transfer its data to the user process. Also, the device must wait while data is being transferred.

3. The swapping logic is complicated when the swapping operation uses the same disk drive for paging that the data is being read from.

17

operating systems

User space

Kernel

Buffering Issues

Some of the performance issues can be addressed by double buffering. While one buffer is being transferred to the user process, the device is reading data into a second buffer.

18

operating systems

Networking may involve many copies

19

operating systems

Disk Scheduling

Because Disk I/O is so important, it is worth our time to investigate some of the issues involved in disk I/O.

One of the biggest issues is disk performance.

20

seek time is the time required for the read head to move to the track containing the data to be read.

21

rotational delay or latency, is the time required for the sector to move under the read head.

22

operating systems

Performance Parameters

Wait for device

Wait for

Channel seek rotational delay

(latency) data transfer

Device busy

Seek time is the time required to

Rotational delay is the time required for the data on

T t delay will be 8.3ms.

23

operating systems

Data Organization vs.

Performance

Consider a file where the data is stored as compactly as possible, in this case the file occupies all of the sectors on

8 adjacent tracks

(32 sectors x 8 tracks = 256 sectors total).

The time to read the first track will be average seek time rotational delay read 32 sectors

20 ms

8.3 ms

16.7 ms

45ms

Assuming that there is essentially no seek time on the remaining tracks, each successive track can be read in 8.3 + 16.7 ms = 25ms.

Total read time = 45ms + 7 * 25ms = 220ms = 0.22 seconds

24

operating systems

If the data is randomly distributed across the disk:

For each sector we have average seek time rotational delay read 1 sector

20 ms

8.3 ms

0.5 ms

28.8 ms

Total time = 256 sectors * 28.8 ms/sector = 7.73 seconds

Random placement of data can be a problem when multiple processes are accessing the same disk.

25

operating systems

In the previous example, the biggest factor on performance is ?

Seek time!

To improve performance, we need to reduce the average seek time.

26

Queue operating systems

Request

Request

Request

Request

If requests are scheduled in random order, then we would expect the disk tracks to be visited in a random order.

27

Queue operating systems

Request

Request

Request

Request

First-come, First-served

Scheduling

If there are few processes competing for the drive, we can hope for good performance.

•If there are a large number of processes competing for the drive, then performance approaches the random scheduling case.

28

operating systems

While at track 15, assume some random set of read requests -- tracks 4, 40, 11, 35, 7 and 14

Track

40

30

20

10

Head Path

15 to 4

4 to 40

40 to 11

11 to 35

35 to 7

7 to 14

Tracks Traveled

11 steps

36 steps

29 steps

24 steps

28 steps

7 steps

135 steps

Steps

50 100

29

operating systems

Queue

Request

Request

Request

Request

Shortest Seek Time First

Always select the request that requires the shortest seek time from the current position.

30

operating systems

While at track 15, assume some random set of read requests -- tracks 4, 40, 11, 35, 7 and 14

Track

Shortest Seek Time First

Head Path Tracks Traveled

40

30

20

10

Problem?

50

Steps

100

In a heavily loaded system, incoming requests with a shorter seek time will constantly push requests with long seek times to the end of the queue. This results in what is called “Starvation”.

31

Queue operating systems

Request

Request

Request

Request

The elevator algorithm

(scan-look)

Search for shortest seek time from the current position only in one direction.

Continue in this direction until all requests have been satisfied, then go the opposite direction.

In the scan algorithm, the head moves all the way to the first (or last) track with a request before it changes direction.

32

operating systems

40

30

20

10

While at track 15, assume some random set of read requests

Track 4, 40, 11, 35, 7 and 14. Head is moving towards higher numbered tracks.

Track

Scan-Look

Head Path Tracks Traveled

Steps

50 100

33

Which algorithm would you choose if you were implementing an operating system? Issues to consider when selecting a disk scheduling algorithm:

Performance is based on the number and types of requests.

What scheme is used to allocate unused disk blocks?

How and where are directories and i-nodes stored?

How does paging impact disk performance?

How does disk caching impact performance?

34

operating systems

Disk Cache

The disk cache holds a number of disk sectors in memory.

When an I/O request is made for a particular sector, the disk cache is checked. If the sector is in the cache, it is read. Otherwise, the sector is read into the cache.

35

operating systems

Replacement Strategies

Least Recently Used replace the sector that has been in the cache the longest, without being referenced.

Least Frequently Used replace the sector that has been used the least

36

RAID

Redundant Array of Independent Disks

• Push Performance

• Add reliability

37

operating systems strip 0 strip 1 strip 2 strip 3 strip 4 strip 5 strip 6 strip 7 strip 8 strip 9 strip 10 strip 11 o o o

Logical Disk

RAID Level 0: Striping

Disk Management

Software

Physical

Drive 1 strip 0 strip 2 strip 4 strip 6 o o o

Physical

Drive 2 strip 1 strip 3 strip 5 strip 7 o o o

A Stripe

38

operating systems strip 0 strip 1 strip 2 strip 3 strip 4 strip 5 strip 6 strip 7 strip 8 strip 9 strip 10 strip 11 o o o

RAID Level 1: Mirroring

High Reliability

Physical

Drive 1

Disk Management

Software

Physical

Drive 2

Physical

Drive 3

Logical Disk

Physical

Drive 4

39

operating systems strip 0 strip 1 strip 2 strip 3 strip 4 strip 5 strip 6 strip 7 strip 8 strip 9 strip 10 strip 11 o o o

Logical Disk

RAID Level 3: Parity

High Throughput

Physical

Drive 1

Physical

Drive 2

Physical

Drive 3

Physical

Drive 4

Disk Management

Software parity

40

Thinking About What You

Have Learned

41

operating systems

Suppose that 3 processes, p1, p2, and p3 are attempting to concurrently use a machine with interrupt driven I/O. Assuming that no two processes can be using the cpu or the physical device at the same time, what is the minimum amount of time required to execute the three processes, given the following (ignore context switches):

Process

1

Time compute

Time device

10 50

2 30 10

3 15 35

42

Process

1

Time compute

Time device

10 50

2 30 10

3 15 35 p3

P1 p2

0 10 20 30 40 50 60 70 80 90 100 110 120 130

105

43

Consider the case where the device controller is double buffering I/O.

That is, while the process is reading a character from one buffer, the device is writing to the second.

What is the effect on the running time of the process if the process is

I/O bound and requests characters faster than the device can provide them?

The process reads from buffer A.

It tries to read from buffer B, but the device is still reading. The process blocks until the data has been stored in buffer B. The process wakes up and reads the data, then tries to read Buffer A.

Double buffering has not helped performance.

Process

A Device

Controller

B

44

Consider the case where the device controller is double buffering I/O.

That is, while the process is reading a character from one buffer, the device is writing to the second.

What is the effect on the running time of the process if the process is

Compute bound and requests characters much slower than the device can provide them?

The process reads from buffer A.

It then computes for a long time.

Meanwhile, buffer B is filled. When

The process asks for the data it is already there. The process does not have to wait and performance improves.

Process

A Device

Controller

B

45

Suppose that the read/write head is at track is at track 97, moving toward the highest numbered track on the disk, track 199. The disk request queue contains read/write requests for blocks on tracks

84, 155, 103, 96, and 197, respectively.

How many tracks must the head step across using a FCFS strategy?

46

Suppose that the read/write head is at track is at track 97, moving toward the highest numbered track on the disk, track 199. The disk request queue contains read/write requests for blocks on tracks

84, 155, 103, 96, and 197, respectively.

199

150

100

50

Track

How many tracks must the head step across using a FCFS strategy?

97 to 84

84 to 155

155 to 103

103 to 96

96 to 197

13 steps

71 steps

52 steps

7 steps

101 steps

244 steps

Steps

100 200 47

Suppose that the read/write head is at track is at track 97, moving toward the highest numbered track on the disk, track 199. The disk request queue contains read/write requests for blocks on tracks

84, 155, 103, 96, and 197, respectively.

How many tracks must the head step across using an elevator strategy?

48

Suppose that the read/write head is at track is at track 97, moving toward the highest numbered track on the disk, track 199. The disk request queue contains read/write requests for blocks on tracks

84, 155, 103, 96, and 197, respectively.

199

150

100

50

Track

How many tracks must the head step across using an elevator strategy?

97 to 103

103 to 155

155 to 197

197 to 199

199 to 96

96 to 84

6 steps

52 steps

42 steps

2 steps

103 steps

12 steps

217steps

Steps

100 200 49

In our class discussion on directories it was suggested that directory entries are stored as a linear list. What is the big disadvantage of storing directory entries this way, and how could you address this problems?

Consider what happens when look up a file …

The directory must be searched in a linear way.

50

Which file allocation scheme discussed in class gives the best performance? What are some of the concerns with this approach?

Contiguous allocation schemes gives the best performance.

Two big problems are:

* Finding space for a new file (it must all fit in contiguous blocks)

* Allocating space when we don’t know how big the file will be, or handling files that grow over time.

51

What is the difference between internal and external fragmentation?

Internal fragmentation occurs when only a portion of a

File block is used by a file.

External fragmentation occurs when the free space on a disk does not contain enough space to hold a file.

52

Linked allocation of disk blocks solves many of the problems of contiguous allocation, but it does not work very well for random access files. Why not?

To access a random block on disk, you must walk

Through the entire list up to the block you need.

53

Linked allocation of disk blocks has a reliability problem. What is it?

If a link breaks for any reason, the disk blocks after

The broken link are inaccessible.

54

Download