removido
(usa Nenhuma)
Enviado em 10/07/2011 - 00:34h
Eu tenho várias teorias... creio que é possível alterar drasticamente o desempenho dos computadores atuais alterando por completa a arquitetura de hardware de hoje e a forma como hardware e software se interagem, mas isso é uma coisa muito... digamos, ousada!
Eu já sei que isso é possível, mas ainda não temos as ferramentas necessárias para "tirar do papel" rs
Seria preciso um controle maior sobre o hardware e uma maneira eficiente de controlar os fluxos de informações, a velocidade e quantidade de informação que fosse enviada para cada nanotransistor no processador, individualmente... poderíamos fazer milagre se alguém torna-se essa ideia possível, mas como disse, ainda não existe as ferramentas necessárias....
Eu creio que toda a informação sobre utilização do processador que recebemos em nossa tela é meramente ilustrativa, pois não temos um controle tão grande do processador para ele usar 10% de sua capacidade real , por exemplo ( a não ser que baixássemos o clock, mas não é essa a questão aqui).
Os medidores visuais que vemos nos sistemas operacionais são apenas uma média ilustrativa!
Uma aplicação não usa 10, 20, 30% do seu processador... ela usa a potencia total!
Esqueça todos os numeros, a partir de agora só existe 0 e 100
programa executa: 100%
terminou a tarefa: 0%
Não tem meio termo!
Não sei se entenderam o que estou querendo dizer, pois não sei como explicar isso, só vendo mesmo para entender...
Sobre os processadores dual cores, temos o controle:
0%, 50%, 100%
E quad Cores:
0%, 25%, 50%, 75%, 100%
Mas tem um porém, são poucas as aplicações que conseguem ler as informações passadas pelo processador a fim de identificar qual núcleo seria melhor para sua execução....
Exemplo, uma aplicação em um dual core, convertendo um vídeo e utilizando os dois núcleos...
Os dois núcleos do processador ficam em loops de 0% e 100%, mas o sistema te mostra uma média do tempo de resposta para o próximo loop e calcula assim a porcentagem de uso, através de uma média da quantidade de loops necessários e o tempo de espera para termínio do loop atual.
O programa divide a conversão do vídeo em partes e muitas vezes converte separadamente o audio... como podem ver, já temos 3 processos (threads) em execução (novamente, é só um exemplo)
Desses 3 programas o processador calcula o tempo de resposta de cada loop (0% 100%) e verifica aquele que está demorando mais e envia ele para o outro núcleo, estabilizando assim a carga entre os dois núcleos)
Então temos 2 loops executando no core 1, um após o outro (parece que é instântaneamente, mas não é , pois o computador não é um sistema de multitarefa REAL, ele apenas faz cálculos muito rápidos, dando a impressão de ser multitarefa), e no core 2 temos um processo que demora mais tempo no loop se executando sosinho...
O problema está nessa identificação dos "tempos", pois é difícil para o sistema identificar essa informação de forma correta e passa-la ao processador, mas isso é culpa dos programadores que não se esforçam para otimizar suas aplicações nessa parte, por acharem desnecessário... mas ajunta um monte de aplicações sem essa interação... vai ficar sobrecarregando o core1 e o core 2 lá , sosinho, pensando na morte da bezerra...
Bom, tudo o que eu disse pode não funcionar e pode não ser assim, isso é apenas uma teoria, mas lembre-se bem: não estou levando em conta nenhuma lógica de programação atual, pois essas lógicas são IRREAIS, pois elas só fazem sentido quando executadas dentro de um sistema operacional que interpreta os dados e de alguma forma fazem eles funcionarem com dados e dispositivos REAIS (através dos circuitos integrados, drivers e etc). Eu estou discutindo exatamente essa MANEIRA REAL do hardware interpretar as informações, pois isso é uma coisa que ninguém se quer pensa, espero não ser o único....
Estou expondo minha opiniões pois gostaria de ver como vocês pensam sobre questões do gênero, assim enriquecemos nossos conhecimentos =)