sexta-feira, 2 de outubro de 2015

"Throughput": Inglês, Informatiquês e as velocidades de padarias e computadores


Inglês é um idioma muito peculiar. Afora as exceções (como verbos irregulares, uso de proposições, etc) é uma língua bastante lógica e relativamente simples. Muitos vão discordar, claro. Lógica e simplicidade não tem que ser coisas óbvias, na maior parte das vezes, precisam ser encontradas e essa busca pela lógica e simplicidade pode ser demorada e trabalhosa.

Vejamos, por exemplo, a palavra "input". "Input" significa, numa tradução bastante livre:"entrada de insumos" ou, em alguns casos, apenas "insumos". Insumos são as matérias-primas necessárias para fazermos alguma coisa. Por exemplo, quais de que insumos são necessários para fazermos um pão? Claro, isso vai vai depender do tipo de pão que se vai fazer, mas em geral para fazer um pão, precisamos de água, farinha, sal, açúcar e fermento. Neste caso, os "insumos" são os ingredientes da receita. Para montar um carro, uma montadora usa as peças separadas e segue um roteiro específico, um plano de montagem. Os "insumos", então, são as peças. Para montar uma tabela dos jogos de um campeonato de futebol, precisamos de informações sobre quais times estão participando, como os jogos foram sorteados, quais jogos já aconteceram, quais seus resultados, etc. Os "insumos", neste caso, são as informações. Insumo, ou entrada, é o que entra num sistema, o que o alimenta de modo que ele produza um resultado, às vezes também chamado de "Saída". "Entrada” e “saída”, aqui, não se referem às portas ou caminhos de entrada e saída, como poderiam em outros contextos, mas sim àquilo que entra e que sai do sistema. Entram ingredientes, sai pão; entram peças, sai um carro; entram as informações necessárias e sai uma tabela dos jogos do campeonato.

A sequência de passos do processo pelo qual o sistema recebe um input e produz um output é o que chamamos de "algoritmo" de um sistema. Todo processo de produção de coisas concretas envolve "insumos" (ingredientes, peças, informações sobre o campeonato) e um "algoritmo" (roteiro de ação, o "como fazer", seja pão, um automóvel ou uma tabela do campeonato).

Se input representa os insumos, ou a "entrada", do sistema, output significa o resultado, o produto ou a "saída", do sistema. Essas duas palavras em inglês, input e output, são, cada uma, formadas por duas outras palavras em inglês, assim:

input = in + put


output = out + put

onde:

in significa "em", "dentro";

out significa "fora"; e

put é um verbo que pode ter muitos significados mas, aqui, pode ser traduzido como "colocar algo em algum lugar" ou "passar algo por algum lugar".

Assim, temos que input significa colocar (algo) dentro, inserir, ou antão aquilo é que inserido no sistema para que ele produza um resultado (nem sempre desejado). Input é tanto o ato de fornecer algo ao sistema quanto aquilo que é fornecido.

Output, por sua vez, significa colocar (algo) para fora, ou aquilo que produzido e posto para fora do sistema, o resultado da ação do sistema sobre o input. Alguns talvez prefiram dizer que output é o resultado da interação do sistema com o input, o que, para os fins deste texto, dá quase na mesma.

Até aqui, tudo muito simples,até quem estudou o verbo "to be" durante tantos anos na escola já sabia disso tudo. Talvez não fosse capaz de explicar com clareza, mas entendia os significados de input e output.

Mas, e a expressão throughput?

Through significa, bastante literalmente, "através", em alguns casos pode significar "por intermédio de". E agora?

vamos tentar o mesmo que fizemos antes.

throughput
= through + put

"Colocar através?"

"Atravessar" algo pelo sistema?

Não tão literalmente, claro, mas bem próximo disso. Throughput significa, a passagem de algo pelo sistema, o tempo entre o momento que os ingredientes (input) entram no processo de fazer pão (sistema) e o momento em que o pão (output) sai do sistema. Mais especificamente, throughput significa a velocidade do processo em que o sistema produz um output a partir de um input. Em uma padaria, seria a velocidade em que se produzem pães, a partir dos ingredientes, supondo que o estoque destes seja bem grande, quantos pães são produzidos por hora? Numa montadora de carros, o throughput seria a medida de quantos carros são produzidos por unidade de tempo, digamos, carros por  semana ou por mês. Podemos chamar essas velocidades de "taxa de produção" (de pães ou de carros. Uma “taxa de produção” também poderia ser medida pra a produção de tabelas dos jogos do campeonato mas, neste caso, como a tabela provavelmente será feita uma única vez (mesmo que, depois, façamos várias cópias, a elaboração da tabela está terminada) é mais interessante falar em “tempo de produção” de uma tabela. Um detalhe importante de lembrar é que, a taxa (ou velocidade) de um processo é inversamente proporcional ao tempo que o processo demora. Assim, quanto maior o tempo de um processo, menos sua velocidade.

Em informatiquês brasileiro (um idioma esquisito que mistura português e inglês e é falado por gente esquisita que em geral gosta de ficção científica e toma muito café) throughput pode ser traduzido como "taxa de transferência", “velocidade de processamento”, ou “velocidade de comunicação”. Por exemplo, o tempo entre um comando dado ao computador, digamos, "abra meu navegador de internet" e a janela do navegador estar aberta na tela do computador depende de uma série de transferências de dados. Primeiro, temos a velocidade de digitação do comando, que representa o tempo entre o usuário decidir enviar o comando e inseri-lo corretamente através do teclado. Depois, temos a velocidade com o comando inserido é transferido à CPU. Depois, há uma série de operações complexas entre a memória e o processador. A memória RAM recebe os dados do comando a uma velocidade de entrada (tempo necessário para que cada bit seja lido e gravado na memória) e enviada ao processador a uma velocidade de saída (tempo necessário para que cada bit seja lido na memória e enviado ao processador), temos a velocidade de transmissão dos dados entre a memória e o processador, depois o tempo de processamento, depois o tempo de envio de volta à memória, etc, até que são enviados à tela do computador, onde você vê a janela do navegador na sua frente (e, ao mesmo tempo, tem o navegador disponível para acessar as páginas que quiser). Cada passo deste processo ocorre a velocidades diferentes. Cada passo do processo pode ter uma velocidades diferente, relacionada ao componente do sistema sendo utilizado. Os dados "passam" ou "fluem" através de partes diferentes do sistema, a taxas (ou velocidades) específicas para cada passagem.

Da mesma forma que teríamos pães por hora, no caso de medirmos a taxa de produção de uma padaria, ou carros por semana como medida da taxa de produção de automóveis, a velocidade de processamento ou taxa de transferência (throughput) de um sistema computacional é uma medida de quantas unidades de informação podem ser processadas em um dado intervalo de tempo e suas unidades de medida são bits por segundo (bps, ou Kbps, Mbps, etc) ou Bytes por segundo (Bps, KBps, Mbps, etc).

Gargalos de velocidade


Teoricamente, é possível medir a velocidade de cada componente de em um computador ou sistema de computadores. Cada componente terá sua velocidade própria, já que não todos iguais e desempenham tarefas diferentes. Também se pode medir a velocidade dos sistema como um todo. O tempo total de processamento de um sistema será a soma dos tempos parciais de processamento de cada parte (ou componente) do sistema. Assim, não é difícil concluir que a velocidade total máxima de qualquer sistema será sempre limitada pelos componentes mais lentos. Tarefas de execução mais lenta em um processo complexo limitarão a velocidade do processo. Por exemplo, em uma padaria, podemos acelerar a preparação da massa, mas o tempo que esta demora para crescer (fermentar) e o tempo que os pães demoram a assar não pode ser reduzido além de um certo limite, sobe pena de estragar a massa e queimar o pão por for a, mantendo-o cru por dentro. Componentes que reduzem a velocidade do sistema através deste tipo de mecanismo são chamados de gargalos (bottlenecks, em inglês). Da mesma forma que o gargalo de uma garrafa reduz a vazão de líquido para dentro e para fora da garrafa, gargalos em sistemas de computador reduzem a velocidade total do sistema, mesmo que a velocidade dos outros componentes seja muito mais alta.

É por isso que o ganho em velocidade de processamento com um processador muito rápido pode ser pequeno se, por exemplo, as velocidades de leitura e escrita dos elementos da memória forem baixas. Para evitar isso, alguns processadores mais rápidos vêm acompanhados de unidades de memória de capacidade relativamente pequena, mas com velocidades muito altas, chamadas memórias cache, que agilizam o processamento total. Da mesma forma, a velocidade de acesso a dados em uma rede de computadores ou da internet dependerá da velocidade de processamento do computador (levando em conta a quantidade de recursos disponíveis no sistema) e da velocidade da conexão (transmissão e recepção de dados) com rede. No limite máximo de velocidade dos componentes, a velocidade do sistema não será limitada pela velocidade de cada componente do sistema, mas pela taxa de transferência entre componentes do sistema. No caso dos computadores pessoais, está será a velocidade com que os dados passam pelos “fios” impressos na placa-mãe, em sua transmissão entre um componente e outro.

Gargalos precisam ser levados em conta, por exemplo, na hora de escolher os componentes para montar ou fazer upgrade em um computador, estruturar uma rede de computadores, entre outras coisas.

Este raciocínio pode ser estendido para qualquer sistema, desde a implementação de uma montadora de automóveis até uma padaria ou o sistema de trânsito de uma cidade. Muitas vezes, o ganho em eficiência pode ser maior quando se investe em melhorar o sistema nos gargalos do que quando se investe diretamente nas partes do sistema que já são muito eficientes.


Material de referência para termos técnicos, jargão de informática, etc, em inglês e português:

Computer Hope: Auxílio e informações gratuitos sobre computadores. (Computer Hope: Free computer help and information): http://www.computerhope.com/jargon.htm

Página de terminologia da IBM (IBM Terminology Page):  https://www-01.ibm.com/software/globalization/terminology/

Pagina de glossário do WhatIs.com: http://whatis.techtarget.com/glossary/Computing-Fundamentals

em português:
Dicionário técnico do Guia do Hardware: http://www.hardware.com.br/termos/ 


---------------------------------------------
Minha gratidão a todos que leram versões aneriores deste texto a contribuíram com críticas, siugestões, etc.


Última revisão, 05.jun.2016

domingo, 24 de junho de 2007

O TCC e Você *

Decidir o tema do seu Trabalho de Conclusão de Curso (TCC) e como elaborá-lo pode ser bem difícil e pode gerar alguma angústia, especialmente se a cobrança for maior que os esclarecimentos fornecidos. Há quem pense em desistir do curso no final, ou encare a coisa como um Transtorno de Conclusão de Curso. Mas não é preciso deixar a coisa atingir níveis tão dramáticos. As dicas a seguir foram elaboradas para alunos de Ciências Biológicas, mas com um pouco de criatividade, cada um pode achar as equivalências para sua própria área de conhecimento.

Em primeiro lugar, é preciso lembrar que Trabalho de Conclusão de Curso é só isto mesmo. Um trabalho que você faz como pré-requisito para concluir o curso. Se ficar legal, e se você quiser, pode até dar origem a uma publicação fora da Universidade. Publicando-o ou não, você se forma e decide o que vai fazer depois de formado. Não é nenhum compromisso de ficar na mesma área de pesquisa ou de trabalho depois de formado. Não é um compromisso para o resto dos seus dias com aquele tema, não é nada como escolha profissional ou casamento.


Por outro lado, o TCC determina sua vida num prazo mais curto. Isso de duas formas.


A primeira diz respeito ao trabalho em si: você prefere fazer trabalho de campo ou de laboratório? Você tem tempo e disponibilidade para fazer coletas de campo? O assunto interessa o suficiente ou vai ser um sofrimento ter que ler tudo que encontrar a respeito? Todas estas questões devem ser levadas em consideração, porque, em breve, você vai ter que ler tudo que encontra sobre o assunto do seu TCC. Pode acreditar, um assunto interessante acaba ficando chato e um assunto que já começou chato fica insuportável depois de um tempo. Você descobre que muita gente escreveu coisas aparentemente sem sentido (pelo menos para você) e, pior, vai ter que falar nestas "bobagens" na revisão bibliográfica. Por outro lado, descobre que muitas coisas se repetem e acaba tendo que ler muitos trabalhos dizendo a mesma coisa. Mas é necessário, porque pode haver alguma novidade em algum deles. O que você lê pode não fazer diferença nenhuma, mas o que você não leu pode fazer a maior falta. Sim, é a lei de Murphy aplicada ao trabalho acadêmico.


A segunda forma com que o TCC pode influenciar sua vida é a seguinte: suponhamos que você escolha um projeto de execução muito difícil, ou que dependa muito de fatores externos, como clima etc. Bom, independentemente de qualquer destas coisas, se o TCC não for concluído, você não se forma. Já vi dissertações de mestrado perdidas em incêndios ou cortes na floresta e outros tipos de “catástrofes naturais e artificiais”. Claro que num TCC a chance de haver algo do tipo é menor, já que a duração do projeto deve ser mais curta. Mas pense em um projeto que você pode imaginar concluído, incluindo todos os passos do trabalho.

Ao escolher um tema, procure trabalhos a respeito do assunto e comece a pensar em como você faria o seu projeto. Tente imaginar as dificuldades, problemas, etc. Na dúvida entre dois projetos, é melhor escolher o mais simples (geralmente mais viável).


Antes de decidir, pesquise sobre as áreas de conhecimento que parecem mais interessantes. Converse com os professores, sempre com mais de um, eles podem ter dicas e abordagens diferentes. Pergunte sobre tópicos que lhe interessam, leia sobre as diferentes áreas da genética, ecologia, zoologia, botânica, etc. Veja as possibilidades de trabalho, assim você vai ter mais subsídios para fazer sua escolha.
Lembre-se que muitos projetos podem ser desenvolvidos em mais de uma área. Por exemplo, um projeto sobre dispersão de sementes de figueiras pode ser desenvolvido na botânica (do ponto de vista da planta), na Zoologia, com o estudo do morcego que dispersa as sementes, ou na ecologia (interações ecológicas). Portanto, eleger uma pergunta pode ser inicialmente mais importante que escolher a área ou o orientador.

Se você tem a idéia de fazer algum trabalho "ao ar livre" (como em Botânica, Zoologia, Ecologia, algumas áreas da Genética, etc.), comece a prestar atenção em parques, na rua mesmo, no seu quintal, em terrenos baldios... Sempre aparecem perguntas interessantes. Além disso, você começará a exercitar a sua capacidade de observação.


Se a intenção é fazer um trabalho de laboratório, veja as possibilidades que a sua faculdade oferece, e se há outros locais onde os experimentos podem ser desenvolvidos.

Só escolha um projeto definitivo quando tiver certeza que vai poder realizá-lo. Isto depende de você, mas depende mais ainda de coisas sobre as quais você pode não ter nenhum controle, como a disponibilidade de reagentes, materiais, espaço e equipamentos.


Comece a freqüentar bibliotecas, de universidades e instituições de pesquisa. Na cidade de São Paulo, entre outras, há a Bireme, as bibliotecas da USP, do Instituto Butantan, etc. Aprenda a fazer pesquisas de bibliografia pela internet e a procurar as revistas e livros nas estantes. Não é sempre tão óbvio quanto parece. Tome consciência de que você não vai fazer seu TCC apenas com dados e artigos retirados da internet, de jornais ou revistas sobre ciência (como a Superinteressante). É importante familiarizar-se com publicações técnicas e científicas. A maioria destas está em inglês, o que não é motivo para desistir. Inglês técnico é bem fácil e você vai se descobrir lendo com alguma fluência depois de ler alguns trabalhos.


Se a intenção é fazer um trabalho de revisão bibliográfica, você deve prestar atenção particular ao parágrafo anterior, mas também deve procurar conhecer "ao vivo" o tema que vai estudar. Pense em como você faria um trabalho prático a respeito, por exemplo. Vá ao Zoológico, Jardim Botânico, observe os organismos envolvidos no seu estudo. Você vai entender melhor por que os trabalhos que você leu foram feitos daquela forma, vai ter idéias de trabalhos futuros e vai poder melhorar a qualidade de seu trabalho atual.


É sempre bom lembrar que uma das principais finalidades do TCC é aprender a elaborar e escrever um trabalho próprio de pesquisa. Este trabalho (apesar de trabalhoso, perdão pelo pleonasmo!) não deve causar sofrimento. Procure um tema de estudo que você terá prazer em desenvolver e concluir, algo cuja resposta você ache importante, seja para resolver um problema prático, seja para avançar um pouco no conhecimento, ou disponibilizar material para pesquisadores e colegas que vierem depois de você. O ideal é que seja algo que você queira muito saber.
Enfim, o mais importante é que o TCC não seja uma fonte de sofrimento e angústia, mas de aprendizado e crescimento. Todo processo de crescimento é doloroso, mas a dor pode ser aquela de músculo sendo trabalhado, como em uma aula de alongamento, uma dor que passa aos poucos e deixa uma sensação de alívio e leveza. Ou pode ser como uma enxaqueca. No seu lugar, eu escolheria o alongamento.

________________________
*Este texto foi adaptado de uma lista de sugestões que escrevi, há tempos, para alguns alunos preocupados com o Tabalho de Conclusão de Curso.