30
1/30 Sistemas Operacionais Gestão de entrada/saída - discos rígidos Prof. Carlos Maziero DInf UFPR, Curitiba PR Agosto de 2020

Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

1/30

Sistemas OperacionaisGestão de entrada/saída - discos rígidos

Prof. Carlos Maziero

DInf UFPR, Curitiba PR

Agosto de 2020

Page 2: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

2/30

Conteúdo

1 Discos rígidos

2 Escalonamento de disco

3 Escalonadores no Linux

4 Sistemas RAID

Page 3: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

3/30

Discos rígidos

Dispositivo de armazenamento magnético

Características:

Criado em 1954

Um ou mais discos metálicos

Velocidade de rotação entre 4.200 e 15.000 RPM

Capacidade entre 100s GB e 10 TB

Taxa de transferência entre 0.5 e 2 Gbps

Latência entre 2 e 10 ms

Page 4: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

4/30

Estrutura física

blocos

cabeças

trilhas(cilindros)

setores

Page 5: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

5/30

Estrutura lógica do disco rígidoEstrutura:

Faces (ou cabeças): duas por disco metálico

Trilhas (ou cilindros): faixas concêntricas

Setores: “fatias” angulares

Blocos físicos:

Interseção entre cabeça, trilha e setor

Tamanho fixo de 512 ou 4.096 bytes

Endereçamento dos blocos:

Esquema CHS: Cylinder, Head, Sector (interno)

Esquema LBA: Large Block Array (firmware ou BIOS)

Page 6: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

6/30

Interface de acesso

Padrões de interface do controlador:

Padrão velocidade protocolo aplicação status

IDE 1 Gbit/s paralelo desktops obsoleto

SCSI 2,5 Gbit/s paralelo servidores obsoleto

SATA 6 Gbit/s serial desktops atual

SAS 12 Gbit/s serial servidores atual

Estrutura do driver:

Interação por eventos e DMA

Transfere grupos de blocos físicos (clusters)

Blocos lógicos ou clusters: 512 a 64 K Bytes

Page 7: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

7/30

Escalonamento de acessos

O disco é um dispositivo lento!

Latência rotacional tr ≈ 5ms

Tempo de busca ts ≈ 10ms (seek time)

O disco é um dispositivo sequencial: trata um pedido por vez!

Tratamento dos pedidos de acesso ao disco:

Pedidos dos processos são mantidos em uma fila

A fila é organizada de acordo com um algoritmo

Busca-se desempenho e justiça

Page 8: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

8/30

Algoritmos de escalonamento clássicos

FCFS - First Come, First Served

SSTF - Shortest Seek-Time First

SCAN, C-SCAN, LOOK e C-LOOK (“elevador”)

Exemplo: fila de pedidos de acesso aos blocos:

278, 914, 447, 71, 161, 659, 335Cabeça do disco se encontra no bloco 500

Page 9: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

9/30

Escalonamento FCFS

Atender as requisições na ordem em que foram emitidas.

500222−→ 278

636−→ 914

467−→ 447

376−→ 71

90−→ 161

498−→ 659

324−→ 335

Deslocamento da cabeça: 2.613 blocos

Page 10: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

10/30

Escalonamento FCFS

222

636

467

376

90

498

324

Percurso total = 2.613 blocos

#bloco

t

200 400 600 800 999100 300 500 700 9000

500

278

914

447

71

161

659

335

Page 11: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

11/30

Escalonamento SSTF

Shortest Seek Time First: menor tempo de busca primeiro.

Atender o pedido que está mais próximo da cabeça.

50053−→ 447

112−→ 335

57−→ 278

117−→ 161

90−→ 71

588−→ 659

255−→ 914

Deslocamento da cabeça: 1.272 blocos

Page 12: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

12/30

Escalonamento SSTF

588

53

90

255

112

57

117

Percurso total = 1.272 blocos

#bloco

t

200 400 600 800 999100 300 500 700 9000

500

278

335

447

71

161

659

914

Risco de inanição (starvation) para blocos distantes

Page 13: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

13/30

Escalonamento SCAN

A cabeça “varre” (scan) o disco nos dois sentidos

Também chamado de “algoritmo do elevador”

Bom desempenho e mais justiça no atendimento dos pedidos

500159−→ 659

255−→ 914

85−→ 999

552−→ 447

112−→ 335

57−→ 278

117−→ 161

90−→ 71

Deslocamento da cabeça: 1.337 blocos

Page 14: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

14/30

Escalonamento SCAN

255

117

112

159

85

552

57

Percurso total = 1.337 blocos

#bloco

t

200 400 600 800 999100 300 500 700 9000

447

335

278

161

71

914

659

500

90

Page 15: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

15/30

Escalonamento C-SCAN

Variante “circular” do algoritmo SCAN.

Varre o disco somente em um sentido.

Tempo de espera mais homogêneo aos pedidos pendentes.

500159−→ 659

255−→ 914

85−→ 999

999−→ 0

71−→ 71

90−→ 161

117−→ 278

57−→ 335

112−→ 447

Deslocamento da cabeça: 1.776 blocos.

Page 16: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

16/30

Escalonamento C-SCAN

255

117

112

159

85

999

57

Percurso total = 1.776 blocos

#bloco

t

200 400 600 800 999100 300 500 700 9000

447

335

278

161

71

914

659

500

90

71

Page 17: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

17/30

Escalonador LOOK

Otimização do algoritmo SCAN

A cabeça não avança até o final do disco

500159−→ 659

255−→ 914

467−→ 447

112−→ 335

57−→ 278

117−→ 161

90−→ 71

Deslocamento da cabeça: 1.257 blocos

Page 18: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

18/30

Escalonamento LOOK

255

117

112

159

467

57

Percurso total = 1.257 blocos

#bloco

t

200 400 600 800 999100 300 500 700 9000

447

335

278

161

71

914

659

500

90

Page 19: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

19/30

Escalonador C-LOOK

Otimização do algoritmo C-SCAN

500159−→ 659

255−→ 914

843−→ 71

90−→ 161

117−→ 278

57−→ 335

112−→ 447

Deslocamento da cabeça: 1.644 blocos

Page 20: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

20/30

Escalonamento C-LOOK

255

117

112

159

843

57

Percurso total = 1.644 blocos

#bloco

t

200 400 600 800 999100 300 500 700 9000

447

335

278

161

659

500

90

914

71

Page 21: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

21/30

Comparativo de escalonadores#bloco

t

200

400

600

800

999

0

500

71

161

278

335

447

659

914

FCFS

SSTF

SCAN

C-SCAN

LOOK

C-LOOK

Page 22: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

22/30

Escalonadores de disco no Linux

NoopBaseado em FCFSAgrupa pedidos ao mesmo bloco ou blocos adjacentesUsado em SSD e sistemas RAID

Deadline e AnticipatoryAssocia prazos aos pedidos (500 ms leitura, 5s escrita)Baseado no algoritmo C-SCAN, priorizando os prazosAnticipatory: agrupa leituras do mesmo processo

CFQ - Completely fair queueingPedidos são distribuídos em várias filas (64 por default)Cada fila tem uma fatia de tempo para acessar o disco

Consultar /sys/block/[device]/queue/scheduler

Page 23: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

23/30

Sistemas RAID

Problemas dos discos rígidos:

Discos são lentos

Discos podem falhar, levando à perda de dados

Estratégia RAID: Redundant Array of Independent Disks

Criar um disco lógico a partir de discos físicos

Operações em paralelo permitem maior desempenho

Redundância (cópias) permitem tolerar falhas

Implementado em hardware dedicado ou so�ware

Opera com blocos (abaixo dos arquivos)

Page 24: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

24/30

Níveis RAID

RAID 0 - soma de discos (linear ou stripping)

RAID 1 - espelhamento de discos

RAID 2 - redundância de bits (não usado)

RAID 3 - redundância de bytes (não usado)

RAID 4 - redundância de blocos, disco de paridade

RAID 5 - redundância de blocos, blocos de paridadedistribuídos

RAID 6 - dois blocos de paridade, para tolerar mais erros

RAID 1+0 ou 0+1 - combinações de RAID 0 e 1

...

Page 25: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

25/30

RAID 0 linear

Estratégia: concatena discos em sequência

Controladora RAID

disco lógicodisco físico 0 (dados) disco físico 1 (dados) disco físico 2 (dados)

bloco 0 bloco 1

bloco 2 bloco 3

bloco 4 bloco 5

bloco 6 bloco 7

bloco 8 bloco 9

bloco 10 bloco 11

bloco 12 bloco 13

bloco 14 bloco 15

bloco 16 bloco 17

bloco 18 bloco 19

bloco 20 bloco 21

bloco 22 bloco 23

d0.b0 d0.b1

d0.b2 d0.b3

d0.b4 d0.b5

d0.b6 d0.b7

d1.b0 d1.b1

d1.b2 d1.b3

d1.b4 d1.b5

d1.b6 d1.b7

d2.b0 d2.b1

d2.b2 d2.b3

d2.b4 d2.b5

d2.b6 d2.b7

Mais espaço e velocidade, sem redundância.

Page 26: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

26/30

RAID 0 striping

Estratégia: concatena discos em faixas de blocos

Controladora RAID

disco lógicodisco físico 0 (dados) disco físico 1 (dados) disco físico 2 (dados)

bloco 0 bloco 1

bloco 2 bloco 3

bloco 4 bloco 5

bloco 6 bloco 7

bloco 8 bloco 9

bloco 10 bloco 11

bloco 12 bloco 13

bloco 14 bloco 15

bloco 16 bloco 17

bloco 18 bloco 19

bloco 20 bloco 21

bloco 22 bloco 23

d0.b0 d0.b1

d0.b2 d0.b3

d0.b4 d0.b5

d0.b6 d0.b7

d1.b0 d1.b1

d1.b2 d1.b3

d1.b4 d1.b5

d1.b6 d1.b7

d2.b0 d2.b1

d2.b2 d2.b3

d2.b4 d2.b5

d2.b6 d2.b7

faixas

Desempenho mais equilibrado entre discos.

Page 27: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

27/30

RAID 1

Estratégia: espelhamento (cópias do disco)

Controladora RAID

disco lógico

disco físico 0 (dados) disco físico 1 (espelho)

bloco 0 bloco 1

bloco 2 bloco 3

bloco 4 bloco 5

bloco 6 bloco 7

d0.b0 d0.b1

d0.b2 d0.b3

d0.b4 d0.b5

d0.b6 d0.b7

d1.b0 d1.b1

d1.b2 d1.b3

d1.b4 d1.b5

d1.b6 d1.b7

Boa velocidade, tolera falhas de disco, mas tem alto custo.

Page 28: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

28/30

RAID 4

Estratégia: disco com blocos de paridade dos demais discos

Controladora RAID

disco lógicodisco físico 0 (dados) disco físico 1 (dados) disco físico 3 (paridade)

d0.b0 d0.b1

d0.b2 d0.b3

d0.b4 d0.b5

d0.b6 d0.b7

d1.b0 d1.b1

d1.b2 d1.b3

d1.b4 d1.b5

d1.b6 d1.b7

par(b0) par(b1)

par(b2) par(b3)

par(b4) par(b5)

par(b6) par(b7)

disco físico 2 (dados)

d2.b0 d2.b1

d2.b2 d2.b3

d2.b4 d2.b5

d2.b6 d2.b7

bloco 0 bloco 1

bloco 2 bloco 3

bloco 4 bloco 5

bloco 6 bloco 7

bloco 8 bloco 9

bloco 10 bloco 11

bloco 12 bloco 13

bloco 14 bloco 15

bloco 16 bloco 17

bloco 18 bloco 19

bloco 20 bloco 21

bloco 22 bloco 23

Não é usado, base conceitual do RAID 5.

Page 29: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

29/30

RAID 5

Estratégia: blocos de paridade espalhados nos discos

Controladora RAID

disco lógicodisco físico 0

(dados + paridade)disco físico 1

(dados + paridade)disco físico 2

(dados + paridade)

bloco 0 bloco 1

bloco 2 bloco 3

bloco 4 bloco 5

bloco 6 bloco 7

bloco 8 bloco 9

bloco 10 bloco 11

bloco 12 bloco 13

bloco 14 bloco 15

bloco 16 bloco 17

bloco 18 bloco 19

bloco 20 bloco 21

bloco 22 bloco 23

d0.b0 d0.b1

d0.b2 d0.b3

d0.b4 d0.b5

par(b6) par(b7)

d1.b0 d1.b1

d1.b2 d1.b3

par(b4) par(b5)

d1.b6 d1.b7

d2.b0 d2.b1

par(b2) par(b3)

d2.b4 d2.b5

d2.b6 d2.b7

faixas

disco físico 3(dados + paridade)

par(b0) par(b1)

d2.b2 d2.b3

d2.b4 d2.b5

d2.b6 d2.b7

Mais velocidade com tolerância a falhas e baixo custo.

Page 30: Sistemas Operacionais - Gestão de entrada/saída - discos rígidos …wiki.inf.ufpr.br/.../fetch.php?media=socm:socm-slides-21.pdf · 2019-05-31 · Trilhas (ou cilindros): faixas

30/30

Comparação de níveis RAID

Considerando arranjos com N discos de tamanho T :

Estratégia Leitura Escrita Espaço Falhas Discos

RAID 0 linear até N até N N × T 0 ≥ 2

RAID 0 strip até N até N N × T 0 ≥ 2

RAID 1 até N 1 T N − 1 ≥ 2

RAID 4 até N − 1 1 (N − 1) × T 1 ≥ 3

RAID 5 até N 1 (N − 1) × T 1 ≥ 3

RAID 6 até N 1 (N − 2) × T 2 ≥ 4