OCSO EntradaSada Diversidade de Dispositivos Diversidade de Dispositivos

  • Slides: 43
Download presentation
OCSO Entrada/Saída

OCSO Entrada/Saída

Diversidade de Dispositivos

Diversidade de Dispositivos

Diversidade de Dispositivos

Diversidade de Dispositivos

Tipos básicos de dispositivos n Caracter: transferem bytes um a um. Ex. terminal n

Tipos básicos de dispositivos n Caracter: transferem bytes um a um. Ex. terminal n Bloco: transferem bytes em bloco. Ex. disco n Sequencial. Tem acesso em ordem fixa. Ex. modem n Acesso randômico: Ordem pode ser alterada. Ex CD-ROM n Síncrono: Tem tempo de resposta previsível. Ex. Fita n Assíncrono: Tempo de resposta imprevisível. Ex. teclado n Compartilhável: pode ser usado por vários processos ao mesmo tempo. Ex. teclado n Dedicado. Só pode ser usado por um processo por vez. Ex. Impressora n Read-write, read only e write-only: disco, cdrom, video

Arquitetura de Entrada/Saída n Portas (ports) • Comunicação ponto a ponto. • Ex: Porta

Arquitetura de Entrada/Saída n Portas (ports) • Comunicação ponto a ponto. • Ex: Porta serial e paralela n 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

Arquitetura de Entrada/Saída n Controladores de Dispositivos • Hardware que controla uma porta, barramento

Arquitetura de Entrada/Saída n Controladores de Dispositivos • Hardware que controla uma porta, barramento ou dispositivo(s) Ex: Controlador da porta serial Controlador SCSI (Small Computer-Systems Interface) Controlador de disco n Drivers de Dispositivos • 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

PCI Bus Peripheral Component Interconnect CPU Cache Bridge/ Cont. de memória slots Bridge para

PCI Bus Peripheral Component Interconnect CPU Cache Bridge/ Cont. de memória slots Bridge para o ISA ou EISA bus ou ISA bus ISA ou EISA slots DRAM AGP PCI bus Controlador EIDE Controlador de Vídeo Controlador SCSI LAN

Introdução aos Barramentos Comparação de barramentos ISA EISA VLBUS PCI 1984 1987 1992 1993

Introdução aos Barramentos Comparação de barramentos ISA EISA VLBUS PCI 1984 1987 1992 1993 Vários 2 4 4 4 a 8 Frequência (MHz) 8, 3 CPU 33 a 66 Taxa (MB/s) 7, 9 31, 8 Ano Dispositivos Largura (bytes) Obs. 127, 2 a 508, 6 Restrito ao 80486 Dados e end. multiplexados

Introdução aos Barramentos n Dispositivos • Ativos ou Mestres - dispositivos que controlam o

Introdução aos Barramentos n 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.

Comunicação S. O. (CPU) - Controlador tem registradores de dados, comandos, status. n CPU

Comunicação S. O. (CPU) - Controlador tem registradores de dados, comandos, status. n CPU pode acessar info desses registradores n Controlador processa comando n Resultados (se houver) são gravados na memória n

Comunicação S. O. (CPU) – Controlador Diagrama de um controlador Interface para barramento do

Comunicação S. O. (CPU) – Controlador Diagrama de um controlador Interface para barramento do sistema Interface para dispositivo externo Registrador de dados Linhas de Dados Linhas de Endereço Linhas de Controle Status/Registrador de Controle Lógica de E/S Interface lógica com dispositivo exerno Dados Status Controle Interface lógica com dispositivo externo Dados Status Controle

Dispositivos de E/S Modelo Servidor/Produtor Fila Produtor de tarefas Gera tarefas a serem executadas

Dispositivos de E/S Modelo Servidor/Produtor Fila Produtor de tarefas Gera tarefas a serem executadas Servidor Executa tarefas enviadas pela fila

Dispositivos de E/S Modelo Servidor/Produtor Aumento de Througput dividindo tarefas Fila Servidor Produtor de

Dispositivos de E/S Modelo Servidor/Produtor Aumento de Througput dividindo tarefas Fila Servidor Produtor de tarefas Gera tarefas a serem executadas Fila Executa tarefas enviadas pela fila Servidor Executa tarefas enviadas pela fila

Interface de Saída - Impressora Buffer de saída do sistema Buffer de entrada da

Interface de Saída - Impressora Buffer de saída do sistema Buffer de entrada da impressora bit 0 bit 1 bit 2 bit 7 Impressora Sinal de Transferência Status Q S Pronto R Dado Presente Flag Q CPU Impressora Põe dado no buffer de saída Se Status = 1 - Ativa Sinal de Transferência Se Dado Presente = 0 - Lê dado - Ativa sinal Pronto

Comunicação S. O. (CPU) - Controlador Como a CPU acessa a informação? n E/S

Comunicação S. O. (CPU) - Controlador Como a CPU acessa a informação? n E/S isolado • Através de instruções especiais de E/S • Especificam a leitura/escrita de dados numa porta de E/S. Ex: IN AL, 60 H n E/S mapeado em memória • Através de instruções de leitura/escrita na memória Ex: MOV AL, (60 H) • Exemplo: >debug >e B 800: 072 E 48 09 41 09 43 09 4 B 09

Comunicação S. O. (CPU) - Controlador Isolado Mapeado em Mem. Híbrido

Comunicação S. O. (CPU) - Controlador Isolado Mapeado em Mem. Híbrido

Comunicação S. O. (CPU) – Controlador E/S Isolado Linhas de endereços Linhas de dados

Comunicação S. O. (CPU) – Controlador E/S Isolado Linhas de endereços Linhas de dados Linhas de Controle Mreq / E/S Controlador de E/S Memória Barramento Isolado tem sinal especial (Mreq / E/S) que identifica o tipo de endereço presente no barramento • Permite o uso de instruções especiais para dispositivos de E/S • Para o mesmo núm. de bits de endereço => dobro de E/S + Memória • Requer um sinal extra e, consequentemente, hardware extra na CPU

Comunicação S. O. (CPU) - Controlador n IBM-PC usa ambos (híbrido): • E/S mapeado

Comunicação S. O. (CPU) - Controlador n IBM-PC usa ambos (híbrido): • E/S mapeado em memória: memória de vídeo • E/S isolado para dispositivos em geral Endereço de E/S 000 -00 F 020 -021 040 -043 060 -063 200 -20 F 2 F 8 -2 FF 320 -32 F 378 -37 F 380 -3 BF 3 D 0 -3 DF 3 F 0 -3 F 7 3 F 8 -3 FF Dispositivo Vetor de Interrupção Controlador de DMA Controlador de interrupção Timer 8 Teclado 9 Controlador de jogos Porta serial 2 (COM 2) 11 Controlador de disco rígido 13 Porta parelela 15 Controlador de vídeo P&B Controlador de vídeo colorido Controlador de disquete 14 Porta serial 1 (COM 1) 12

Comunicação S. O. (CPU) - Controlador Como a CPU sabe que o dispositivo já

Comunicação S. O. (CPU) - Controlador Como a CPU sabe que o dispositivo já executou o comando? n E/S Programado: • CPU lê constantemente os status do controlador e verifica se já acabou (Polling ou Busy-waiting) • Espera até o fim da operação n E/S por interrupção • CPU requisita um comando do dispositivo de E/S • CPU continua a executar outras operações • CPU é interrompida pelo módulo de E/S e ocorre transferência de dados. n E/S por DMA - Acesso Direto à Memória • Quando necessário, o controlador de E/S 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

Comunicação S. O. (CPU) – Controlador Técnicas de Acesso Exemplo: Imprimindo uma string

Comunicação S. O. (CPU) – Controlador Técnicas de Acesso Exemplo: Imprimindo uma string

Técnicas de transferência de dados E/S dirigida por interrupção E/S programada Comando de leitura

Técnicas de transferência de dados E/S dirigida por interrupção E/S programada Comando de leitura para módulo de E/S Outras tarefas Ler status de E/S Interrupção OK OK Status de E/S OK Ler dado de E/S Escreve memória CPU --> E/S Status de E/S OK Ler dado de E/S Escreve memória E/S --> CPU --> Mem. Volta ao que estava fazendo

Comunicação S. O. (CPU) – Controlador E/S Programado // p é o buffer do

Comunicação S. O. (CPU) – Controlador E/S Programado // p é o buffer do S. O. // Enquanto houver caracteres… // Espere a impressora ficar pronta // Envie um caracter // Retorne ao processo do usuário

Comunicação S. O. (CPU) – Controlador E/S Programado 1. Copia informações do processo do

Comunicação S. O. (CPU) – Controlador E/S 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

Comunicação S. O. (CPU) – Controlador E/S por Interrupção void SO_print. String(…) { void

Comunicação S. O. (CPU) – Controlador E/S por Interrupção void SO_print. String(…) { void SO_ISRprinter() { } } Código do S. O. executado quando o usuário requer a impressão Rotina de serviço de interrupção

Comunicação S. O. (CPU) – Controlador E/S por Interrupção 1. Copia informações do processo

Comunicação S. O. (CPU) – Controlador E/S por 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 Código do S. O. executado quando o usuário requer a impressão Rotina de serviço de interrupção

DMA - Acesso Direto à memória þ O módulo de E/S e a memória

DMA - Acesso Direto à memória þ O módulo de E/S e a memória principal trocam dados diretamente sem o envolvimento da CPU. Contador de dados Linhas de dados Registrador de dados Linhas de endereço Registrador de endereços DMA REQ DMA ACK INTR Read Write Lógica de Controle

Técnicas de transferência de dados Control. de DMA transfere dados entre memória e módulo

Técnicas de transferência de dados Control. de DMA transfere dados entre memória e módulo de E/S Comando de leitura de E/S para controlador de DMA Outras tarefas Interrupção Status de E/S Parâmetros para DMA End. memória End. dispositivo Tamanho bloco CPU --> DMA --> CPU Volta ao que estava fazendo

Comunicação S. O. (CPU) – Controlador E/S por DMA void SO_print. String(…) { void

Comunicação S. O. (CPU) – Controlador E/S por DMA void SO_print. String(…) { void SO_ISRprinter() { } } Código do S. O. executado quando o usuário requer a impressão Rotina de serviço de interrupção

Comunicação S. O. (CPU) – Controlador Transferência por DMA

Comunicação S. O. (CPU) – Controlador Transferência por DMA

Comunicação S. O. (CPU) – Controlador Diferentes configurações de DMA CPU Módulo E/S DMA

Comunicação S. O. (CPU) – Controlador Diferentes configurações de DMA CPU Módulo E/S DMA E/S Memória 1. Barramento simples, DMA simples CPU Módulo DMA E/S Bus Mastering Módulo DMA E/S Memória E/S 2. Barramento simples, DMA-E/S Integrados CPU Módulo DMA E/S Memória E/S 3. Barramento de E/S

Controlador de Interrupção

Controlador de Interrupção

Controlador de Interrupção O 8259 A do IBM-PC INTA CPU RD WR CS DADOS

Controlador de Interrupção O 8259 A do IBM-PC INTA CPU RD WR CS DADOS n Sinais de controle: – – – Controlador de Interrupções IRQ 0 IRQ 1 IRQ 2 IRQ 3 IRQ 4 IRQ 5 IRQ 6 IRQ 7. . IRQx - Interrupt request x INT (Interrupt) - Houve interrupção INTA (Int. Acknowledge) - Interrupção recebida RD (Read) - Leitura WR (Write) - Escrita CS (Chip select) - Seleção do chip do controlador

Níveis de software de E/S

Níveis de software de E/S

E/S Software Independente do Dispositivo Interface uniforme para Driver de Dispositivos Bufferização de dados

E/S Software Independente do Dispositivo Interface uniforme para Driver de Dispositivos Bufferização de dados Info sobre erros Alocação e liberação de dispositivos Tamanho do bloco de dados

Tipos básicos de dispositivos n Caracter: transferem bytes um a um. Ex. terminal n

Tipos básicos de dispositivos n Caracter: transferem bytes um a um. Ex. terminal n Bloco: transferem bytes em bloco. Ex. disco n Sequencial. Tem acesso em ordem fixa. Ex. modem n Acesso randômico: Ordem pode ser alterada. Ex CD-ROM n Síncrono: Tem tempo de resposta previsível. Ex. Fita n Assíncrono: Tempo de resposta imprevisível. Ex. teclado n Compartilhável: pode ser usado por vários processos ao mesmo tempo. Ex. teclado n Dedicado. Só pode ser usado por um processo por vez. Ex. Impressora n Read-write, read only e write-only: disco, cdrom, video

E/S Software Independente do Dispositivo Interface uniforme para os Driver de Dispositivos (a) (b)

E/S Software Independente do Dispositivo Interface uniforme para os Driver de Dispositivos (a) (b) Sem interface padrão Com interface padrão

Driver de Dispositivos

Driver de Dispositivos

Driver de Dispositivos n “Escondem” do subsistema de E/S (do S. O. ) as

Driver de Dispositivos n “Escondem” do subsistema de E/S (do S. O. ) as diferenças entre os diversos controladores, fornecendo uma interface padrão e uniforme de acesso para todos. n Facilitam o desenvolvimento do S. O. n Permitem a inclusão de novos dispositivos Detecção e correção de erros n

E/S Software Independente do Dispositivo Alocação e liberação de dispositivos n Spooling e reserva

E/S Software Independente do Dispositivo Alocação e liberação de dispositivos n 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

Exemplo de Chamada de E/S (1) Níveis do sistema de E/S e suas funções

Exemplo de Chamada de E/S (1) Níveis do sistema de E/S e suas funções principais

Exemplo de Chamada de E/S (2)

Exemplo de Chamada de E/S (2)

FIM

FIM

E/S Software Independente do Dispositivo Bufferização (a) Entrada não bufferizada (b) Bufferização do usuário

E/S Software Independente do Dispositivo Bufferização (a) Entrada não bufferizada (b) Bufferização do usuário (c) Bufferização no kernel (d) Dupla bufferização no kernel