• Nenhum resultado encontrado

Entrada e saída

N/A
N/A
Protected

Academic year: 2022

Share "Entrada e saída"

Copied!
36
0
0

Texto

(1)

EEL770 – Sistemas Operacionais

Entrada e saída

Pedro Cruz

(2)

Ante-antepenúltima (???) aula

• Sistemas de arquivos

– Tipos de arquivos

• Regulares

• Diretórios

• Especiais de caracteres

• Especiais de blocos – Atributos de arquivos – Operações com arquivos – Diretórios

(3)

Ante-antepenúltima (???) aula

• Implementação de sistemas de arquivos

– Alocação contígua

– Alocação por lista encadeada

• Problema com tamanho do bloco

• Problema do acesso aleatório

– Alocação por lista encadeada usando tabela em memória

• Problema da tabela – I-nodes (nós-índice)

• Problema do número de índices por bloco – Solução?

(4)

Entrada e saída

• Processos precisam realizar entrada e saída de dados

– Entrada

• Variáveis de entrada

• Eventos de interfaces com usuário

• Eventos de interfaces com outras máquinas – Saída

• Resultados de cálculos

• Eventos para interfaces com usuário

• Eventos para interfaces com outras máquinas

(5)

Dispositivos de entrada e saída

• Orientados a bloco

– Blocos são endereçáveis

• Busca é possível

• Orientados a caractere

– Caracteres são um fluxo

• Busca é impossível

(6)

Controladores de dispositivo

• Peça de hardware

– Converte sinais entre processador e dispositivo

• Padrões definidos

• Sinais esperados pelos dispositivos – Pode ser interno ou externo

• Placa mãe

• Integrado ao dispositivo

(7)

Comunicação com dispositivos

• Dispositivos possuem registradores e buffers

• Comunicação através da leitura e escrita

– Espaço de portas E/S

– Entrada e saída mapeadas na memória

(8)

Portas E/S

• Instruções especiais para leitura e escrita de portas E/S

– Proibidas do modo usuário

IN REG, PORT

OUT PORT, REG

(9)

Mapeamento de E/S na memória

• Registradores de dispositivos são mapeados em memória

• Endereços especiais correspondem a dispositivos

• Busca por endereço de registrador encontra dispositivo

– Barramento “entende” que deve buscar um dispositivo

• Vantagens:

– Instruções especiais não são usadas

– Dispositivos são protegidos com mecanismos da memória – Referenciar a memória é referenciar dispositivos

TEST PORT_3

(10)

Acesso Direto à Memória

( Direct Memory Access - DMA)

• Sem DMA

CPU

Disco Controlador

De Disco 1. Solicita dados

2. Executa leitura

3. Recebe dados 4. Executa interrupção

e envia dados

5. Escreve dados na memória principal

(11)

Acesso Direto à Memória

( Direct Memory Access - DMA)

• Com DMA

CPU

RAM

Disco Controlador

DiscoDe 1. Programa o

DMA

3. Executa leitura

4. Recebe dados 7. Executa

interrupção

5. Escreve dados na memória principal Controlador

DMADe

2. Solicita dados

6. Informa conclusão

(12)

Problemas com DMA

• Compete com a CPU pelo barramento

– DMA geralmente tem preferência

• Dispositivos são lentos

• Precisa de endereços físicos da memória

– CPU solicita já com endereço físico – DMA tem acesso à MMU

• Adiciona custo ao projeto

– Se a CPU consegue realizar bem o trabalho, custo inútil

• No pain, no pain

(13)

Interrupções

1. Controlador de interrupções recebe sinal de interrupção

1. Se necessário, há fila de interrupções

2. Controlador repassa interrupção à CPU 3. CPU armazena seu estado atual

1. Coloca registradores em uma pilha

4. CPU busca rotina no vetor de interrupções

5. CPU executa rotina de tratamento da interrupção

6. CPU retorna à execução que foi interrompida

(14)

Interrupções (im)precisas

• CPUs podem ter paralelismo interno

– Instruções não estão totalmente completas simultaneamente

• Interrupção precisa

– Program counter é salvo em lugar conhecido – Instruções antes do PC estão completas

– Instruções após PC não estão completas

– Instrução apontada pelo PC tem estado conhecido

• Interrupção imprecisa

– Não é precisa

(15)

Interrupções imprecisas - solução

• “Estado” salvo é maior do que o das interrupções precisas

• Reiniciar o código requer iniciar diversos registradores

• Retrocompatibilidade

– Interrupção aguarda término de instruções iniciadas

(16)

Software para

Entrada e saída (E/S)

• Objetivos

– Independência de dispositivo – Tratamento de erros

• Arquitetura

– Camadas

(17)

Modos

• E/S programada

• E/S orientada a interrupções

• E/S utilizando DMA ( Direct Memory Access )

(18)

E/S Programada

• Processo coloca memória à disposição do operacional

– Cheia se for saída – Vazia se for entrada

• Processo de usuário realiza chamada de sistema

– Bloqueante

• Operacional entrega/recebe dados de dispositivo

1. Entrega uma palavra

2. Espera dispositivo ficar pronto 3. Volta a 1

(19)

E/S orientada a interrupções

• Processo coloca memória à disposição do operacional

– Cheia se for saída – Vazia se for entrada

• Processo de usuário realiza chamada de sistema

– Bloqueante para o processo

• Operacional entrega/recebe dados de dispositivo

1. Entrega uma palavra

2. Executa outro processo até ser chamado por interrupção 3. Volta a 1

(20)

E/S utilizando DMA

• Processo coloca memória à disposição do operacional

• Processo de usuário realiza chamada de sistema

– Bloqueante para o processo

• Operacional configura controlador de DMA

• Operacional escalona outros processos

• Controlador de DMA entrega dados ao dispositivo

1. Entrega uma palavra

2. Espera dispositivo ficar pronto

(21)

Camadas de software de E/S

Hardware

Tratadores de interrupção Drivers de dispositivos

Software independente de dispositivo

Processos de usuário

Nomeia, protege, bloqueia, define buffer e aloca

Solicita E/S, formata E/S e coloca na fila

Configura dispositivo e registradores de dispositivo Acorda driver quando E/S está completa

Executa operação de E/S

(22)

Tratadores de interrupção

• Salvar registradores

• Estabelecer contexto para a rotina da interrupção

• Sinalizar o controlador de interrupções

• Executar a rotina de tratamento de interrupção

• Escolher o próximo processo

• Estabelecer o contexto para o próximo processo

• Iniciar a execução do próximo processo

(23)

Drivers de dispositivos

• Lidam com as peculiaridades de cada dispositivo

– Ou de classes de dispositivos

• Podem ser empilhados

– Dispositivos que possuem tecnologias diferentes encadeadas

• Exemplo: dispositivos USB

• Ficam no espaço do núcleo

• Falam com o hardware

– Controladores de dispositivos

• Devem lidar com reentrância

– E/S chega antes do processamento da E/S anterior

• Devem lidar com desligamento súbito

(24)

Software de E/S independente de dispositivo

• Código deve ser sempre geral

– Manutenibilidade

– Curva de aprendizado dos desenvolvedores

• Interface uniformizada para classes de dispositivos

– Operacional define operações que driver deve oferecer

Sistema

Driver de disco

Sistema

(25)

Buffers de dados

• Troca de dados

– Sem buffer

– Com buffer em espaço de usuário – Com buffer no núcleo

– Com buffer duplo no núcleo

(26)

Troca sem buffer

• Processo faz chamada de sistema e aguarda interrupção

– Lê/escreve um caractere/bloco

Sistema operacional Espaço do

usuário

Espaço do núcleo

Processo de usuário

Dispositivo

(27)

Troca sem buffer - problemas

• Uma interrupção por caractere/bloco

Sistema operacional Espaço do

usuário

Espaço do núcleo

Processo de usuário

Dispositivo

(28)

Troca com buffer em espaço de usuário

• Processo faz chamada de sistema e aguarda interrupção

– Oferece um buffer

– Rotina de interrupção Lê/escreve um caractere/bloco

• Desbloqueia quando completo

Espaço do

usuário Buffer

Processo de usuário

Página contendo o buffer não pode ser

(29)

Troca com buffer em

espaço de usuário - problemas

• Página com o buffer deve ficar na memória primária

– Se muitos processos travarem páginas

Sistema operacional Espaço do

usuário

Espaço do

núcleo Dispositivo

Buffer Processo de

usuário

(30)

Troca com buffer no núcleo

• Processo faz chamada de sistema e aguarda interrupção

– Operacional oferece um buffer

– Rotina de interrupção enche o buffer

– Operacional copia o buffer para processo e o desbloqueia

Espaço do usuário

Dispositivo Processo de

usuário

(31)

Troca com buffer no núcleo - problemas

• Buffer cheio

– Caractere chega antes da cópia estar completa

• O que fazer?

Sistema operacional Espaço do

usuário

Espaço do núcleo

Dispositivo

Buffer Processo de

usuário

(32)

Troca com buffer duplo no núcleo

• Processo faz chamada de sistema e aguarda interrupção

– Operacional oferece um buffer

– Rotina de interrupção enche o buffer

– Operacional copia o buffer para processo e o desbloqueia

Espaço do usuário

Dispositivo Processo de

usuário

(33)

Spooling

• Processos não têm acesso direto ao dispositivo de E/S

• Daemon controla o acesso ao dispositivo

– Exemplo: impressora

• Processos escrevem arquivos em diretório especial

• Daemon de impressão lê arquivos e envia à impressora

(34)

Redundant Array of

Inexpensive Disks - RAID

• Forma de organizar os arquivos com redundância

– Sete maneiras diferentes

• Forma de fazer vários discos físicos “parecerem” um só

(35)

RAID Nível 0

• Endereçamento virtual linear

– Setores distribuídos ao longo dos discos em round-Robin

• Operações de disco podem ser paralelizadas

Disco Disco 1 Disco 2 Disco 3

Endereço virtual

0 1 2

3 4 5

6 7 8

9 10 11

(36)

Entrada e saída

Pedro Cruz

Referências

Documentos relacionados

‰ Os dispositivos que têm uma saída passível de estar em alta impedância possuem uma entrada de controlo (output enable) que define se a saída está em High-Z ou não. ‰ Um

ü Densidade constante de bits: existem mais setores nas trilhas de fora. • Velocidade linear varia com localidade da trilha (mais rápida para

TENSÃO DE ALIMENTAÇÃO PRIMÁRIA - ENTRADA TENSÃO DE ALIMENTAÇÃO PRIMÁRIA - SAÍDA CORRENTE DE ALIMENTAÇÃO PRIMÁRIA - SAÍDA TENSÃO DE ALIMENTAÇÃO SECUNDÁRIA CORRENTE

Esta publicação pretende ser um ponto de partida para suas próprias ideias e dispositivos, como uma ferramenta que atua em diferentes contextos e lugares inserindo,

 Se a comemoração do aniversário for realizada fora do ambiente escolar e os pais desejarem convidar todos os colegas de sala, sem exceção, poderão enviar o convite preenchido e

Os dados serão adicionados no fim do arquivo (“append“) se ele já existir, ou um novo arquivo será criado, no caso de arquivo não existente anteriormente. • “rb“: Abre

Representar qualquer ponto ou reta contidos no plano e, desta representação, deduzir tanto a posição do plano no espaço, como as condições de pertença entre

O algoritmo do elevador para o escalonamento das requisições do disco.. Pearson Education Sistemas Operacionais Modernos – 2ª Edição 35. Tratamento