Desempenho de Entrada/Saída
Tecnologias para melhorar o desempenho do sistema
Alison Carrera∗, Alessandro Nazario †, Adeilson Junior‡ e Victor Sales§
∗ † ‡ § Departamento de Estatística e Informatica
∗ † ‡ § Universidade Federal Rural de Pernambuco, Recife, Brasil
Email: ∗ [email protected], † [email protected],
‡ [email protected], § [email protected]
Resumo — Segundo John D. Carpinelli [1] os computadores
precisam ser capazes de interagir com o mundo externo e
dispositivos além da memória. Cada ano que se passa existe um
aumento dessas interações de dispositivos de entrada e saída com
o meio computacional. Um dos maiores desafios para os
projetistas de sistemas de entrada e saída é a grande diversidade
de dispositivos periféricos que precisam de uma interação com a
cpu. Isso faz com que se vá em busca de métodos de controle, por
exemplo, as questões de latência de acesso e throughput. Para se
ter um tempo total de resposta bom para a aplicação é preciso ter
uma atenção também na performance do sistema de I/O e não
somente no tempo do processador.
Como já sabemos, para que exista um bom funcionamento
de um computador é necessário que todos os dispositivos se
comuniquem perfeitamente. Tal comunicação é realizada
através de caminhos chamados de barramentos. Para a
avaliação dos parâmetros técnicos dos barramentos temos duas
características importantes, a largura de banda e a latência.
Essas duas características iram ser abordadas com mais
detalhes nesse artigo[3].
Palavras-chaves—Sistema E/S; Dispositivos E/S; desempenho;
Arquitetura de Computadores; RAID; Barramentos.
SISTEMA
I. INTRODUÇÃO
Uma das funções do sistema operacional é controlar todos
os dispositivos de E/S (entrada/saída)[2]. A dificuldade para se
desenvolver e implementar uma solução de gerenciamento
eficiente e geral vem da grande diversidade de dispositivos
existentes atualmente. Frente a isso um bom projeto de sistema
de entrada e saída é caracterizado pela presença de
expansibilidade e robustez frente a falhas. O desempenho
dessas características é dependente das característica do
dispositivo, de sua conexão, de sua hierarquia de mémoria e
também do sistema operacional.
Estimar a performance do sistema de entrada/saída
depende, muitas vezes, da aplicação. Em determinados
ambientes, inicialmente, é necessário se preocupar com o
throughput do sistema, que é o número de tarefas concluídas
por unidade de tempo. Nesse caso, a banda passante será o
fator preponderante e ela poderá ser divida pela quantidade de
dados que podem ser movidos através do sistema em
determinado interval de tempo e pelas operações de
entrada/saída podem ser feitas por unidade de tempo.
Um dos dispositivos de entrada/saída que vem tento
bastante estudo são os discos de armazenamento. A forma de
leitura e escrita nesse dispositivo está sempre sendo solicitada.
E para que não se tenho perda de performace do sistema em
geral, por conta do dispositivo de armazenamento, é necessário
que sejá criada técnicas de acesso ao dispositivo. Evitando
assim interrupções em processos dependentes.
II. IMPACTO DE ENTRADA E SAÍDA NO DESEMPENHO DO
Vamos começar com um exemplo para ilustrar melhor a
importãncia de se ter um sistema de entrada e saída bem
projetado para ganhar desempenho em geral.
Suponha que tenhamos um determinado benchmark que
execute em 100 seg, dos qauis 90 segundos são gastos no
processador e o restante em atividades de entrada/saída. Se o
tempo de processador melhorar em 50% ao ano para os
próximos 5 anos, mas o tempo de entrada/saída não melhorar,
quanto esse programa vai ficar mais rápido ao final dos cinco
anos[4]?
Solução:
Temos que o tempo decorrido é igual a soma do tempo de
processador com o tempo de E/S. Logo temos que o tempo de
E/S é de 10s.
Após n
anos
Tempo do
processador
Tempo
de E/S
Tempo
decorrido
% Tempo decorrido
gasto em E/S
0
90s
10s
100s
10%
1
90/1,5 = 60s
10s
70s
14%
2
60/1,5 = 40s
10s
50s
20%
3
40/1,5=27s
10s
37s
27%
4
27/1,5=18s
10s
28s
36%
5
18/1,5=12s
10s
27s
45%
Tabela de de cálculos e resultados de anos do exemplo.
Analisando a tabela acima notamos que efetuando
melhorias de 50% no processador ajudará somente nas
primeiras interações de melhoramento, mas nas demais começa
a ser imperceptível o tempo decorrido para a execução de um
programa. Isso por que não está existindo melhorias no sistema
de E/S.
Nesse cenário se torna inviável o investimento para
melhorar cada vez mais o tempo do processador, e agora se
torna melhore olhar para o tempo de E/S. Isso porque em cinco
anos ele já é responsável por 45% do tempo decorrido para a
execução de um programa. Com isso já notamos a importância
do investimentos em projetos de sistemas de E/S de alto nível.
III. UTILIZANDO SISTEMA RAID PARA MELHORAR O
DESEMPENHO
O termo RAID, é denominado Redundant Array of
Independents Drives que significa “Conjunto Reduntante de
Discos Independentes”[5]. Basicamente o sistema trabalha com
mais de um discos para que melhore capacidade, desempenho,
confiabilidade que se pretende atingir. Mas como o nosso foco
é no desempenho o tipo de RAID que entra em questão é o
RAID 0.
No RAID 0 todos os HDs passam a ser acessados como se
fossem um único drive, ou seja, quantidade de armazenamento
de cada HD seria somado e formado apenas um único disco.
Esse tipo de operação melhora na capacidade e no
desempenho. Quando os arquivos são gravados, estes são
fragmentados nos discos existentes. Isso permite que os
fragmentos passam a ser lidos e gravados simultaneamente[5].
O ganho de desempenho é da ate 50% mais rápido, pois os
arquivos estão fragmentados, tornando o acesso aos fragmentos
de um arquivo paralelo.
Existem outros tipos de RAIDs e suas combinações, esse
sistema pode ser criado por software ou por hardware. Por
software podemos dar como exemplo o CentOS, que é um
Sistema Operacional utilizado em servidores. Já por hardware
basta acessar a controladora RAID no computador e efetuar as
devidas configurações de acordo com o tipo de característica
que pretente atingir.
um limite máximo de banda passando pelo barramento exigido
pela comunicação.
Não é fácil para o projetista melhorar o desenpenho dos
barramentos de comunicão. Existem limitações, como por
exemplo, a limitação por fatores físicos, onde o comprimento
do barramento e os dispositivos conectados são os fatores
limitantes para que se tenho uma comunicação rápida. O que se
pode trabalhar é ter uma melhora positiva em uns aspectos e ou
negativa em outro, se torna uma balança.
Por exemplo, para obter um tempo de resposta rápido para
as operações de entrada/saída, precisamos minimizar o tempo
para a efetivação do acesso ao barramento. Por outro lado, para
sustentar altas velocidades nas operações de entrada/saída,
precisamos maximizar a banda passante do barramento. A
banda passante do barramento pode ser incrementada com o
uso de mais bufferização e pelo envio de blocos de dados
maiores, providências que contribuem para aumentar o retardo
do acesso ao barramento. Fica claro que esses dois objetivos,
acesso rápido ao barramento e banda passante alta, podem
levar a conflitos na determinação dos parâmetros de projeto
adequados[4].
V. CONCLUSÃO
A existência de uma grande variedade de características
presentes nos diversos dispositivos de entrada/saída e as
técnicas para integrar tais dispositivos em um sistema de
computador cada dia que passa se torna mais complexa. A
inovação para os sistemas é sempre necessário, para o
desempenho geral do sistema, não se deve olhar somente para
o poder de processamento de uma cpu, mas tabém para o
conjunto em geral. Colocando também níveis de prioridade
para os dispositivos de E/S.
Um sistema de entrada/saída tem que suportar um gama de
dispositivos diferentes, com as mais diversas latências e
velocidades, tornando assim o projeto para esse sistema um
belo desafio.
REFERÊCIAS
[1]
IV. ANÁLISE DE BARRAMENTOS DE COMUNICAÇÃO
Em um sistema computacional, os diversos subsistemas
precisam ter interfaces uns com os outros[4]. Um barramento
nada mais é do que um meio de link de comunicação
compartilhado, onde todos os dispositivos de E/S iram se
comunicar com o processador e mémoria. O maior problema
de se ter uma estrutura de barramento é de que ele pode criar
gargalhos que tornam os processos lentos. Isso porque existe
[2]
[3]
[4]
[5]
Carpinelli, J. D. Carpinelli; Computer System Organization &
Architecture; Addison Wesley; primeira edição revisada.
Tanenbaum, A. S; Sistemas Operacionais Modernos – Modern
Operating Systems; Editora LTC; tradução da primeira edição.
National Instruments; Conhecendo as diversas tecnologias de
barramentos para controle de instrumentos.
Hennessy, John L.; Patterson, David A.. Organização e projeto de
computadores: a interface hardware/ software. Tradução de Nery
Machado Filho. 2 ed. Rio de Janeiro: LTC
Artigo sobre introdução sobre RAID e como configurar RAID via
hardware e software – Adriel Lucas da Silva Viana.
Download

Paper Title - Departamento de Estatística e Informática