Você está na página 1de 12

04/10/2021

Dispositivos de
Entrada e Saída
Sist. Operacionais Abertos e Mobile
Prof. Leandro Fernandes

Processo
Modo Usuário

Camadas de Operações de E/S


SOFTWARE

comunicação: Sistema de
Arquivos
Independente
do Dispositivo

entre S.O. e
Modo Kernel

Subsistema de E/S

dispositivos de Device drivers


E/S Dependente
do Dispositivo
Controladores
HARDWARE

Dispositivo de E/S

1
04/10/2021

Princípios de Software
33

• Organizar o software como uma série de


Gerência camadas facilita a independência dos
de E/S dispositivos.
• Camadas mais baixas apresentam detalhes de
hardware:
• Drivers e manipuladores de interrupção.
• Camadas mais altas apresentam interface
para o usuário:
• Aplicações de Usuário;
• Chamadas de Sistemas;
• Software Independente de E/S ou Subsistema
de E/S do Kernel.

34

2
04/10/2021

Subsistema de E/S

• Realizar as funções comuns a qualquer dispositivos;


• Prover uma interface uniforme para o usuário;
• Fazer o escalonamento de E/S;
• Atribuir um nome lógico a partir do qual o dispositivo é identificado;
• Ex. UNIX: /dev
• Bibliotecas de E/S que são utilizadas pelos programas dos usuários.
• Chamadas ao sistema (system calls).
• Gerenciar a alocação, uso e liberação dos dispositivos em relação a
acessos concorrentes;

35

Subsistema de E/S

• Prover buffering: ajuste entre a velocidade e a quantidade de dados


transferidos;
• Área de armazenamento temporário de dados
• Ajustar velocidades entre produtores e consumidores
• Ex: transmissão de dados via modem (baixa velocidade)
• Ajustar unidades de transferência de dados de tamanho diferentes
• Ex: pilha de protocolo de redes
• Manter semântica de cópia única
• Liberar a aplicação para manipular uma área de dados sem interferir com o que está
sendo lido/escrito
• Permitir que processos/páginas sofram swap
• Buffer não faz parte do espaço de endereçamento de um processo

36

3
04/10/2021

Subsistema de E/S

• Define um tamanho do bloco independente do dispositivo.


• Reportar erros e proteger os dispositivos contra acessos indevidos:
• PROGRAMAÇÃO: tentar efetuar leitura de um dispositivo de saída (impressora
ou vídeo);
• E/S: tentar imprimir em uma impressora desligada ou sem papel;
• MEMÓRIA: escrita em endereços inválidos.
• Cache de dados: armazenar na memória um conjunto de dados
frequentemente acessados.
• Obs: buffer não é sinônimo de cache, embora as caches sejam um tipo de
buffer

37

Subsistema de E/S

Características quanto a Características quanto aos


Transferência de dados Tipos de Dispositivos:
SÍNCRONA (bloqueante): COMPARTILHÁVEIS:
• Requer bloqueio até que os • Podem ser utilizados por vários
dados estejam prontos para usuários ao mesmo tempo.
transferência. • Ex: disco rígido;
ASSÍNCRONA (não-bloqueante): DEDICADOS:
• Transferências acionadas por • Podem ser utilizados por apenas
interrupções. um usuário de cada vez.
• Modo mais comum. • Ex: impressora, unidade de fita.

38

4
04/10/2021

• Controlam o funcionamento dos dispositivos em


Drivers relação a sequência de comandos escritos/lidos
nos registradores da controladora.
• Contém todo o código dependente do dispositivo.
• São gerenciados pelo kernel do S.O. e carregados
dinamicamente.
• Dispositivos diferentes usam drivers diferentes;
entretanto classes de dispositivos podem ter o
mesmo driver.
• Drivers defeituosos podem causar problemas no
kernel do S.O.

39

• É necessário ser reentrante


Drivers • Pode ser chamado uma segunda vez sem ter concluído
a primeira chamada
• Constituído de duas partes:
• First Level Interrupt Handler (FLIH)
• Second Level Interrupt Handler (SLIH)

INT
Estruturas de
Registradores Tratador dados Ações do Solicitação
da Controladora da INT compartilhadas Driver ou Resultado
(filas de eventos)

FLIH SLIH

40

5
04/10/2021

• FIRST LEVEL INTERRUPT HANDLER (FLIH):


Drivers • Assíncrona: ocorrência INT de hardware
• Deve atender rapidamente a interrupção (INT
estão desabilitadas)
• Recupera informações críticas
• Escalona SLIH
• No Linux é chamado de upper half ou top half
• SECOND LEVEL INTERRUPT HANDLER (SLIH):
• Aguarda pelo escalonamento ou tratamento
pelo núcleo do S.O.
• Trata os eventos da fila (consumidor)
• No Linux é chamado de bottom half ou low half

41

• Um processo emite uma chamada de sistema bloqueante (ex: read)


para um arquivo que já aberto (open).
• O código da chamada de sistema verifica os parâmetros.
• Se os parâmetros estiverem corretos e o arquivo já estiver no buffer
(cache), os dados retornam ao processo e a E/S é concluída.
• Caso os parâmetros estejam corretos, mas o arquivo não esteja no
buffer, a E/S precisa ser realizada.
• A E/S é escalonada;
• Subsistema envia pedido para o driver;

Ciclo de E/S (realização de uma operação)


42

6
04/10/2021

• Driver aloca espaço de buffer, escalona E/S e envia o comando para a


controladora do dispositivo escrevendo nos seus registradores de
controle.
• Driver pode usar a DMA.
• A controladora do dispositivo opera o hardware, isto é, o dispositivo
propriamente dito.
• Após a conclusão da E/S, uma interrupção é gerada;
• A rotina de tratamento de interrupções correspondente recebe o sinal
via vetor de interrupção, armazena os dados, sinaliza o driver e retorna
da interrupção.

Ciclo de E/S (realização de uma operação)


43

• O driver recebe o sinal, determina qual pedido de E/S foi finalizado,


determina o status e sinaliza que o pedido está concluído;
• O kernel transfere os dados ou o código de retorno para o espaço de
endereçamento do processo que requisitou a E/S, retirando o processo
da fila de bloqueados e colocando-o na fila de prontos.
• Quando o escalonador chaveia o processo para a CPU, ele retoma a sua
execução no ponto a partir da chamada ao sistema.

Ciclo de E/S (realização de uma operação)


44

7
04/10/2021

Discos
Um elemento
importante de E/S

45

Discos magnéticos
• Constituídos de vários discos empilhados:
• Cada superfície é dividida em trilhas;
• Cada trilha é dividida em segmentos
angulares (arcos) denominados de setores ou
blocos (de 512 bytes a 32KB);
• Um conjunto de trilhas em diferentes
superfícies e que estão a mesma distância do
eixo forma um cilindro;
• Cabeças de leitura e gravação;
• Motores para rotação dos discos e para a
movimentação dos cabeçotes.

46

8
04/10/2021

Discos magnéticos
Grande evolução com relação a:
• VELOCIDADE DE ACESSO (seek): tempo de
deslocamento do cabeçote até o cilindro
correspondente na trilha a ser acessada;
• TAXA DE TRANSFERÊNCIA: tempo necessário
para a transferência (leitura/escrita) dos
dados;
• Capacidade de armazenamento;
• Preço.

47

Entrelaçamento (interleaving)

• Técnica para reduzir o tempo de acesso.


• Setores são numerados com um espaço entre eles;
• Entre o setor k e o setor k+1 existem n (fator de entrelaçamento)
setores;
• Número n depende da velocidade do processador, do barramento, da
controladora e da velocidade de rotação do disco.

7 0 7 0 5 0
Sem entrelaçamento 2 3
6 1 3 4
Entrelaçamento simples
Entrelaçamento duplo 5 2 6 1 7 6
4 3 2 5 4 1

48

9
04/10/2021

• Fatores que influenciam tempo para


Drivers de leitura/escrita no disco:
Disco • Velocidade de acesso (seek) – tempo para o
movimento do braço até o cilindro;
• Latência de rotação (delay) – tempo para
posicionar o setor na cabeça do disco;
• Tempo da transferência dos dados;
• Tempo de acesso:
• Tempo necessário para o cabeçote se posicionar
no setor de escrita/leitura.
• 𝑇𝐴𝑐𝑒𝑠𝑠𝑜 = 𝑇𝑆𝑒𝑒𝑘 + 𝑇𝐿𝑎𝑡ê𝑛𝑐𝑖𝑎 + 𝑇𝑇𝑟𝑎𝑛𝑠𝑓𝑒𝑟ê𝑛𝑐𝑖𝑎

49

• Algoritmos de escalonamento no disco:


Drivers de • FCFS – First-Come First-Served (tipo FIFO);
Disco • SSF – Shortest Seek First;
• Elevator (também conhecido como SCAN);
• A escolha do algoritmo depende do número
e do tipo de pedidos;
• O driver mantém uma lista encadeada com
as requisições para cada cilindro.

50

10
04/10/2021

FCFS

51

SSF

52

11
04/10/2021

Elevator

53

12

Você também pode gostar