Dispositivos de [Entrada E SaíDa]

13
Sistemas Operacionais Princípios Básicos de software de entrada e saída TURMA BSI3NA – NOITE André – Diogo – Leonardo – Sergio – Thiago – Thiago Leonel

description

Developed in www.inforium.com.br Bacharelado em Sistemas de Informação Brasil - MG Sergeduardo

Transcript of Dispositivos de [Entrada E SaíDa]

Page 1: Dispositivos de [Entrada E SaíDa]

Sistemas Operacionais Princípios Básicos de software de entrada e saída

TURMA BSI3NA – NOITE

André – Diogo – Leonardo – Sergio – Thiago – Thiago Leonel

Page 2: Dispositivos de [Entrada E SaíDa]

1. Princípios básicos de software de entrada e saída.

O subsistema de E/S de um SO é um software complexo que trata a forma de acesso

aos periféricos, sua principal função é padronizar as rotinas de entrada e saída de forma a

reduzir seu processo otimizando o sistema. Devido ao grande número de dispositivos de

entrada e saída disponíveis no mercado, o software de controle de entrada e saída requer uma

implementação onde novos dispositivos possam ser adicionados sem a necessidade de alterar

a interface de programação com o usuário final, tal façanha é possível através de sua estrutura

de organização que possui quatro camadas, como pode ser visto na figura 1.1.

Figura 1.1 - Estrutura do subsistema de E/S

Conforme pôde ser observado, a camada inferior é composta pelo hardware dos

dispositivos de E/S. A interface que ela apresenta à camada imediatamente superior (drivers

de dispositivos) é baseada em UCP e controladores. Em resumo, o hardware interage com os

drivers através das interfaces físicas (paralelas ou seriais) e seus controladores e pelo emprego

de interrupções e DMA1. ¹

1DMA - (Direct Memory Access) - O Acesso Direto à Memória, DMA, permite que outros componentes além do processador, acessem a memória RAM diretamente.

Page 3: Dispositivos de [Entrada E SaíDa]

2. Drivers de Dispositivo - (Device Drivers)

Composta por módulos de software a camada de drivers de dispositivos tem como

objetivo fornecer a camada superior uma visão uniforme dos dispositivos, permitindo assim o

acesso a um dispositivo de entrada e saída.

A programação de registradores internos e controladores é realizada nessa camada do

subsistema de E/S, definindo as rotinas de acesso e gerência de um dispositivo, onde cada

dispositivo um requer um driver apropriado.

Para oferecer a camada superior uma ‘visão uniforme’ os dispositivos são

classificados pela unidade de transferência de dados como, orientados a bloco e orientados a

caractere. Um dispositivo orientado a bloco transfere dados entre o periférico e o sistema

por meio de blocos de tamanho fixo, normalmente entre 512 bytes e 32 kbytes.

Já um dispositivo orientado a caractere, transfere seus dados byte a byte, sem necessidade

de considerar qualquer estrutura.

3. E/S independente do dispositivo

Implementa funções e procedimentos a todos os dispositivos de E/S. As principais são:

‣ Escalonamento de E/S: Reordena o acesso á dispositivos de E/S compartilhados por

vários processos, visando a melhora do sistema.

Ex: discos magnéticos.

‣ Denominação: Cada periférico possui um nome lógico para sua identificação,

generalizando as rotinas de acesso.

‣ Buferização: Processo que armazena os dados temporariamente no decorrer de uma

transferência entre camadas do software de E/S.

Ex: Numa transferência de 128Kb será possível transferir de 4Kb em 4Kb.

‣ Cache de dados: Armazena dados frequentemente acessados na memória RAM2, 3com intuito de facilitar e agilizar as requisições do sistema.

‣ Alocação e liberação: Em dispositivos que permitem o acesso de um usuário por vez,

se faz necessário o gerenciamento pelo software de E/S, a fim de evitar acessos

2 RAM - (Random Access Memory) - A memória de acesso aleatório permite tanto a leitura como a gravação e regravação de dados. Após desligamento do computador ela perde seus dados.

Page 4: Dispositivos de [Entrada E SaíDa]

concorrentes. É então adotada a técnica de spooling que disponibiliza os pedidos em

uma fila, para que sejam atendidos um a um.

Ex: Fila de impressão.

‣ Direitos de Acesso: Define a forma de acesso aos dispositivos para cada usuário, o

SO deve garantir o acesso de forma correta.

‣ Tratamento de erros: O software de E/S deve informar a camada superior à

ocorrência de erros de uma operação.

4. Entrada e saída a nível de usuário

O usuário lida com dispositivos de entrada e saída realizando chamadas de alto nível

ao software de E/S independente de dispositivo, através de uma interface associada a

bibliotecas de programação de entrada e saída que geralmente são fornecidas pelo fabricante

do compilador de uma linguagem qualquer. Tais bibliotecas se relacionam com o programa

do usuário para compor a aplicação.

5. Dispositivos periféricos típicos

Dentre os vários dispositivos de E/S, seria impossível abordar todos aqui, portanto

descreveremos os comuns e fundamentais ao funcionamento do computador, como: Disco

Rígido, Vídeo, Teclado e Rede, apontando suas peculiaridades pertinentes a entrada e saída de

dados.

6. Discos Rígidos (Hard Disk, HD ou Winchester)

São os dispositivos de armazenamento de dados mais usado nos computadores, Nele, é

possível guardar não só os arquivos, mais também todos os dados do(s) sistema(s) operacional

(is) que estão instalados no computador.

Características e funcionamento dos HDs

Uma das principais características do HD é o armazenamento de grandes quantidades

de dados, diferente da memória RAM que os dados apagam após o desligamento do

computador, no HD os dados ficam armazenados. Fisicamente, um disco rígido pode ser visto

como um composto por dois grandes blocos. O primeiro é um conjunto de discos metálicos

Page 5: Dispositivos de [Entrada E SaíDa]

(aço e alumínio) superpostos e dispostos em alturas diferentes com auxílio de um eixo central.

O segundo bloco é uma estrutura mecânica que suporta um conjunto de cabeçotes, um para

cada superfície de disco. Essa estrutura é capaz de realizar movimentos de vai e vem de

maneira que os cabeçotes possam ser deslocados desde a borda do disco até o centro. Nessa

rotação dos discos e junto com o movimento retilíneo dos cabeçotes, toda a superfície do

disco pode ser alcançada por ser respectivo cabeçote.

Figura 6.1

A figura 6.1 mostra um HD visto por baixo e por cima. Note que a parte inferior contém uma placa com chips.

Trata-se da placa lógica, um item muito importante para o funcionamento do HD.

A placa lógica contém chips responsáveis por diversas tarefas. O mais comum é

conhecido como controladora, pois gerencia uma série de itens do HD, como a

movimentação dos discos e das cabeças de leitura/gravação , o envio e recebimento de dados

entre os discos e o computador, e até rotinas de segurança.

Outro dispositivo comum à placa lógica é um pequeno chip de memória conhecido

como buffer. Cabe a ele a tarefa de armazenar pequenas quantidades de dados durante a

comunicação com o computador. Como esse chip consegue lidar com os dados de maneira

mais rápida que os discos rígidos, ele agiliza o processo de transferência de informações.

Page 6: Dispositivos de [Entrada E SaíDa]

Figura 6.2. Componentes do HD Figura 6.3. Componentes do HD

Gravação e leitura de dados

A superfície de gravação dos pratos é composta de materiais sensíveis ao magnetismo

(geralmente, óxido de ferro). O cabeçote de leitura e gravação manipula as moléculas desse

material através de seus pólos. Para isso, a polaridade das cabeças muda numa freqüência

muito alta: quando está positiva, atrai o pólo negativo das moléculas e vice-versa. De acordo

com essa polaridade é que são gravados os bits (0 e 1). No processo de leitura de dados, o

cabeçote simplesmente "lê" o campo magnético gerado pelas moléculas e gera uma corrente

elétrica correspondente, cuja variação é analisada pela controladora do HD para determinar os

bits.

Para a "ordenação" dos dados no HD, é utilizado um esquema conhecido como

"geometria dos discos". Nele, o disco é "dividido" em cilindros, trilhas e setores:

Figura 6.4. Trilhas, Cilindros e Setor

Page 7: Dispositivos de [Entrada E SaíDa]

As trilhas são círculos que começam no centro do disco e vão até a sua borda, como se

estivesse um dentro do outro. Essas trilhas são numeradas da borda para o centro, isto é, a

trilha que fica mais próxima da extremidade do disco é denominada trilha 0, a trilha que vem

em seguida é chamada trilha 1, e assim por diante, até chegar à trilha mais próxima do centro.

Cada trilha é dividida em trechos regulares chamados de setor. Cada setor possui uma

determinada capacidade de armazenamento (geralmente, 512 bytes).

Tempo de acesso

Para realizar um acesso a um disco rígido, é necessário posicionar o cabeçote de

leitura e escrita sob um determinado setor e trilha onde o dado será lido ou escrito. De acordo

com a organização de um disco, esse procedimento de posicionamento implica um certo

tempo. Neste caso o tempo de acesso, que é definido por três fatores:

SEEK TIME – (t seek) É o tempo que a cabeça de leitura leva para ir de uma trilha à outra do

disco, isto é deslocar o cabeçote de leitura e escrita até o cilindro correspondente à trilha a ser

acessada .

TEMPO DE LATÊNCIA (t latency) – Tempo necessário, uma vez que o cabeçote já esteja na

trilha correta, para o setor ser lido, ou escrito, se posicionar sob o cabeçote de leitura e escrita

no início do setor a ser lido (ou escrito). Esse tempo também é denominado de atraso

rotacional (rotational delay).

Definição: Atraso necessário para a cabeça de leitura/escrita chegar ao setor desejadoç

TRANSFER TIME (t transfer) – Corresponde ao tempo necessário à transferência dos dados,

isso é, à leitura ou escrita dos dados.

CACHE - Os discos rígidos atuais possuem uma pequena quantidade de memória cache

embutida na controladora, que executa várias funções com o objetivo de melhorar o

desempenho do disco rígido. Neste cache ficam guardados os últimos dados acessados pelo

processador, permitindo que um dado solicitado repetidamente, possa ser diretamente

transmitido a partir do cache, dispensando uma nova e lenta leitura dos dados pelas cabeças

de leitura. Este sistema é capaz de melhorar assustadoramente a velocidade de acesso aos

Page 8: Dispositivos de [Entrada E SaíDa]

dados quando estes sejam repetitivos, o que acontece com freqüência em servidores de rede

ou quando é usada uma grande quantidade de memória virtual.

Os dados lidos pelas cabeças de leitura, originalmente são gravados no cache, e a

partir dele transmitidos através da interface. Caso a interface esteja momentaneamente

congestionada, os dados são acumulados no cache e em seguida transmitidos de uma vez

quando a interface fica livre, evitando qualquer perda de tempo durante a leitura dos dados.

Apesar do seu tamanho reduzido, geralmente de 512 ou 1024 Kbytes, o cache

consegue acelerar bastante as operações de leitura de dados, claro que quanto maior e mais

rápido o cache, maior será o ganho de performance.

Estrutura Raid (Redundant Array if Independent Disks) - Matriz Redundante de Discos

Independentes. Apesar do nome ser complicado, o conceito é bem simples: fazer com que

vários discos rígidos trabalhem em conjunto como se fosse um só

A estrutura RAID se propõe a solucionar problemas associados com o armazenamento

de grandes quantidades de dados. Nesse caso para um aumento do volume de dados é

necessário o emprego de várias unidades físicas de discos. Um sistema RAID consiste em

usar mais de um disco rígido para melhorar determinadas características do conjunto:

confiabilidade, capacidade e/ou velocidade.

O uso de RAID é mais comum em máquinas servidoras de arquivos, RAID

inicialmente foi feito para servidores, no entanto, muitas placas-mãe SOHO (Small Office

Home Office -> Pequenos escritórios ou usuário doméstico).

Existem 9 tipos de RAID redundantes e um tipo de array não redundante (RAID 0),

abaixo vimos os tipos mais comuns.

Raid 0 :Dois ou mais discos rígidos são agrupados. Os dados são gravados distribuindo-se a

carga entre os discos que fazem parte da matriz (geralmente em blocos de 32kb ou 64Kb de

dados). Este método não é muito seguro, já que se um participante da matriz falhar, todos os

dados serão perdidos. No entanto, é o mais rápido, pois a leitura e gravação são distribuídas.

Page 9: Dispositivos de [Entrada E SaíDa]

RAID 1: Também chamado de espelhamento: um dos discos serve de espelho para o outro.

Tudo que é gravado em um dos discos é gravado no outro. Isso faz com que a performance de

gravação seja um pouco prejudicada, no entanto, a leitura dos dados é acelerada, já que temos

dois discos lendo o mesmo arquivo. É uma forma bem segura, mas também a mais cara,

sendo que apenas 50% do espaço disponível é aproveitado.

RAID 5 :Melhor relação custo x performance x segurança. Para esse tipo de RAID, há

necessidade de no mínimo 3 discos. As informações de paridade são gravadas em cada disco

de tal forma que se um dos integrantes da matriz falhar, as informações nele contidas podem

ser reconstruídas. Sua performance de gravação é menor do que a do RAID 0 e maior que a

do RAID 1. A performance de leitura é a melhor entre as aqui citadas, já que as informações

estão distribuídas entre três ou mais discos.

Page 10: Dispositivos de [Entrada E SaíDa]

7. Vídeo

O vídeo é sem duvida o periférico que possui maior interação usuário x computador,

proporcionando que suas ações sejam intuitivas em uma interface GUI. Mas nem sempre foi

assim, na década de 70 os monitores não eram tão populares entre usuários, pois havia um

alto custo da memória necessária para o tratamento de imagens. Posteriormente as máquinas

passaram a serem compostas por uma tela ‘mapeada’, uma matriz de 40 linhas por 80 colunas,

onde cada elemento correspondia a um caractere que era armazenado na memória de vídeo

cujas alocações representavam posições da matriz.

Atualmente apesar de toda evolução tecnológica os princípios são praticamente os

mesmos, exceto que hoje a placa gráfica é integrada ou interconectada a sua placa mãe,

característica que aumenta a interação entre processador, vídeo e outros dispositivos de

entrada e saída, além do desempenho e eliminando o gargalo do sistema. O vídeo ainda possui

uma estrutura de matriz com linhas e colunas, mas pode ser acessado como: texto ou gráfico.

Como texto é organizado em uma matriz de caracteres, já como gráfico é organizada em

pixels, onde a placa define a resolução e as cores de cada pixel determinando o tipo da

controladora, (EGA,VGA,SVGA, e mais).

No caso específico de uma placa 3D, existe um potente processador gráfico capaz de

efetuar operações de visualização como perspectiva, iluminação, etc., bastando apenas, para

isso que a aplicação forneça um comando.

8. Teclado

O teclado é um periférico clássico utilizado para entrada de dados, seu principio básico

é gerar um caractere á cada tecla pressionada. Por baixo das teclas existe uma malha de

condutores que se interagem como uma matriz, possibilitando que o processador de teclado

Page 11: Dispositivos de [Entrada E SaíDa]

possa identificar a tecla pressionada por meio do scan code. A cada tecla pressionada é gerada

uma interrupção de hardware, acarretando e execução de um tratador de interrupções próprio

para o teclado. Nesse caso o tratador substitui o código armazenado pelo scan code por um

código ASCII3, ou EBCDIC4, dependendo da implementação que satisfaça tal chamada do

sistema. Depois de gerado um código ASCII (código padrão atual), o mesmo é armazenado

em um buffer de teclado, de onde é recuperado através de chamadas do SO que realiza a

leitura dos códigos produzidos pela digitação no teclado. Outra característica do SO é o

gerenciamento de janelas ou consoles ‘abertos’ para o usuário, de forma a direcionar os

caracteres digitados á janela correta, tal direcionamento é atribuído a dois métodos:

centralizado e dedicado.

O método centralizado forma um buffer maior composto por vários mini-buffers onde

um elemento aponta para a janela aberta. No método dedicado os números de acessos à janela

é limitado pelo buffer, a transferência de dados é feita em uma área de memória criada pela

estrutura associada ao terminal.

9. Rede

Conjunto de computadores conectados com a finalidade de compartilhar recursos, como:

discos, impressoras, arquivos etc. Uma rede pode ser simples, por exemplo, uma conexão

ponto a ponto de duas máquinas, ou mais complexa, já dependente de todo um aparato de

hardware para formar uma interface de rede com tecnologia ethernet ou ATM, a tecnologia é

responsável por determinar a velocidade de transmissão de dados, e de recepção de dados. A

placa de rede é responsável por transformar sinais digitais em sinais analógicos, possui

também um buffer que armazena dados durante uma transmissão, algumas até possuem seu

próprio processador dedicado a essa função. Um software de rede é organizado em camadas

como na figura 9.1, modelo OSI.

3 ASCII (American Standard Code for Information Interchange), adotado como codificação padrão, utilizado em computadores que usam escala decimal, 0 a 127. 4 EBCDIC (Extended Binary Coded Decimal Interchange Code), criado pela IBM como um padrão no início dos anos 1960's.

Page 12: Dispositivos de [Entrada E SaíDa]

Figura 9.1 - Modelo OSI

A comunicação em uma rede envolve muitos problemas, um deles é a transmissão de dados,

onde ocorre o seguinte, se um computador A deseja se comunicar com um computador B,

então o remetente será responsável por quebrar essa mensagem gerando pacotes,

fragmentando a mensagem. Da outra ponta a máquina B recebe os dados em pacotes e

remonta a mensagem, a cada pacote recebido é gerada uma interrupção para que o pacote

possa ser transferido á um buffer maior para ser reconstruído. Tudo isso ocorre de acordo com

a MTU (Maximun Transfer Unit), ou seja, unidade de transferência Máxima dos pacotes.

Dentre muitos problemas durante a transmissão pode ocorrer, perda de pacotes,

eventualmente um passar a frente do outro, (ocorre quando um pacote é retransmitido), o

destinatário então deve estar apto a reordenar os pacotes que tenham sido recebidos em ordem

inversa. Todo esse processo é tratado pelo protocolo no caso o TCP/IP.

O computador B deve realizar uma chamada de sistema para informar que deseja receber uma

mensagem, caso não faça, a mensagem será armazenada e nunca será lida causando o

entupimento de buffer. Após solicitar a leitura de uma mensagem podem ocorrer duas

situações, a mensagem já pode estar disponível ao computador B, ou ainda não foi recebida.

Para a primeira opção o computador B lê a mensagem e continua seu processo, para a segunda

opção o processo de B deve ser bloqueado até que a mensagem bloqueada chegue. O driver

de rede faz essa verificação, caso uma mensagem seja recebida ele faz uma consulta

verificando se há algum processo esperando por essa mensagem, se houver, esse processo é

então passado para o estado apto a executar e após escalonado irá dar continuidade a sua

execução, caracterizando uma transmissão síncrona, já em uma transmissão assíncrona, o

processo B seria responsável pela verificação de disponibilidade da mensagem, fazendo

polling para ler tal mensagem.

Page 13: Dispositivos de [Entrada E SaíDa]

10. Conclusão

Os dispositivos de entrada são os responsáveis pela entrada de dados no sistema

computacional, Tais dados necessitam de outros componentes do computador para serem

processados e convertidos em um formato legível à máquina para que possam ser tratados e

devolvidos ao usuário através dos dispositivos de saída. Este processo requer muito do SO,

que gerencia estes procedimentos, com interrupções e recuperações de dados quando

solicitado por uma “chamada de sistema”, assim fica evidente a necessidade de tornar os

periféricos o mais independente possível do SO, com seus próprios micro-processadores.