2. Visão Geral
Principais objetivos:
• Estabelecer uma interface que seja a mais simples possível para
que as aplicações possam controlar as distintas características dos
dispositivos de entrada/saída.
• otimizar a entrada/saída para obtenção de um maior paralelismo,
tendo em vista que tais dispositivos são em geral componentes
críticos para o desempenho.
Enfim,
Controlar todos os dispositivos de entrada/saída (E/S) do computador, emitindo
comandos para os dispositivos, atendendo interrupções e manipulando erros.
3. Visão Geral
• Estruturação em camadas de HW e SW, a fim de prover uma
interface simples e confiável para o usuário e suas aplicações.
• Desta forma, as camadas inferiores escondem das superiores os
diversos detalhes (características) de cada periférico e suas
diferenças (velocidade de operação, unidade de transferência,
representação de dados, tipos de operação etc).
6. Princípiosde hardware: Dispositivosde E/S
Dispositivos podem variar de diversas maneiras:
Transf. por caractere (terminal) ou por bloco deles (disco);
Dispositivos de Blocos
Um dispositivo de blocos é aquele que armazena informação em blocos de tamanho
fixo, cada um com seu próprio endereço. Os tamanhos de blocos comuns variam de
512 bytes a 32.768 bytes.
A Propriedade Essencial de um dispositivo de blocos é que cada bloco pode ser lido ou
escrito independentemente de todos ou outros. Discos rígidos, CD-ROMs e pen drivers são
dispositivos de blocos mais comuns.
Dispositivos de Caracteres
Envia ou recebe um fluxo de caracteres, sem considerar qualquer estrutura de
blocos. Ele não é endereçável e não dispõe de qualquer operação de
posicionamento.
Impressoras, interfaces de redes, mouses e a maior parte de outros dispositivos que são
diferentes do disco podem ser considerados dispositivos de caractere.
7. ExemploDispositivosdeBlocoeCaracteres
[ronner@localhost Documents]$ cat /proc/devices
Character devices:
1 mem (Acesso Memória Física)
2 /dev/vc/0 (Console Virtual)
3 tty (Dispositivos do Tipo Terminais Estilo BSD (TTY)
4 /dev/ptmx (Multiplexador para dispositivos do tipo estilo AT&T )
5 vcs (Dispositivos de captura de console virtual)
6 misc (Mouses não seriais)
7 input (Núcleo de entrada – Normalmente contém um mouse)
8 sound (Dispositivo de Áudio)
9 usb (Dispositivo USB)
10 alsa (Advanced Linux Sound Driver (Driver Avançado de som linux)
Block devices:
1 fd Unidade de disco flexível
2 ide0 Canal IDE Primário
3 ide0 Canal IDE Secundário
4 sda1 Canal Sata
8. • A comunicação de um dispositivo com o sistema computacional é feita através do
envio de sinais (cabo ou ar) num ponto de conexão chamado de porta.
• O meio usado por um ou mais dispositivos para conexão com o computador é
chamado de barramento.
• Para cada barramento, é definido um protocolo que especifica um conjunto de
mensagens que podem ser enviadas pelos fios.
Princípios de hardware: Dispositivos de E/S
9. Dispositivos de E/S
• Dispositivos podem variar de diversas maneiras:
O acesso aos dados armazenados pode ser sequencial (modem) ou aleatório
(CD-ROM);
Os dados podem ser transferidos de forma síncrona (fita) ou assíncrona
(teclado);
Os dispositivos podem ser restritos a um único processo (fita) ou
compartilhados simultaneamente por vários (teclado);
O acesso pode ser apenas para leitura (CD-ROM), apenas para escrita (CRT)
ou para leitura e escrita (disco);
A velocidade de acesso pode variar muito (frequentemente, estes dispositivos
são os mais lentos de um sistema computacional).
10. Dispositivosde E/S
Responsáveis pela comunicação entre o computador e o mundo
externo.
Muitos tipos de dispositivos são usados em computadores, como:
• dispositivos de armazenamento (discos, fitas)
• dispositivos de transmissão (placas de rede, modems)
• dispositivos de interface com usuários (tela, teclado, mouse)
A transferência de dados, realizada por intermédio dos controladores,
pode ser através de blocos de informações ou palavra a palavra.
12. Princípiosdehardware:Controladoresde
Dispositivos
Unidades de E/S consistem tipicamente de:
Componentes mecânicos (o dispositivo propriamente dito)
Componentes eletrônicos (o controlador)
Tal diferença deve ser ressaltada, uma vez que o SO vê o controlador e não o
dispositivo.
Normalmente, mini e microcomputadores usam um barramento único para
comunicação entre CPU e os controladores (através de device drivers)
Mainframes frequentemente usam um modelo diferente, no qual múltiplos
barramentos e computadores especializados de E/S (canais de E/S) aliviam parte
da carga da CPU.
13. Princípiosdehardware:Controladoresde
Dispositivos
Como o processador envia comandos e dados a um controlador para que seja feita
uma transf. de dados?
O controlador possui memória e registradores próprios para armazenar
dados e sinais de controle, de forma a executar instruções enviadas pelo device
driver
O SO realiza E/S, escrevendo comandos e seus parâmetros nestes registradores
dos controladores.
o As instruções de E/S especiais podem ser usadas para especificar a
transferência de um byte ou palavra para uma porta de E/S, que tem
um determinado endereço.
o A instrução de E/S faz com que o dispositivo apropriado seja
selecionado de acordo com o sinal transmitido no barramento e que os
bits sejam então transferidos para um registrador ou a partir de um
registrador do disp.
14. E/S Mapeamento de Memória
• Cada controlador tem alguns
registradores usados para a
comunicação com a CPU.
• Por meio da escrita nesses
registradores, o sistema operacional
pode comandar o dispositivo para
entregar ou aceitar dados, alternar por
si mesmo entre ligar e desligar ou
executar alguma outra tarefa.
• A partir da leitura desses registradores,
o sistema operacional pode descobrir o
estado do dispositivo, se ele está
preparado para aceitar um novo
comando e assim por diante.
15. Princípiosdehardware:AcessodiretoàMemória
• Não importa se a CPU tem ou não E/S mapeada na memória: ela precisa
endereçar os controladores dos dispositivos para poder trocar dados com eles.
• A CPU pode requisitar dados de um controlador de E/S, um byte de cada vez,
mas, fazendo isso desperdiça muito tempo de CPU, de modo que um esquema
diferente chamado de acesso direto à memória (direct memory access - DMA) é
muitas vezes usado.
• O sistema operacional somente pode usar DMA se o hardware tem o controlador
de DMA, existente na maioria dos sistemas.
• Algumas vezes, esse controlador é integrado nos controladores de disco e em
outros controladores, mas esse projeto requer um controlador de DMA separado
para cada dispositivo.
• Normalmente, um único controlador de DMA se encontra disponível (por
exemplo, na placa-mãe) para controlar as transferências para vários dispositivos,
as quais podem ocorrer, muitas vezes simultaneamente.
16. Princípiosdehardware:AcessodiretoàMemória
• O DMA visa melhorar a performance geral do micro, permitindo
que os periféricos transmitam dados diretamente para a
memória, poupando o processador de mais esta tarefa.
• Existem 8 portas de DMA e, como acontece com os pedidos de
interrupção, dois dispositivos não podem compartilhar o mesmo
canal DMA, caso contrário haverá um conflito. Os 8 canais DMA
são numerados de 0 a 7, sendo nos canais de 0 a 3 a
transferência de dados feita a 8 bits e nos demais a 16 bits. O
uso de palavras binárias de 8 bits pelos primeiros 4 canais de
DMA visa manter compatibilidade com periféricos mais antigos.
17. Princípiosdehardware:AcessodiretoàMemória
• Justamente por serem muito lentos, os canais de DMA são
utilizados apenas por periféricos lentos, como drives de
disquete, placas de som e portas paralelas padrão ECP.
Periféricos mais rápidos, como discos rígidos, utilizam o Bus
Mastering, uma espécie de DMA melhorado.
• O Canal 2 de DMA é nativamente usado pela controladora de
disquetes. Uma placa de som geralmente precisa de dois canais
de DMA, um de 8 e outro de 16 bits, usando geralmente o DMA
1 e 5. O DMA 4 é reservado à placa mãe. Ficamos então com os
canais 3, 6 e 7 livres. Caso a porta paralela do micro seja
configurada no Setup para operar em modo ECP, precisará
também de um DMA, podemos então configurá-la para usar o
canal 3.
19. Princípiosdehardware:InterrupçõesRevisitadas
Em hardware, as interrupções trabalham da seguinte maneira:
• quando um dispositivo de E/S finaliza seu trabalho, ele gera uma interrupção
(presumindo que as interrupções tenham sido habilitadas pelo sistema
operacional).
• Ele faz isso enviando um sinal pela linha do barramento à qual está associado. O
sinal é detectado pelo chip controlador de interrupção localizado na placa-mãe, o
qual então decide o que fazer.
Como ocorre uma interrupção. As conexões entre os dispositivos e o
controlador de interrupção atualmente utilizam linhas de interrupção no
barramento em vez de fios dedicados.
20. Princípiosdehardware:AcessodiretoàMemória
Operação de leitura em disco sem suporte à DMA:
• A Principio o controlador lê um bloco (um ou mais setores) do dispositivo
serialmente, bit a bit, até que todo o bloco esteja no buffer interno do
controlador;
• Em seguida, ele calcula a soma de verificação para conferir se não
ocorreu nenhum erro de leitura;
• Então, o controlador causa uma interrupção;
• Quando o SO inicializa o atendimento, ele pode ler o bloco do disco a
partir do buffer no controlador, um byte ou uma palavra cada vez, em um
laço, onde cada interação lê um byte ou palavra do registrador do
controlador e armazena na memória principal.
Isto consome um tempo apreciável da CPU;
Solução: Usar DMA (Direct Memory Access).
21. Princípiosdehardware:AcessodiretoàMemória
Operação de leitura em disco com suporte à DMA:
• Primeiramente, a CPU programa o controlador de DMA inserindo valores em
seus registradores de modo que ele saiba o que transferir e para onde
transferir (passo 1 na Figura);
• Ele também emite um comando para o controlador de disco ordenando
carregar os dados do disco para seu buffer interno e verificar a soma da
verificação. Quando os dados que estão no buffer do controlador são válidos
o DMA pode começar.
• O controlador de DMA inicia a transferência emitindo, pelo barramento, uma
requisição de leitura para o controlador de disco (passo 2).
• Normalmente, o endereço de memória para onde escrever está nas linhas de
endereços do barramento, de modo que quando o controlador de disco busca
a próxima palavra de seu buffer interno ele sabe onde escrevê-la. A escrita na
memória é outro ciclo de barramento-padrão (passo 3).
22. Princípiosdehardware:AcessodiretoàMemória
Operação de leitura em disco com suporte à DMA:
• Quando a escrita está completa, o controlador de disco envia um sinal de
confirmação para o controlador de DMA, também por meio do
barramento (passo 4),
• O controlador de DMA então incrementa o endereço de memória e
diminui o contador de bytes. Se o contador de bytes ainda é maior do
que 0, os passos de 2 a 4 são repetidos até que o contador seja 0.
• Nesse momento, o controlador de DMA interrompe a CPU para deixá-la
ciente de que a transferência está completa. Quando sistema operacional
inicia o atendimento da interrupção, ele não precisa copiar o bloco do
disco para a memória: ele já está lá.
25. Princípiosde Software: DeviceDrivers
• Device driver é o comando de um dispositivo ou programa. É a forma a partir da qual
uma unidade periférica cria uma interface com o sistema operacional para se conectar
com o dispositivo do hardware.
• Vejamos um exemplo prático: quando se conecta uma impressora a um computador,
esta impressora requer a instalação do "driver" (que é instalado a partir de um CD ou
de um disquete que vem junto com o equipamento), sem o qual ela não conseguirá
fazer a interface com o Computador. O "driver" é o elemento que faz esse comando. É,
literalmente, o dirigente.
• Foi a solução encontrada para que os Sistemas Operacionais sejam compatíveis com
diferentes tipos de equipamentos. Cada impressora, por exemplo, tem suas
peculiaridades de hardware, logo torna-se inviável que o Sistema Operacional tenha
conhecimento sobre todos os equipamentos disponíveis. O Sistema Operacional
disponibiliza bibliotecas de programação, para que o fabricante possa criar uma
interface entre seu equipamento e o software.
26. Tratadores de interrupção
1. Salva quaisquer registradores que não foram salvos pelo software de
interrupção.
2. Estabelece um contexto para a rotina de tratamento da interrupção.
3. Estabelece uma pilha para a rotina de tratamento da interrupção.
4. Sinaliza o controlador de interrupção. Se não há um controlador de
interrupção centralizado, reabilita a interrupção.
5. Copia os registradores de onde foram salvos para a tabela de
processos.
6. Executa a rotina de tratamento da interrupção.
7. Escolhe o próximo processo a ser executado.
8. Estabelece o contexto da MMU para o próximo processo a ser
executado.
9. Carrega os registradores do novo processo, incluindo sua PSW.
10. Inicializa a execução do novo processo.
27. PRINCÍPIOS DE SOFTWARE: DEVICE
DRIVERS
Posicionamento lógico dos drivers dos dispositivos. Na
realidade toda comunicação entre os drivers e os controladores é
feita por meio do barramento.
31. RAID
O sistema RAID consiste em um conjunto de dois ou mais
discos rígidos com dois objetivos básicos:
tornar o sistema de disco mais rápido (isto é, acelerar o
carregamento de dados do disco), através de uma técnica
chamada divisão de dados (data stripping ou RAID 0) e/ou
tornar o sistema de disco mais seguro, através de uma
técnica chamada espelhamento (mirroring ou RAID 1).
Essas duas técnicas podem ser usadas isoladamente ou em
conjunto.
32. RAID - Implementação Via
software
• Na implementação via software, o sistema operacional gerencia
o RAID através da controladora de discos, sem a necessidade de
um controlador de RAIDs, tornando-a mais barata.
• Nesse tipo de implementação, todo o processamento necessário
para o gerenciamento do RAID é feito pela CPU. Toda
movimentação de dados(leitura e escrita) é feita por uma
camada de software que faz a abstração entre a operação lógica
(RAID) e os discos físicos, e é controlada pelo sistema
operacional.
• A configuração do RAID via software é feita pelo sistema
operacional, que precisa ter implementado no próprio núcleo a
utilização de RAIDs via software. É possível criar RAIDs via
software no Mac OS X, Linux, FreeBSD, OpenBSD e no Windows
(versão server). Alternativamente, podem ser criados com algum
software especialmente dedicado a manutenção de discos
rígidos do fabricante da placa mãe (quando há suporte para
RAID, é claro).
33. RAID - Implementação Via
Hardware
• Controladoras RAID em hardware usam layouts de disco
proprietários (e diferentes). Por isso, normalmente não é possível
misturar controladoras de fabricantes diferentes. Eles não
utilizam recursos do processador. O BIOS - Basic Input/Output
System - pode iniciar (dar boot) por ela, e uma integração maior
com o driver de dispositivo pode oferecer um melhor tratamento
de erros.
• Uma implementação de RAID em hardware requer pelo menos
uma controladora especialmente dedicada para isso. Em uma
estação de trabalho (PC comum) isso pode ser uma placa de
expansão PCI, PCI-e ou uma placa integrada à placa-mãe.
Controladoras utilizando a maioria dos tipos de drive podem ser
usadas - IDE/ATA, Serial ATA, SCSI, SSA, Fibre Channel, e às vezes
uma combinação.
• A controladora e os discos utilizados devem estar isolados.
Podem estar conectados diretamente ao computador, ou
conectados via SAN. A controladora gerencia os drives e faz os
cálculos de paridade necessários pelo nível de RAID escolhido.
34. RAID - Implementação Via
Hardware
• A maioria das implementações em hardware proveem
cache de leitura e escrita, o que (dependendo da carga de
I/O) melhora a performance. Na maioria dos casos, o cache
de escrita é não-volátil (protegido por bateria), e portanto,
escritas pendentes não são perdidas no caso de uma falha
no suprimento de energia.
• Implementações em hardware promovem performance
garantida, não sobrecarregam o processador e podem
suportar vários sistemas operacionais, já que a
controladora apresentará ao sistema operacional um disco
simples.
• A maioria das implementações em hardware também
suporta o "hot-swapping", permitindo que discos com falha
sejam substituídos enquanto o sistema está sendo
executado.
35. RAID 0
RAID 0 – DATA STRIPPING
• No nível RAID 0, a informação é segmentada e, cada segmento, armazenado em cada
unidade do arranjo. Neste nível, não há redundância, pois há somente uma divisão
(stripping) da informação. A única vantagem do RAID 0 é o ganho de velocidade no
acesso a informação.
Fonte: Internet??
36. 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.
Fonte: http://technet.microsoft.com/pt-br/library/cc716445.aspx
37. RAID 1
RAID 1 – DATA MIRRORING
• No RAID nível 1, a informação é
gravada igualmente em todas as
unidades (mirror – espelho). À
partir deste nível, hà redundância
de dados, pois com a duplicidade da
informação, quando uma unidade
falha, o seu espelho (mirror)
assume.
Fonte: http://pt.wikipedia.org/wiki/RAID
38. 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.
Fonte: http://technet.microsoft.com/pt-br/library/cc716445.aspx
39. RAID - (zero) + 1
• O RAID 0 + 1 é uma combinação dos níveis 0 (Striping) e 1 (Mirroring), onde os
dados são divididos entre os discos para melhorar o rendimento, mas também
utilizam outros discos para duplicar as informações. Assim, é possível utilizar o
bom rendimento do nível 0 com a redundância do nível 1.
• No entanto, é necessário pelo menos 4 discos para montar um RAID desse tipo.
Tais características fazem do RAID 0 + 1 o mais rápido e seguro, porém o mais
caro de ser implantado. No RAID 0+1, se um dos discos vier a falhar, o sistema
vira um RAID 0.
• Ex: se os dois discos que possuam a sequencia A1, A3, A5 falharem ao mesmo tempo,
haverá perda de dados. Se apenas uma das controladoras falhar, o sistema continua
funcionando, mas sem outra tolerância a falha e sem o ganho de velocidade.
• Vantagens:
• segurança contra perda de dados;
• pode falhar 1 dos HD's, ou os dois HD's do mesmo DiskGroup,
porém deixando de ser RAID 0 + 1.
• Desvantagens:
• alto custo de expansão de hardware (custo mínimo = 4N HDs);
• os drives devem ficar em sincronismo de velocidade para obter a
máxima performance.
Fonte: http://pt.wikipedia.org/wiki/RAID
40. 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.
• O algoritmo utilizado para a paridade utiliza cerca de 30% de espaço em disco para
armazenar a paridade.
Fonte: Internet
41. 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.
Fonte: http://technet.microsoft.com/pt-br/library/cc716445.aspx
42. RAID - RAID 1+0
• O RAID 1+0, ou 10, exige ao menos 4 discos rígidos. Cada par será espelhado,
garantindo redundância, e os pares serão distribuídos, melhorando desempenho.
Até metade dos discos pode falhar simultaneamente, sem colocar o conjunto a
perder, desde que não falhem os dois discos de um espelho qualquer — razão
pela qual usam-se discos de lotes diferentes de cada ‘lado’ do espelho.
• É o nível recomendado para bases de dados, por ser o mais seguro e dos mais
velozes, assim como qualquer outro uso onde a necessidade de economia não se
sobreponha à segurança e desempenho.
• Vantagens:
• segurança contra perda de dados;
• pode falhar um ou dois dos HDs ao mesmo tempo, dependendo de qual avaria.
• Desvantagens:
• alto custo de expansão de hardware (custo mínimo = 4N HDs);
• os drivers devem ficar em sincronismo de velocidade para
obter a máxima performance.
Fonte: http://pt.wikipedia.org/wiki/RAID