LRM Prof. Mantovani ← Aulas da disciplina
Semana 12 · Aula 12 de 14

Gerência de E/S e armazenamento

O subsistema de entrada e saída: buffering e camadas de software, e os algoritmos de escalonamento de disco FCFS, SSTF e SCAN.

📚 Sistemas Operacionais🧪 1 simulador(es)📝 mini-quiz ao final
Objetivos da aula

O que você vai aprender

1

Descrever o subsistema de E/S e o papel do buffering, cache, spooling e DMA.

2

Explicar por que o escalonamento de disco importa.

3

Aplicar FCFS, SSTF e SCAN e calcular o deslocamento do braço.

1 · Motivação

O gargalo invisível

A CPU executa bilhões de instruções por segundo; um disco magnético gasta milissegundos para mover o braço até uma trilha. Essa diferença brutal de velocidade faz da E/S um dos maiores gargalos do sistema.

O subsistema de E/S existe para esconder a complexidade dos dispositivos e, sempre que possível, esconder também a lentidão deles com técnicas como buffering, cache e escalonamento inteligente.

2 · Mapa

Da camada de software ao braço do disco

Camadas de
E/S
Buffering,
cache, DMA
Custo do
seek
FCFS /
SSTF / SCAN

Começamos pela organização em camadas do software de E/S, vemos as técnicas que otimizam transferências e terminamos no escalonamento de disco, com o simulador.

3 · Conceito 1

O subsistema de E/S em camadas

Subsistema de E/S. Conjunto de camadas de software que organizam o acesso aos dispositivos, da aplicação ao hardware, oferecendo uma interface uniforme.
AplicaçãoSoftware de
E/S do SO
Driver do
dispositivo
Controlador
+ hardware
4 · Buffering

Casando velocidades diferentes

Buffering. Uso de uma área de memória temporária para casar velocidades diferentes entre produtor e consumidor (ex.: CPU rápida × disco lento) e permitir transferências em blocos.

Sem buffer, a CPU teria de esperar o dispositivo a cada byte. Com buffer, dados são acumulados e transferidos em lotes, suavizando a diferença de ritmo.

5 · Exemplo

Técnicas de otimização de E/S

TécnicaO que faz
BufferingÁrea temporária que casa velocidades e agrupa transferências
CacheGuarda cópias de dados muito acessados para reuso rápido
SpoolingEnfileira trabalhos para dispositivos compartilhados (ex.: impressora)
DMATransfere dados direto dispositivo↔memória sem ocupar a CPU
6 · Interativo

Stepper: uma transferência com DMA

Passo 1
A CPU programa a controladora DMA: origem (disco), destino (RAM) e tamanho.
Passo 2
A CPU fica livre para executar outras tarefas enquanto a transferência ocorre.
Passo 3
A controladora DMA move os dados do disco para a memória, bloco a bloco.
Passo 4
Concluída a transferência, a controladora gera uma interrupção.
Passo 5
A CPU atende a interrupção e sabe que os dados já estão na RAM. Sem cópia byte a byte pela CPU.
7 · Conceito 2

Por que escalonar o disco

Seek (busca). Tempo para mover o braço do disco até a trilha desejada. É a componente dominante do tempo de acesso em discos magnéticos.

Como o seek domina, reordenar as requisições pendentes para reduzir o movimento total do braço melhora muito a vazão.

8 · O custo do braço

Tempo de acesso em discos magnéticos

O tempo de acesso a um disco magnético tem três partes:

  • Seek time: mover o braço até a trilha (o mais caro).
  • Latência rotacional: esperar o setor passar sob a cabeça.
  • Tempo de transferência: ler/escrever os dados.
🔑
O objetivo do escalonamento de disco é minimizar o tempo total de seek, atendendo às requisições pendentes em uma ordem mais eficiente que a de chegada.
9 · Analogia

O elevador do prédio

🛗 Analogia
O SCAN é um elevador: em vez de atender cada chamada na ordem em que foi feita (subindo e descendo sem parar), ele sobe atendendo todos os andares pedidos até o topo, depois desce atendendo o resto. Muito menos deslocamento total — e ninguém fica esperando para sempre.
10 · Comparação

FCFS, SSTF e SCAN

AlgoritmoRegraObservação
FCFSAtende na ordem de chegadaJusto, mas pode mover muito o braço
SSTFAtende a requisição mais próxima da cabeçaMenor seek imediato, mas pode causar inanição
SCAN (elevador)Varre em uma direção e voltaJusto e eficiente, como um elevador
💡
Variantes: C-SCAN (volta direto ao início sem atender na volta, dando espera mais uniforme) e LOOK/C-LOOK (só vai até a última requisição, não até a borda física).
11 · Fluxo

Exemplo numérico de SSTF

Cabeça em 53; fila 98, 183, 37, 122, 14, 124, 65, 67. O SSTF escolhe sempre a mais próxima da posição atual:

5365673714...
⚠️
O SSTF reduz o seek total, mas requisições muito distantes (como 183) podem ficar para o fim e, sob carga, sofrer inanição.
12 · Aprofundamento

E nos SSDs?

Discos de estado sólido (SSD) não têm braço nem rotação: o acesso é eletrônico e o tempo de seek é praticamente constante. Por isso, o escalonamento clássico voltado a minimizar movimento do braço perde sentido neles.

💡
Em SSDs, importam outras questões: paralelismo entre canais, desgaste das células (wear leveling) e a operação de TRIM. O SO usa escalonadores mais simples (ou nenhum reordenamento de seek).
13 · Interativo

Check: qual algoritmo causa inanição?

Qual algoritmo de escalonamento de disco pode deixar requisições distantes da cabeça esperando indefinidamente?

O SSTF sempre escolhe a mais próxima; se novas requisições próximas chegam continuamente, as distantes podem nunca ser atendidas (inanição). FCFS e SCAN garantem atendimento.
14 · Caso prático

Servidor de arquivos sob carga

Um servidor recebe muitas leituras concorrentes de um disco magnético. Com FCFS, o braço ziguezagueia e a vazão cai. Trocando para SCAN, o braço varre o disco ordenadamente e a vazão sobe, com espera mais previsível para os clientes.

Se o mesmo servidor migrar para SSD, o ganho do escalonamento por seek desaparece — o gargalo passa a ser a banda do barramento e o paralelismo interno do dispositivo.

15 · Erros comuns

Onde se erra nas contas

⚠️
Cuidados:
  • No SCAN, lembrar que o braço vai até a borda antes de voltar; no LOOK, só até a última requisição.
  • Confundir SSTF (mais próxima) com SCAN (mantém a direção até o fim).
  • Somar deslocamentos com sinal: use sempre o módulo da diferença entre trilhas.
  • Achar que o algoritmo de disco se aplica igual a SSDs.
16 · Dicas

Para calcular o deslocamento total

Dicas:
  • Liste a sequência de trilhas atendidas e some |trilha_atual − próxima| a cada passo.
  • No SCAN, decida a direção inicial e justifique; ela muda o resultado.
  • FCFS é o baseline: qualquer algoritmo bom deve ter seek total menor ou igual.
17 · Interativo

Reveal: SCAN × C-SCAN

Qual a diferença entre SCAN e C-SCAN, e por que C-SCAN existe?
No SCAN, o braço sobe atendendo, chega à borda e desce atendendo de volta — as trilhas do meio são visitadas duas vezes em pouco tempo, enquanto as extremidades esperam mais. O C-SCAN (circular) sobe atendendo, chega à borda e volta direto ao início sem atender na volta, recomeçando a varredura. Isso dá um tempo de espera mais uniforme entre todas as trilhas, tratando o disco como uma lista circular.
18 · Flashcards

Revisão relâmpago

DMAvirar
Transferência direta dispositivo↔memória sem a CPU copiar byte a byte.
Seek timevirar
Tempo de mover o braço até a trilha; dominante em discos magnéticos.
SSTFvirar
Atende a requisição mais próxima da cabeça; pode causar inanição.
Spoolingvirar
Fila de trabalhos para um dispositivo compartilhado, como a impressora.
19 · Conexões

Ligações com o curso

  • Sistemas de arquivos (aula 11): blocos espalhados de um arquivo geram requisições de seek.
  • Memória virtual (aula 10): faltas de página são E/S de disco; o escalonamento as afeta.
  • Escalonamento de CPU (aula 5): a mesma ideia de reordenar para otimizar uma métrica, agora no braço do disco.
  • Deadlocks (aula 8): dispositivos de E/S são recursos que podem entrar em impasse.
20 · Síntese

O essencial sobre E/S e armazenamento

🔑
Síntese: o subsistema de E/S é organizado em camadas (aplicação, SO, driver, controlador). Buffering, cache, spooling e DMA otimizam as transferências. Em discos magnéticos, o seek domina, e o escalonamento o minimiza: FCFS é justo, SSTF minimiza o seek (com risco de inanição) e SCAN funciona como elevador. Em SSDs, esse escalonamento perde relevância.
+ · Simulador

Meça o braço do disco

Use o simulador de escalonamento de disco abaixo.

Informe a posição inicial da cabeça e a fila de requisições e compare FCFS, SSTF e SCAN. Observe o deslocamento total do braço em cada algoritmo e confirme por que o SSTF tende a ser menor — mas pode adiar requisições distantes.

Mão na massa · colaborativo

Atividade em grupo · Corrida do braço do disco

Em grupos, calculem o deslocamento total para cada algoritmo.

⏱️ 30 min👥 grupos de 3–4🧩 laboratório

Roteiro

  1. Cabeça na trilha 53; fila de requisições: 98, 183, 37, 122, 14, 124, 65, 67.
  2. Calculem o deslocamento total para FCFS e SSTF.
  3. Calculem para SCAN (escolham a direção inicial e justifiquem).
  4. Confiram no simulador e discutam qual teve menor seek total e por quê.
Calculista FCFS/SSTFsoma os deslocamentos
Calculista SCANmonta a varredura
Conferentevalida no simulador
📤 Entrega: Tabela com o deslocamento total de FCFS, SSTF e SCAN para a fila dada.
Teste seu conhecimento

Mini-quiz · Aula 12

20 questões sobre esta aula. Escolha e veja a explicação na hora.

0/20

📌 Resumo — leve isto para a prova

  • O subsistema de E/S é organizado em camadas: aplicação, software de E/S, driver e controlador/hardware.
  • Buffering casa velocidades; cache reusa dados quentes; spooling enfileira; DMA libera a CPU.
  • Em discos magnéticos o seek domina, e o escalonamento de disco o minimiza.
  • FCFS é justo, SSTF minimiza o seek (com risco de inanição) e SCAN/C-SCAN funcionam como elevador.
  • Em SSDs, sem braço nem seek, o escalonamento clássico perde relevância.