• Nenhum resultado encontrado

Entrada. Saída. Entrada e Saída. Sistemas Operacionais

N/A
N/A
Protected

Academic year: 2021

Share "Entrada. Saída. Entrada e Saída. Sistemas Operacionais"

Copied!
36
0
0

Texto

(1)

Entrada e Saída

Sistemas Operacionais

(2)

Introdução

Todos os processos dependem de recursos de entrada e saída. Seja para receber dados ou para apresentar resultados.

Há diversos tipos de dispositivos de entrada e saída ligados a um computador, tais como:

Mouse, teclado, discos, adaptadores de vídeo, dispositivos USB, conexões de rede, adaptadores de áudio, impressoras, dispositivos de acessibilidade e vários outros...

(3)

Introdução

A ligação dos dispositivos ao computador pode ser por meio de cabos ou através de comunicação sem fio.

Internamente, as ligações são realizadas através de barramentos (conjuntos de trilhas - conceitualmente semelhantes a pequenos fios elétricos).

Cada barramento utiliza um protocolo de controle, para gerenciar a comunicação e possui diferentes características, tais como largura e banda.

(4)
(5)

Introdução

Cada dispositivo de E/S ligado ao computador será gerenciado pelo SO. Para que o SO saiba como se comunicar e controlar cada um destes dispositivos, um Device Driver deverá ser fornecido.

Os dispositivos de E/S podem ser classificados grosseiramente entre:

Armazenamento;

Comunicação;

Interface com usuário;

(6)
(7)

Entrada e Saída

As operações de E/S costumam ser feitas através:

E/S em porta

E/S mapeada em memória

(8)

Entrada e Saída

E/S em porta:

Portas específicas para realizar operações de entrada e saída foram os primeiros recursos computacionais criados para que o processador solicite, ou envie, dados para dispositivos de E/S. O endereço das portas são fixados por hardware.

Estes dispositivos precisam ser associados a um endereço de porta, em nível de BIOS, e estarão disponíveis apenas em Modo Real ou Modo Kernel.

Obs.: processadores trabalhando em modo 64 bits

(9)

Entrada e Saída

Exemplos de portas de comunicação de cada dispositivo:

Intervalo de endereço de E/S Dispositivo

000h - 00Fh Controlador DMA

020h - 021h Controlador de Interrupção

040h - 043h Relógio

200h - 20Fh Controlador de jogo 2F8h - 2FFh Porta serial secundária

320h - 32Fh Controlador de disco 378h - 37Fh Porta paralela 3D0h - 3DFh Controlador gráfico

(10)

Entrada e Saída

E/S em porta - exemplo em porta paralela:

mov dx,378h

mov al, CARACTERE out dx, al

Link com exemplo:

(11)

Entrada e Saída

E/S mapeada em memória:

Uma abordagem um pouco mais nova do que a utilização de portas de E/S é o mapeamento de um determinado endereço de memória física para um dispositivo de E/S.

Desta forma, quando o processador executa um MOV no endereço associado a um dispositivo de E/S, estará lendo, ou gravando, do dispositivo associado a aquele endereço.

Este mapeamento dá origem ao plug & play, que é o processo de escolha de um determinado endereço para um novo dispositivo em tempo de execução.

(12)

Entrada e Saída

E/S mapeada em memória:

Esta abordagem ainda é dominante em sistemas embarcados e é utilizada pelos SOs apenas em modos de execução com a permissão adequada, tal como em modo Kernel ou em Drivers.

Nela, intervalos de memória física são reservados para os dispositivos de E/S.

(13)

Entrada e Saída

E/S mapeada em memória:

Memória Principal

IOMMU MMU

Dispositivo CPU

endereço físico

(14)

Entrada e Saída

E/S mapeada em memória - exemplo LPT:

FFE0: Caractere para imprimir FFE2: Status da impressora Código Assembly: aguarda: mov bx, [FFE2] and bx, 1 cmp bx, 0 je 0000 imprimi: mov [FFE0], ax ...

(15)

Entrada e Saída

E/S mapeada em memória - Atividade prática!

(16)

Entrada e Saída

DMA - Acesso Direto à Memória:

Para dispositivos que trabalham com grandes volumes de dados (tal como em discos), é um enorme desperdício fazer com que o processador se responsável por solicitar que cada dado lido seja armazenado em memória.

Somado a isto, lembramos que todos os dispositivos de E/S costumam ser muito mais lentos do que a memória RAM.

(17)

Entrada e Saída

DMA - Acesso Direto à Memória:

O DMA também é protegido, por questões de segurança (utilização apenas através de modo Kernel).

Durante transferências DMA, o processador pode operar apenas com seus registradores e memória cache, pois a memória RAM e o barramento estarão ocupados na transferência dos dados.

(18)
(19)

Entrada e Saída

Método Vantagem Desvantagem

Porta Simples Limitado

Mapeado em memória Plug and Play Utiliza memória

DMA Eficiente Complexo

(20)

Interface de E/S da aplicação

Entrada e Saída

(21)

Interface de E/S da aplicação

Além do modo básico de acesso aos dispositivos de E/S, outras questões muito importantes devem ser levadas em consideração ao se planejar as interfaces de comunicação: drivers.

Há diferentes dimensões, quando se diferenciam dispositivos de E/S. No próximo slide são apresentados exemplos:

(22)

Interface de E/S da aplicação

Dimensão Variação Exemplo

Modo de transferência de dados Caractere Bloco

Terminal Disco Método de acesso Sequencial

Aleatório

Modem SSD Agendamento de transferência Síncrono

Assíncrono HDD Teclado Compartilhamento Dedicado Compartilhável Fita magnética Teclado Velocidade do dispositivo Latência Tempo de busca Taxa de transferência Atraso entre operações

Direção de E/S Apenas leitura Apenas escrita Leitura e escrita CD-ROM Controladora gráfica Disco

(23)

Interface de E/S da aplicação

Por questões de segurança, somente os drivers dos dispositivos executam em modo com a permissão necessária para comunicar com os dispositivos.

Entretanto, a maioria dos OS também tem um escape que permite aos aplicativos enviar comandos diretamente para os drivers dos dispositivos, caso necessário. Em Linux, isto é feito através da chamada de sistema ioctl():

#include <sys/ioctl.h>

(24)

Interface de E/S da aplicação

Dispositivos de Rede:

Devido às características e ao crescente número de aplicações que precisam trocar dados através de redes:

Mecanismos diferenciados foram criados na maior partes dos SOs para comunicação em rede;

Uma das formas mais comuns é a interface

socket, que funciona como se fosse um cabo (ou

um encanamento) para troca de dados entre dois computadores;

(25)

Interface de E/S da aplicação

Relógios e Temporizadores:

Três tipos de serviços de tempo são geralmente necessários em SOs modernos:

Obter a data e hora atuais;

Obter o tempo decorrido desde um evento prévio;

Definir um temporizador para disparar um evento X em um momento T.

■ Um temporizador de interrupção programável (PIT - programmable interrupt timer) pode ser utilizado como gatilho de operações e para medir o tempo decorrido.

(26)

Interface de E/S da aplicação

Bloqueio em E/S:

As operações de E/S podem ser: ● Com Bloqueio (síncrona):

■ o processo é movido para a fila de espera quando a E/S é solicitada. Ao terminar a E/S ele retorna para a fila de prontos.

● Sem Bloqueio (assíncrona):

■ o processo continua sem interrupção, mesmo que a operação E/S não tenha concluído.

■ uma abordagem comum dos programadores (para evitar o bloqueio) é de implementar um programa com múltiplas

threads. Desta forma, apenas as threads responsáveis

(27)

Interface de E/S da aplicação

Bloqueio em E/S:

(28)

Interface de E/S da aplicação

Buffering (retenção):

Um buffer é uma região de memória que guarda dados temporariamente. O buffering em E/S é realizado por ao menos 3 principais motivos:

1.

Diferença de velocidade entre dois dispositivos;

2.

Diferença de tamanho em transferência de dados;

(29)

Interface de E/S da aplicação

Buffering (retenção):

1.

Diferença de velocidade entre dois dispositivos:

■ Um dispositivo lento deve escrever dados em um buffer.

■ Tudo que foi escrito será enviado rapidamente ao dispositivo rápido.

É comum a implementação de 2 buffers:

■ Enquanto o dispositivo lento escreve no buffer A,

o dispositivo rápido lê do buffer B. E vice-versa.

Isto é conhecido como double buffering e é

muito utilizado em animação gráfica (um buffer é visualizado e outro está em construção)

(30)

Interface de E/S da aplicação

Buffering (retenção):

2.

Diferença de tamanho em transferência de dados: ■ É mais utilizado em comunicação de redes;

As mensagens escritas em sockets costumam ser muito maiores do que os pacotes de transferência podem carregar. Então, cada mensagem é quebrada em partes menores (em um buffer) e enviadas ao destinatário;

■ Ao receber a mensagem fragmentada, o destinatário deverá armazenar os pacotes em um

buffer, até ser capaz de montar a mensagem

(31)

Interface de E/S da aplicação

Buffering (retenção):

3.

Para suportar “semântica de cópia”:

■ Quando um processo solicita uma escrita em disco, os dados a serem gravados são copiados da memória do usuário para um buffer no kernel.

■ Os dados serão eventualmente gravados pelo

kernel mais tarde:

■ É importante para o SO registrar o tempo correto da solicitação, para fins de registro no arquivo.

■ É utilizado em outros contextos, não apenas para discos.

(32)

Interface de E/S da aplicação

Caching:

Um cache é uma cópia de dados em algum local mais ágil do que o original (geralmente armazenado):

Caching e Buffering são muito similares, exceto que o buffer detém a única cópia de um determinado dado naquele momento, enquanto o cache supõem a duplicidade em outro local.

■ Na prática ambos trabalham em conjunto. Ex.: após um buffer ser escrito no disco, a cópia em memória pode ser usada como cache.

(33)

Interface de E/S da aplicação

Spooling (reserva de dispositivo):

Um spool (simultaneos peripheral operations on-line) é um buffer especial para dispositivos que não suportam fluxos de dados intercalados.

Ex.: uma impressora não pode imprimir dois documentos ao mesmo tempo.

Nesta caso, cada buffer é um arquivo.

Ao terminar de escrever o arquivo (fechar), o SO sabe que aquele buffer está pronto para ser enviado ao dispositivo.

(34)

Conclusões

Do ponto de vista do processador, tudo são operações de escrita e leitura (saída e entrada);

Diferentes recursos de E/S devem ser disponibilizados pelo SO, principalmente para resolver divergências de multiprogramação e de paralelismo.

Dos níveis mais baixos (driver) até os níveis mais alto (chamadas de sistema) o SO é responsável por controlar e viabilizar operações que executam fundamentalmente sobre o hardware.

(35)

Exercícios

1.

Geralmente os computadores tem dois gerenciadores DMA, com 4 canais cada.

a. Pesquise qual é a utilização mais comum para cada canal.

b. Qual é o comando Linux para verificar a utilização dos canais DMA?

2.

Sobre drivers:

a. Busque informações e informe quais são os principais requisitos para desenvolver um driver de dispositivo para o SO Windows.

b. Por que drivers necessitam de privilégios especiais e não podem rodar em modo usuário?

(36)

Exercícios

3.

Classifique as dimensões de um socket, no que se refere às seguintes dimensões:

a. Modo de transferência de dados; b. Método de acesso;

c. Agendamento de transferência; d. Compartilhamento;

e. Direção de E/S;

4.

Pesquise e apresente uma função equivalente à

Referências

Documentos relacionados

Depois de terminar o livro, Hong Kong, antes de ser devolvido à China, convenceu-me de que embora a liberdade económica seja uma condição necessária para as liberdades política

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,

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

Para tratar a diversidade, a complexidade, e as diferentes formas de operações de cada periférico, as interfaces empregam no seu projeto um outro componente, o

– Usam calor para transferir a tinta sob a forma de um gás para papel com cobertura de plástico ou para materiais como alumínio, aço inox ou tecidos a base de poliéster.

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

 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