Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Arquitetura e Organização de Computadores: Entrada e Saída, Trabalhos de Cultura

Um capítulo de um livro sobre arquitetura e organização de computadores, especificamente sobre a entrada e saída de dados em sistemas de informação. O texto aborda os conceitos básicos de entrada e saída, as classes java.io para manipulação de dados, a importância de buffers e filtros, e as diferentes técnicas de transferência de dados (programada, interrupção e dma). Além disso, são discutidos os dispositivos de entrada e saída básicos, como teclado, monitor e disco, e os tipos de comandos de e/s. Finalmente, são apresentadas as interrupções e suas principais causas.

Tipologia: Trabalhos

2010

Compartilhado em 14/05/2010

kadu-velasco-5
kadu-velasco-5 🇧🇷

9 documentos

1 / 8

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
CE
S
Centro de Ensino Superior de Juiz de Fora
Bacharelado em Sistemas de Informação
1
Arquitetura e Organização de computadores
Entrada e Saída
Carlos Eduardo O. Velasco
1º Semestre / 2009
pf3
pf4
pf5
pf8

Pré-visualização parcial do texto

Baixe Arquitetura e Organização de Computadores: Entrada e Saída e outras Trabalhos em PDF para Cultura, somente na Docsity!

Bacharelado em Sistemas de Informação

Arquitetura e Organização de computadores

Entrada e Saída

Carlos Eduardo O. Velasco 1º Semestre / 2009

Bacharelado em Sistemas de Informação

1 - Introdução

Por entrada e saída subentende-se o conjunto de mecanismos oferecidos para que um programa executando em um computador consiga respectivamente obter e fornecer informação de dispositivos externos ao ambiente de execução, composto pelo processador e memória principal.

De forma genérica, havendo um dispositivo de entrada de dados habilitado, o programa obtém dados deste dispositivo através de uma operação read(). Similarmente, um dado pode ser enviado para um dispositivo de saída habilitado através de uma operação write().

A manipulação de entrada e saída de dados em Java é suportada através de classes do pacote java.io. Essas classes oferecem as funcionalidades para manipular a entrada e saída de bytes, adequadas para a transferência de dados binários, e para manipular a entrada e saída de caracteres, adequadas para a transferência de textos. Sendo Java uma linguagem de programação orientada a objetos, seria de se esperar que, além das funcionalidades usuais de entrada e saída, ela oferecesse também alguma funcionalidade para transferência de objetos. O mecanismo de serialização suporta essa funcionalidade.

Como a velocidade de operação de dispositivos de entrada e saída é várias ordens de grandeza mais lenta que a velocidade de processamento, buffers são tipicamente utilizados para melhorar a eficiência dessas operações de leitura e escrita. Outra funcionalidade associada à transferência de dados está relacionada à conversão de formatos, tipicamente entre texto e o formato interno de dados binários. Essa e outras funcionalidades são suportadas através do oferecimento de filtros que podem ser agregados aos objetos que correspondem aos mecanismos elementares de entrada e saída.

Um dispositivo de entrada e saída de vital importância é disco, manipulado pelo sistema operacional e por linguagens de programação através do conceito de arquivos. Dois dispositivos básicos de entrada e saída associados a qualquer processo são o teclado (entrada) e o monitor (saída), habilitados pelo sistema operacional no início da execução de qualquer programa como os dispositivos padrões.

Ao executar uma operação de E/S em um programa, o processador envia um comando para o módulo de E/S apropriado, com um comando solicitando uma operação específica. Para que uma instrução de E/S seja executada, o processador gera um endereço (dizendo qual é o módulo de E/S solicitado) e transmite via barramento este endereço junto com a operação requerida. Os tipos de comandos de E/S são:

  • controle: ativa um periférico e indica uma ação, por exemplo: eject /dev/cdrom (Linux).

Bacharelado em Sistemas de Informação

E/S dirigida por Interrupção Neste modo de comunicação o processador não fica esperando que a operação de I/O seja finalizada para continuar a execução do programa, como acontecia no caso da E/S programada. Ao invés disso, ele simplesmente emite um sinal para a controladora (módulo de I/O) com a operação solicitada e continua executando outras instruções do programa. Quandoa controladora estiver pronta para trocar informações com a CPU ela envia um sinal de interrupção avisando seu estado de “pronto”. Após este sinal o processador realiza a transferência dos dados como acontecia no modo anterior.

Para a CPU a execução acontece do seguinte modo:

  1. processador envia um sinal de leitura para o módulo de E/S e continua com a execução do programa.
  2. sempre ao final de cada ciclo de execução o processador verifica se existe algum sinal de interrupção de um módulo de E/S pendente. Se existir, o contexto do programa é salvo e a interrupção é processada, fazendo a leitura dos dados da controladora e armazenando na memória.
  3. recupera o contexto do programa e continua sua execução normal.

Devemos ressaltar que tanto na E/S Programada quanto na dirigida por Interrupção, o processador sempre é o responsável por obter dados da memória principal (operação de saída memória => dispositivo) ou por armazenar dados na memória principal (operação de entrada dispositivo => memória)

Interrupções A um sinal ou evento capaz de interromper a seqüência normal de execução de instruções damos o nome de interrupção. Os tipos mais comuns de interrupções estão listados a seguir:

  1. interrupção de software: ocasionada por alguma condição resultante da execução de uma instrução, como por exemplo um overflow ou uma divisão por zero.
  2. interrupção de relógio: gerada pelo clock do processador, destinada a executar operações periódicas.
  3. interrupção de E/S: ocasionada por um controlador de E/S para indicar a conclusão de uma operação ou a ocorrência de erros.
  4. interrupção de falha de hardware: provocada por falha do hardware, como um erro de paridade em memória ou a queda de energia.

Bacharelado em Sistemas de Informação

Bacharelado em Sistemas de Informação

As informações trocadas entre o DMA e a CPU quando esta deseja ler ou escrever um conjunto de dados em um periférico pode ser descrita como segue:

  1. através do barramento de controle a CPU indica o tipo de operação ao DMA.
  2. nas linhas de dados é passado o endereço do módulo de E/S correspondente.
  3. o endereço de memória para o DMA armazenar ou ler informações também é passado através das linhas de dados.
  4. a quantidade de palavras que serão lidas ou escritas também vai pela linha de dados.

Portanto, o gerenciamento da operação de I/O fica a cargo do DMA. Suponha que um programa solicite uma leitura de um arquivo em disco. O DMA será o responsável por controlar a operação e armazenar os dados lidos do disco direto na memória principal, no endereço transmitido pela CPU durante a solicitação. Ao finalizar a transferência, o DMA emite um sinal de interrupção ao processador indicando o término da operação. Nesse instante, o processador busca os dados direto na memória, poupando tempo de acesso à controladora do disco e, consequentemente, melhorando o desempenho do sistema computacional. Dessa forma, o processador só se envolve no início e no fim da operação.

Bacharelado em Sistemas de Informação

Bibliografia

  • Entrada e saída: http://www.dca.fee.unicamp.br/cursos/PooJava/io/index.html
  • STALLINGS, W. Arquitetura e Organização de Computadores, 5ª Edição, Prentice Hall, São Paulo, 2002. (Cap. 6)