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.