26
Infra-Estrutura de Software Infra-Estrutura de Software Entrada/Saída Entrada/Saída

Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Embed Size (px)

Citation preview

Page 1: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Infra-Estrutura de SoftwareInfra-Estrutura de Software

Entrada/SaídaEntrada/Saída

Page 2: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Diversidade de Diversidade de DispositivosDispositivos

Page 3: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Diversidade de DispositivosDiversidade de Dispositivos

Page 4: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Tipos básicos de dispositivosTipos básicos de dispositivos

Caracter: transferem bytes um a um. Ex.terminal Bloco: transferem bytes em bloco. Ex. disco Sequencial. Tem acesso em ordem fixa. Ex. modem Acesso randômico: Ordem pode ser alterada. Ex CD-ROM Síncrono: Tem tempo de resposta previsível. Ex. Fita Assíncrono: Tempo de resposta imprevisível. Ex. teclado Compartilhável: pode ser usado por vários processos ao mesmo

tempo. Ex. teclado Dedicado. Só pode ser usado por um processo por vez. Ex.

Impressora Read-write, read only e write-only: disco, cdrom, video

Page 5: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Arquitetura de Entrada/SaídaArquitetura de Entrada/Saída

Portas (ports)• Comunicação ponto a ponto.• Ex: Porta serial e paralela

Barramentos (bus)• Conjunto de condutores elétricos e com um protocolo rígido que

define como mensagens trafegam sobre esses fios.• Permite a comunicação entre vários componentes• Protocolo é um conjunto de regras que definem como as

comunicações no barramento serão efetuadas

Page 6: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Arquitetura de Entrada/SaídaArquitetura de Entrada/Saída

Controladores• Hw que controla uma porta, barramento ou dispositivo(s)

Ex: Controlador da porta serial

Controlador SCSI (Small Computer-Systems Interface)

Controlador de disco

Device Drivers• Partes do S.O. que fornecem uma interface de acesso uniforme para

cada dispositivo.

• Traduz as chamadas de alto nível (usuário) para o dispositivo específico

• Conversão de dados• Detecção e correção de erros

Page 7: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

PCI BusPCI Bus Peripheral Component InterconnectPeripheral Component Interconnect

Bridge para o ISA ou EISA

EISA bus ou ISA bus

ISA ou EISA slots

DRAM

PCI bus

CPU

Bridge/Cont. de memória

slots

Cache

LAN

Controladorde Vídeo

ControladorSCSI

ControladorEIDE

AGP

Page 8: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

ISA EISA VLBUS PCI

Ano 1984 1987 1992 1993

Dispositivos Vários Vários 2 4

Largura (bytes)

2 4 4 4 a 8

Frequência (MHz)

8,3 8,3 CPU 33 a 66

Taxa (MB/s) 7,9 31,8 127,2 a 508,6

Obs. Restrito ao 80486

Dados e end. multiplexados

Introdução aos Introdução aos BarramentoBarramentoss

Comparação de barramentosComparação de barramentos

Page 9: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Introdução aos Introdução aos BarramentoBarramentoss

Dispositivos • Ativos ou Mestres - dispositivos que controlam o

protocolo de acesso ao barramento para leitura ou escrita de dados

• Passivos ou Escravos - dispositivos que simplesmente obedecem a requisição do mestre.

Exemplo:• CPU ordena que o controlador de disco leia ou escreva um bloco de

dados.

A CPU é o mestre e o controlador de disco é o escravo.

Page 10: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Comunicação S.O.(CPU) - ControladorComunicação S.O.(CPU) - Controlador

Controlador tem registradores de dados, comandos, status.

CPU pode acessar info desses registradores

Controlador processa comando Resultados (se houver) são gravados na

memória

Page 11: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Comunicação S.O.(CPU) – ControladorComunicação S.O.(CPU) – Controlador

Diagrama de um controladorDiagrama de um controlador

Dados para e do ambiente

Lógica de controle

Buffer

Transdutor

Info. para ocontroladorde E/S

Status paracontrolador de E/S

Dados para edo controladorde E/S

Determina a função do dispositivo- Input ou Read- Output ou Write

Indica estado do dispositivo- Ready- Not Ready

Conjunto de bitsa serem enviados para ou recebidosdo módulo de I/O

- Converte dados elétricos para outras formas de energia durante Output

- Converte outras formas de energia em eletric. durante Input

Page 12: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Comunicação S.O.(CPU) - ControladorComunicação S.O.(CPU) - Controlador

I/O Programado: • CPU lê constantemente os status do controlador e verifica se já acabou (Polling ou Busy-

waiting)• Espera até o fim da operação

I/O por interrupção• CPU requisita um comando do dispositivo de I/O• CPU continua a executar outras operações• CPU é interrompida pelo módulo de I/O e ocorre transferência de dados.

I/O por DMA - Acesso Direto à Memória• Quando necessário, o controlador de I/O solicita ao controlador de DMA a transferência de

dados de/para a memória• Nessa fase de transferência não há envolvimento da CPU. • Ao fim da transferência, a CPU é interrompida e informada da transação

Como a CPU sabe que o dispositivo Como a CPU sabe que o dispositivo já executou o comando?já executou o comando?

Page 13: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Secretária, por favor escreva o contratoagora para que eu possa assiná-lo; estou esperando.

Pois não Sr. um momento

Contrato pronto, estou enviando Ok, Obrigado

Programa sem interrupção

Secretária, por favor escreva o contratoagora, quando estiver pronto me avise.Pois não Sr.

Contrato pronto, posso enviá-lo?Um momento, estou terminado de escrever um ofício. ... agora pode enviar o contrato, obrigado. Após receber o contrato, o chefe continua fazendo as outras atividades......

Programa com interrupção

Preciso enviar os contratos que estáo sobre a mesa do chefe para o correio

Boy por favor apanhe os contratos que estão na pasta sobre a mesa do chefe para mim. Por favor não incomode o chefe.

Obrigada

CorreioCorreio

Acesso Direto à Memória

Comunicação S.O.(CPU) – ControladorComunicação S.O.(CPU) – Controlador

Exemplo de comunicação com dispositivoExemplo de comunicação com dispositivo

CPUCPU

E/SE/S

BUSBUS

Page 14: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Comunicação S.O.(CPU) – ControladorComunicação S.O.(CPU) – Controlador

Técnicas de AcessoTécnicas de Acesso

Exemplo: Imprimindo uma string

Page 15: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Comunicação S.O.(CPU) – ControladorComunicação S.O.(CPU) – Controlador

I/O ProgramadoI/O Programado

1. Copia informações do processo do usuário para o SO

2. Enquanto houver caracteres para imprimir

{

2.1. Espera impressora estar pronta

2.2. Envia um caracter para a impressora

}

3. Retorna para o aplicativo

Page 16: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Comunicação S.O.(CPU) – ControladorComunicação S.O.(CPU) – Controlador

I/O ProgramadoI/O Programado

// p é o buffer do S.O.

// Enquanto houver caracteres…

// Espere a impressora ficar pronta

// Envie um caracter

// Retorne ao processo do usuário

Page 17: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Comunicação S.O.(CPU) – ControladorComunicação S.O.(CPU) – Controlador

I/O por InterrupçãoI/O por Interrupção

Código do S.O. executado quando o usuário requer a impressão

Rotina de serviço de interrupção

1. Copia informações do

processo do usuário

2. Habilita interrupção

3. Retorna para o escalonador

1. Se terminou os carateres

1.1. Desbloqueia processo

2. Senão

2.1. Envia um caracter para

a impressora

3. Retorna da interrupção

Page 18: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Comunicação S.O.(CPU) – ControladorComunicação S.O.(CPU) – Controlador

I/O por InterrupçãoI/O por Interrupção

Código do S.O. executado quando o usuário requer a impressão

Rotina de serviço de interrupção

void SO_printString(…) {

}

void SO_ISRprinter() {

}

Page 19: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Controlador de InterrupçãoControlador de Interrupção

Page 20: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Níveis de software de I/ONíveis de software de I/O

Page 21: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Device DriversDevice Drivers

“Escondem” do subsistema de I/O (do S.O.) as diferenças entre os diversos controladores, fornecendo uma interface de acesso para todos.

Facilitam o desenvolvimento do S.O. Permitem a inclusão de novos dispositivos Detecção e correção de erros

Page 22: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Device DriversDevice Drivers

Page 23: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

I/O Software Independente do DispositivoI/O Software Independente do Dispositivo

Interface uniforme para os device driversInterface uniforme para os device drivers

(a) Sem interface padrão

(b) Com interface padrão

Page 24: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

I/O Software Independente do DispositivoI/O Software Independente do Dispositivo

Alocação e liberação de dispositivosAlocação e liberação de dispositivos

Spooling e reserva de dispositivo• Um spool é um buffer que guarda as saídas a serem

enviadas a um dispositivo (ex. Impressora) que não pode aceitar dados de misturados de vários processos.

• Geralmente é controlado por um daemon ou pelo kernel

Page 25: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Exemplo de Chamada de I/O (1)Exemplo de Chamada de I/O (1)

Níveis do sistema de I/O e suas funções principais

Page 26: Infra-Estrutura de Software Entrada/Saída Diversidade de Dispositivos

Exe

mpl

o de

Cha

mad

a de

I/O

(2)

Exe

mpl

o de

Cha

mad

a de

I/O

(2)