dispositivos de entrada e saída - eduardosan.com · interfaces gráficas • existem duas...

60
Dispositivos de Entrada e Saída

Upload: doanthu

Post on 07-Feb-2019

229 views

Category:

Documents


0 download

TRANSCRIPT

Dispositivos de Entrada e Saída

Introdução

O sistema operacional tem como funções também: Controlar os dispositivos de entrada/saída

Emitir comandos para os dispositivos Interceptar interrupções e tratar erros Fornecer uma interface entre os dispositivos e o 

restante do sistema

Introdução

 Embora os detalhes mecânicos e eletrônicos dos dispositivos periféricos não sejam o objeto deste curso, já comentamos diversas características físicas de discos, CDs/DVDs, fitas magnéticas, entre outros.

Vamos detalhar um pouco mais dos princípios de funcionamento de terminais (vídeo e teclado) e dispositivos apontadores para interfaces gráficas (mouse)

Dispositivos de E/S

Dispositivo deEntrada/saída

Interface

Controlador 

Tipos de terminais

 Existem hoje basicamente três tipos de terminais:

– Terminais com interfaces RS­232 (cada vez mais raros)

– Terminais de PCs com interfaces gráficas– Terminais de rede, para aplicações 

específicas (bancárias principalmente), também conhecidos como terminais ou clientes “slim”

Terminais com base em caracteres

 Os terminais de caracteres foram muito importantes até no final do século passado e são ainda hoje usados em algumas aplicações do tipo reservas de passagens, bancos ou indústrias.

Nos sistemas operacionais modernos eles são emulados em terminais gráficos, nas populares “linhas de comando”.

Terminais com base em caracteres

 Esses terminais são, na verdade, dois dispositivos independentes – o vídeo e o teclado.

Haviam também, nos primórdios da computação, terminais que imprimiam as saídas do computador e as entradas do operador em papel contínuo, mas eram usados sobretudo nas consoles de operação

Existiam igualmente terminais ditos “burros” que faziam cópias físicas impressas (hard copy) de arquivos ou de telas 

que estavam aparecendo no vídeo do terminal. 

Terminais com base em caracteres

As interfaces RS­232, embora de transmissão serial (um bit por vez), usam conectores de nove ou 25 pinos, montando caracteres ASCII

Nelas existem uma linha para transmissão, uma para recepção e outras linhas (ou pinos) para funções específicas de sincronização (attention needed, ready to send, clear to send)

Terminais com base em caracteres

Quando os caracteres são transmitidos serialmente, eles devem ser precedidos por um “start bit” e seguidos por um bit de paridade e um (ou dois) “stop bit”

Um terminal local pode ser ligado diretamente a um computador pela interface RS­232. Nesse caso a linha de transmissão deve ter pelo menos cinco fios, que se complementam em um ou outro extremo.

Terminais com base em caracteres

Se a ligação for remota, no entanto, é normalmente usada uma linha telefônica de dois fios. A adaptação entre o protocolo local RS­232 e o meio de transmissão “analógico” da rede telefônica é feita através dos famosos “modems”, que modulam o sinal em um extremo e o demodulam no outro.

Terminais com base em caracteres

Haviam dois tipos básicos de transmissão: síncrona e assíncrona.

As transmissões síncronas eram mais sofisti­cadas e seus representantes mais importantes eram os terminais IBM 3270 que executavam o protocolo BSC­3. Nesse caso não haviam os start e stop bits e a string era transmitida de uma vez, quando o caractére enter era pressionado. 

Terminais com base em caracteres

Os terminais 3270 eram ditos inteligentes pois tinham um buffer que permitia a revisão e edição dos dados escritos antes do envio para o computador.

Os dados enviados eram acompanhados por um caractere de controle (CRC) que auxiliava a fazer a verificação se não havia sido perdido um ou mais bits na transmissão. Nesse caso, o computador pedia a retransmissão do dado.

Terminais com base em caracteres

Os terminais da série 3270 não realizavam o protocolo BSC­3. Eles eram ligados a uma controladora de terminais 3274 que dialogava com a linha telefônica e distribuia os dados entre um grupo de terminais na modalidade mestre/escravo.

Controladora

t1 t2 t3 tnooo

Linha telefônica

Terminais com base em caracteres

Nas transmissões assíncronas, geralmente usadas em mini­computadores, o caractere era enviado assim que digitado, e ecoado de volta para o vídeo do terminal.

Não havia controle de grupos de caracteres, apenas do caractere individual pelo bit de paridade e pelo visual, uma vez que uma perda de dois bits permitiria visualizar um caractere diferente do que foi digitado.

Terminais com base em caracteres

Haviam também transmissões assíncronas para terminais mais inteligentes, que tinha buffer e faziam testes de consistência de grupos

Isso acontecia, por exemplo, nos terminais da Burroughs, com o protocolo assícrono “poll­select”

Terminais com base em caracteres

No protocolo poll­select os dados saiam do modem e eram difundidos em um único meio físico – um fio comum. Dessa forma todos os terminais “ouviam” os dados que chegavam, mas só um deles os copiava.

Modem

t1 t2 t3 tnooo

Linha telefônica

Terminais com base em caracteres

No que diz respeito à comunicação homem­máquina, tais terminais se apresentavam como páginas geralmente monocromáticas, com linhas e colunas

A combinação principal era 20 linhas de 80 colunas, mas haviam variações, com maior ou menor resolução

Terminais com base em caracteres

Os caracteres eram montados como matrizes de pontos, embora mais tarde tenham sidos desenvolvidas fontes de caracteres diversas com melhor definição

O terminais implementavam “negritos”, “fundos positivos”, “itálicos” e cores, algumas vezes.

Em alguns terminais eram reservadas linhas em cima ou embaixo para informações de controle (link ativo, sistema controlando, e algumas estatísticas)

Terminais com base em caracteres

• Visão do terminal 3287 e detalhes da tela

Terminais com base em caracteres

Assim que a indústria de micro­computadores se firmou, começaram a aparecer os emuladores de terminais da série 3270 para tais equipamentos.

Inicialmente, como os micros tinham telas monocromáticas e orientadas a caracteres, os emuladores eram aplicações que rodavam exclusivamente no micro. Mais tarde surgiram emuladores em janelas gráficas.

Terminais com base em caracteres

Conforme já foi dito, os terminais eram controlados por caracteres – haviam aqueles que eram visíveis e também os caracteres de controle, entre eles:

cr, lf, del, erase, bell, ack, nak, em, tab, kill, stop, start, eof, eom, entre outros

Alguns deles são associados com teclas físicas (erase)  e outros são obtidos por combinações de teclas com a tecla control.

Terminais com base em caracteres

Com a sofisticação dos terminais (implemen­ tados por microprocessadores) e com o uso de micros para emulação de terminais, co­meçaram a aparecer “linguagens” de comu­nicação homem­máquina mais sofisticadas, que permitiram a criação de campos, for­mulários, consistências locais, etc.

Interfaces gráficas

Durante anos os micros com MS­DOS domina­ram a cena e os terminais eram predominante­mente orientados a caracteres.

Hoje, todos os computadores pessoais usam alguma interface gráfica do usuário (graphical user interface – GUI – fala­se “gooey”)

GUIs foram inventadas por Douglas Engelbart em Stanford. Foram copiadas por pesquisado­res da Xerox PARC – Palo Alto Research Center

Interfaces gráficas

• Steve Jobs, em visita ao PARC viu as interfaces gráficas e decidiu desenvolver o Apple Lisa, que foi um fracasso comercial. Porém os Machintosh, que o sucederam foram um sucesso 

• No final dos anos 80 e início dos 90 haviam apenas as interfaces gráficas para os Apple Machintosh e para os Terminais X das estações de trabalho Sun.

• Com a banalização das interfaces gráficas e recursos multimídia a partir do Windows 95, e com a explosão digital causada pela Internet, o “teleprocessamento” tomou outro rumo.

Interfaces gráficas

• As GUIs têm quatro elementos essenciais:

  WIMP

– Windows ­ Janelas– Icons ­ ícones– Menus ­ menus– Pointing – apontadores – mouse ou trackball

Interfaces gráficas

• Todos os computadores pessoais modernos têm um teclado e um vídeo mapeado na memória e orientado a bits

• O teclado e o vídeo são completamente separados, cada um tendo seu driver

• O teclado se comunica geralmente por porta serial ou usb.

• Cada tecla pressionada interrompe a CPU

Interfaces gráficas

• Nos Pentiums o teclado contém um micro­processador embutido que se comunica por uma porta serial especializada com o chip controlador da placa mãe. 

• O processador comunica o número da tecla pressionada e não o seu código em ASCII. Informa também quando a tecla é liberada.

Interfaces gráficas

• Os PCs também têm um mouse (ou uma trackball )

• A maioria dos mice de hoje são de tecno­logia ótica, capazes de reconhecer os movimentos que fazem contra a superfície sobre a qual estão apoiados.

• Antigamente eram implementados com uma bolinha de borracha que ficava em contato com roletes que registravam os movimentos

Interfaces gráficas

• Os deslocamentos eram registrados através dos incrementos Δx e Δy ocorridos a partir da última posição de repouso

Interfaces gráficas

• Os dispositivos eram capazes de registrar uma distância mínima de 0,1 mm – essa distância é denominada de 1 mickey

• Cada mensagem passada pelo mouse para o computador contem três campos: Δx, Δy e botões

• Como o mouse pode enviar até 40 mensa­gems/segundo, às vezes são deslocados vários mickeys após a última mensagem

Interfaces gráficas

• Um mouse nunca informa sua posição absoluta. Se você levantá­lo e com cuidado repousá­lo de novo em outro lugar, ele não registrará nenhuma mudança de posição. É sempre o movimento e o uso de botões que é registrado.

Interfaces gráficas

• Existem duas categorias de terminais gráficos:

– Gráficos vetoriais, usados essencialmente para desenhos de pontos, linhas, figuras geométricas e textos

– Gráficos de varredura – orientados a pixels e usados para produção de imagens gráficas em geral, fotos, vídeos. Esses são algumas vezes chamados de gráficos de mapas de bits (bitmap graphics)

Interfaces gráficas

• Os gráficos de varredura são implementa­dos por adaptadores gráficos, que contém uma memória RAM, que está integrada ao sistema de endereçamento da memória do computador e é endereçada pela CPU, como toda a memória normal.

• A imagem da tela pode ser armazenada em caracteres, usados quando a imagem é de texto simples, ou em mapas de bits.

Interfaces gráficas

• Na tela gráfica mais simples, em preto e branco, a memória RAM de vídeo pode ter um bit para cada pixel, acesso ou apagado

• Nas telas coloridas de alta resolução, pode ter 24 ou mais bits por pixel

• O adaptador gráfico contém um chip controlador de vídeo, que examina os bits da memória de vídeo e gera os sinais para controlar o monitor.

Interfaces gráficas

• Em geral as telas dos monitores têm de 480 a 1024 linhas por de 640 a 1200 pixels por linha.

• Nos vídeos coloridos cada pixel tem três cores (vermelho, verde e azul – RGB) que podem ser moduladas independentemente

Interfaces gráficas

• Apenas para entender melhor como funciona o mapeamento da memória de vídeo na tela, vamos ver como funciona uma imagem de texto simples

• Suponha que a tela exibida tenha 25 linhas de 80 colunas cada 

Interfaces gráficas

• O vídeo estará mostrando, por exemplo:

   A B C D   1  2 3 4    .....

                        

Interfaces gráficas

• A RAM de vídeo conterá o texto a ser mostrado  (dois bytes por caracteres, sendo o “x” um byte com atributos

                           x 3  x 2 x  1 x 0                           x D x C x B x A

Interfaces gráficas

• Vamos admitir que os caracteres sejam produzidos em “retângulos” de nove pixels de largura por 14 de altura:

                        o  o oo  o o                                                     o           o                                                     o           o                                                   o               o                                                   o               o                                                 o                   o                                                 o                   o                                                o                     o                                                o                     o                                               o                       o                                               o                       o                                              o                         o                                              o                         o                                             o                           o                                             o                           o                                            o                             o                                            o                             o                                           o  o  o  o  o  o  o  o  o                                            o  o  o  o  o  o  o  o  o                                           o                                 o                                          o                                 o                                         o                                   o                                         o                                   o                                        o                                     o                                        o                                     o                                       o                                       o                                       o                                       o

Interfaces gráficas

• Dessa forma, o controlador de vídeo na modalidade texto lê a memória RAM e vai montando o caractere lido no formato de seus atributos e vai jogando na tela. A cada 80 caracteres ele monta uma linha.

• Essas linhas têm que ser projetadas (varridas) novamente várias vezes por segundo, para permanecerem  visíveis no vídeo.

Interfaces gráficas

• Caso a CPU, a pedido de alguma aplicação, mude o conteúdo da memória RAM (por exemplo, caso o usuário comande um page up ou um page down) o controlador também mudará a imagem que estava projetando, pois agora terá uma nova matriz de caracteres a ser mostrada.

• Observe que, para uma tela orientada a caracteres, a memória de vídeo não precisa ser muito grande. No caso mostrado seriam suficientes 4000 bytes.  A maior do trabalho de produção da imagem fica a cargo do controlador, que produz um padrão para cada retângulo destinado a uma letra, dependendo da letra e dos seus atributos.

Interfaces gráficas

• Para as imagens gráficas, no entanto, não existem representações simbólicas, como letras codificadas em um byte no modo texto.

• O que existem são as próprias representações de cada pixel que forma a imagem.

Interfaces gráficas

• No caso mais simples, na tela preta e branca seria necessário 1 bit para representar cada pixel

• No caso extremos, com bits coloridos de alta resolução, precisaríamos de 24 bits por pixel, com oito bits para representar a intensidade de cada uma das cores básicas (RGB)

Interfaces gráficas

• Os tamanhos de telas mais comuns são:– 640 X 480 – VGA– 800 X 600 – SVGA– 1024 X 768 – XGA– 1280 X 1024– 1600 X 1200

• Todos, exceto 1280 X 1024 tem proporção 3:4, com pixels quadrados (como NTSC)

Interfaces gráficas

• Uma tela 1024 X 768 com 24 bits por pixel requer cerca de 2,3 MBytes de RAM só para conter a imagem instantânea

• Como a imagem é “refrescada” 75 por segundo, a RAM de vídeo deve fornecer dados permanentemente uma frequência de 172 Mbytes por segundo

Interfaces gráficas

• Para reduzir o tamanho das imagens a serem manipuladas pode­se usar o conceito de paleta de cores:

• Ao invés de dedicarem­se oito bits para cada cor de cada pixel, o que permite a definição de mais de 16 milhões de cores, define­se uma tabela de cores aproxima­das, que pode ser de 256 cores (oito bits) ou de 65536 cores (dois bytes)

Interfaces gráficas

• Dessa forma, as cores ficam mais “grosseiras” pois são aproximadas, porém, dependendo do equipamento e da aplicação, ficam totalmente aceitáveis.

• Outra alternativa é utilizar 16 bits por pixel, onde são usados 6 bits para o verde (mais importante para o olho humano) e 5 para os demais. Nesse caso não é tabela, é uma otimização do conceito dos 24 bits

Software para Interfaces gráficas

• O software de GUIs é um tópico pesado

• Vamos observar superficialmente a API (Application Program Interface)  Win32, para OSs Microsoft de 32 bits e outras APIs, para o Linux/Unix e para o mundo Java

• O ítem básico da API é a janela, definida por dois endereços de pixels: vértice superior esquerdo e inferior direito

Software para Interfaces gráficas

• Quando uma janela é criada determina­se seus parâmetros – se pode ser movida, redimensionada, rolada

• Quando isso acontece, as aplicações devem redesenhar o conteúdo da janela

• Os programas do Windows são baseados em mensagens que são recebidas quando o usuário mexe nas janelas

Software para Interfaces gráficas

• Os programas têm uma fila de mensagens que eles devem processar usando procedimentos internos próprios para isso

• Em alguns casos, o próprio Windows chama o procedimento diretamente e ignora a fila

Software para Interfaces gráficas

• No mundo Unix/Linux é o próprio sistema operacional quem captura os eventos e realiza chamadas ao sistema para tomar as ações devidas

• A aplicação, no entanto, é comunicada dos eventos que ocorreram

Software para Interfaces gráficas

• Nos ambientes Java as coisas acontece de forma semelhante ao Linux/Unix

• O modelo é orientado a objetos, e existem classes que implementam cada um desses objetos: Janelas, botões, menus e assim por diante

• As ações são do tipo criar, redimensionar, pintar, mostrar, destruir, etc.

• As aplicações ficam esperando que eventos do sistema de janelas as “acordem”

Software para Interfaces gráficas

• A complexidade do conjunto é grande porque é necessário haver um controle daquilo que é visível em um determinado momento em um determinado ponto

• As janelas podem se superpor total ou parcialmente, e existem eventos, a maior parte relacionados com o mouse, que focam em determinadas janelas ou objetos.

Software para Interfaces gráficas

• O fluxo de dados e de eventos pode ser enorme, dependendo da aplicação e da atividade do operador

• Os sistemas de janela operam bem localmente, com uma alta banda passante entre o computador e o monitor.

• Para acesso remoto podem ser introduzidos retardos importantes na interação

Software para Interfaces gráficas

• Os terminais SLIM (stateless low­level interface machines) ou os Thin Clients (clientes leves) vem sendo introduzidos com a evolução da internet

• São máquinas desprovidas de recurso de hardware, como discos ou CD/DVDs, que funcionam como os antigos terminais “burros”, porém implementam interfaces gráficas.

Software para Interfaces gráficas

• Para implementar a interface X em tais máquinas, o servidor central mantém uma cópia do buffer de quadros de cada terminal ativo, e manda pela rede somente as atualizações de partes da tela, quando necessário

• Dessa forma, a necessidade de banda passante se torna bem mais modesta, viabilizando o seu funcionamento.

Software para Interfaces gráficas

• A operação de tais terminais fica orientada a retângulos dentro da tela:

– SET – atualiza um retangulo com novos pixels– FILL – preenche um retangulo com um pixel– BITMAP – Expande um mapa de bits para 

preencher um retângulo– COPY – copia um retangulo para outra parte 

da tela– CSCS – converte um retângulo de cor de TV 

para RGB

Software para Interfaces gráficas

• Essa última primitiva é usada apenas quando há o interesse em se reproduzir imagens de TV no terminal.

Software para Interfaces gráficas

• Testes demonstram que tal protocolo tem um bom desempenho a taxa de transmissão de até 1MBPS, o que o torna viável para a maioria das conexões domésticas da atualidade

• Com taxas inferiores a isso, o desempenho pode começar a comprometer

Comentários Finais

• Sistemas operacionais podem, também, contribuir muito na avaliação do consumo de energia e comandar diferentes níveis de eficiência em periféricos, memória e até na CPU dos computadores visando economizar energia.

• Tais modificações podem ser parametrizadas e personalizadas, conforme análise explícita ou implicita dos hábitos do usuário.