Zero Copy – O que é?

A um tempo atrás, quando comecei a ler e estudar sobre kernels, me deparei com um termo bem usado mas não fazia a menor idéia do que se tratava, apenas que não ocorriam cópias da memória, ou seja, nada ou zero copy.

Então, antes de mais nada o Zero Copy é um termo para designar operações que não efetuam copias de memória.

Mas porque tem que ser copiados dados da memória?

Um exemplo é um servidor web. O servidor, um aplicativo do usuário recebe informações, processa-as e envia para o cliente informações. Neste processo, num sistema operacional sem zero copy, seriam feitas duas cópias de dados: uma quando é recebida os dados pela rede, do driver de rede, no espaço do kernel, para o servidor, no espaço do usuário e outra cópia das informações do aplicativo para o kernel para este envia-las pela rede. E também há o processo de troca de contexto do usuário para do kernel e do kernel para o usuário, que omiti para facilitar o nosso entendimento.

Nota-se que as cópias ocorrem porque o espaço do kernel e do usuário não são compartilhados. Por causa disto, uma chamada do sistema, por exemplo a write, copia todas as informações do espaço usuário para o espaço do kernel para então escrever no descritor de arquivos. Outro exemplo, é a chamada do sistema pipe ou o “|” nos shells, conforme descrevi brevemente neste post.

Uma possível solução é utilizar o memória mapeada, com o mmap. Porém com o mmap, ainda é necessária a cópia entre os buffers de envio e recebimento do kernel, poupando apenas a cópia para o espaço do usuário. Outro rico é de ocorrer de outro processo fechar o arquivo mapeado, que provavelmente ocorrerá algo catastrófico, se não tratado! :-)

Ah! O ALSA, prove na sua API, as Direct Access (MMAP) Functions, onde o buffer do som é compartilhados, economizando recursos.

Então, para solucionar o problema, por exemplo no caso do servidor, foi implementada a chamada do sistema sendfile, onde [bem basicamente] ao invés de copiar os dados da memória, são copiados os descritores dela. Desta forma economiza-se memória, ciclos do processador e polui-se menos o cache.

Mais informações em http://www.linuxjournal.com/article/6345, onde é dado uma explicação mais profunda e com figurinhas ilustrativas :-)

Apresentação do Computador Quântico

Foi apresentado pela empresa D-Wave, segundo a empresa, o primeiro computador quântico.
Numa matéria publicada pelo arstechnica.com, um resumo sobre a apresentação é feito.

Resumidamente, o computador possui 16 qubits e esperasse para a metade de 2008 um computador quantico com 1,024 qubits.
O computador não foi apresentado fisicamente aos espectadores do evento e segundo a empresa ele esta no escritório da empresa numa temperatura de 0,004 acima do zero absoluto.

O computador apresenta meios de conexões com outros softwares, por exemplo de banco de dados e o hype dele é:

“A tecnologia quantica pode resolver o que é conhecido por problemas NP-Completos”.

Novamente, é esperar para verificar a validade deste anuncio e torcer para que logo seja possível utilizar tal tecnologia em pesquisas científicas, banco de dados e quem sabe, em nossas casas.


Links:
Artigo em http://arstechnica.com/articles/paedia/hardware/quantum.ars/1

Trabalho On-Line – Questionamentos

Então, estou passando uns dias em casa com a família e preciso escrever um artigo, na realidade um resumo estendido, para um congresso de bioinformática.

Em ocasiões: editaria o arquivo latex no vi, com meus plugins e configurações, executaria o conjunto “latex -> dvipdfm -> evince” para visualizar o resultado e continuaria a escrever o artigo. Enquanto isto, ouviria música com o amarok.

Infelizmente, ou felizmente, nem todas as pessoas, incluindo nossos pais e irmãos, possuem uma distribuição linux instalada e nem o latex e os demais softwares mencionados instalados.
Então me propus um desafio: escrever o artigo em latex num computador windows modificando o mínimo possível o ambiente, preferencialmente sem modificar nada!

Estou momentaneamente utilizando o docs.google.com, que já utilizo para outros tipos de documentos. Os principais problemas são um tanto lógicos: o docs.google.com não fornece qualquer tipo de identação e o latex não é aquele tipo de programa onde o que tu escreve ve o resultado instantaneamente. Então, tudo que eu escrever, preciso enviar para alguem gerar o dvi ou o pdf ou ps para eu ver o resultado. Então faço um questionamento: existe algum editor on line para latex?

Para música, não encontrei nenhum player on-line que toque as músicas completas. Para ouvir as rádios, eu fiz o download do Last.fm que já sou usuário de longa data. Existe alguma rádio, que permita-me escolher o estilo musical, on-line e que não há necessidade de fazer software de softwares especiais?

Neste momento estou fazendo download do MikTex em http://www.miktex.org e
ouvindo música via Last.Fm, mas tive que fazer download do software deles, que pelo menos é livre.
Para “aquelas” palavras em ingles que não lembro ou não sei, adicionei o gadget do babylon na página personalizada do google.

Então é isto, se alguem ler este texto e tiver alguma idéia ou sugestão, favor me avisar, ficarei grato! :-)

Abandonado?

Então, aqui esta meio abandonado, mas logo pretendo retornar as atividades normais.
Nestes últimos 10 dias mudei-me para o Rio, começaram as aulas de mestrado no IME, estou fazendo um, mas teria que fazer dois artigos e de brinde, 4a para 5a tive mais 17 horas de conforte e lazer no interior de um ônibus rumo a Blumenau,

Sobre o Rio:
A cidade é estranha, muita gente, muita coisa. De um lado se ve as paissagens mais lindas, dai se vira a cabeça e ver as piores coisas. Os cariocas também, tem uns que são extremamente extressados e outros que são calminhos… mas nada se compara ao trânsito, leio do oeste é pouco!

Mas é isto, vou imprimir o material da aula e estudar um pouco.