HT, Core Duo, threads?? O que eacute; isso?

A simulaccedil;atilde;o, por definiccedil;atilde;o, eacute; baseada num sistema computacional e portanto satilde;o necessaacute;rias noccedil;otilde;es de sistemas computacionais. Normalmente muitas das noccedil;otilde;es satilde;o apanhadas de uma forma dispersa e conduzem a alguns erros de interpretaccedil;atilde;o. Decidimos realizar um pequeno texto e aplicar ao caso especiacute;fico do flight simulator para que sejam clarificadas algumas das questotilde;es. O texto estaacute; disponiacute;vel em Leia Mais e o Airsim espera que ajude.


Hoje em dia existem vaacute;rios tipos de processadores os ldquo;normaisrdquo; os hipertrheading e os multicore sendo de destacar os core duo e mais recentemente os quad core. Os HT e multicore vieram baralhar as contas dos produtores de jogos e por arrasto os simmers quando andam Agrave;s voltas com estes conceitos. Na realidade, tudo apontava para que o futuro dos processadores fosse na linha do aumento do reloacute;gio e da capacidade de caacute;lculo bruta. No entanto, existiu uma reviravolta que comeccedil;ou de uma forma tiacute;mida com os denominados processadores HT. Para perceber o impacto dos processadores eacute; necessaacute;rio perceber alguma coisa sobre programas e a forma como satilde;o realizados.
Quando se realiza um programa este pode ter uma interface como o Internet Explorer ou natilde;o ter uma interface. Os programas com interface satilde;o denominados de aplicaccedil;otilde;es. No entanto quer tenham interface que natilde;o a tenham, todos satilde;o denominados de processos. Se olharem para o taskmanager verificam que existem vaacute;rios processos a correr. Correm ao mesmo tempo? Claro que natilde;o, o Sistema Operativo encarrega-se de os distribuir ao longo do tempo, dando um bocadinho de tempo a cada um. Normalmente quase todos tecirc;m direito ao mesmo tempo de processador mas o que estaacute; em foreground (estaacute; com a janela activa tem mais tempo), no entanto, podemos alterar esta distribuiccedil;atilde;o atraveacute;s da prioridade. Propriedade acessiacute;vel se clicar com a tecla direita sobre um dos processos. Verifica-se vaacute;rios niacute;veis de prioridade, um dos tweaks para o FS eacute; exactamente alterar a sua prioridade (aumentar) para que tenha mais tempo de processador.
Muitas vezes um programa complexo eacute; subdivido em vaacute;rias secccedil;otilde;es atoacute;micas capazes de realizar uma tarefa completa. Estas secccedil;otilde;es satilde;o denominadas threads. Veja-se o caso do FSLog, existem vaacute;rias tarefas bem distintas. Duas delas podem ser: sacar valores do FS, converter as unidades e guardar localmente; gravar para o disco o estado actual do log para permitir recomeccedil;ar em qualquer altura. Cada uma destas unidades foi programada como uma thread que eacute; chamada com um temporizador. Ao olhar com mais atenccedil;atilde;o para a primeira thread comeccedil;am logo a surgir os problemas. Soacute; posso iniciar o log depois de ter valores vaacute;lidos, tudo soacute; deve comeccedil;ar com a libertaccedil;atilde;o dos parking brakes, se a recolha de informaccedil;atilde;o eacute; agrave; parte do resto do programa isso implica que a informaccedil;atilde;o que eacute; partilhada deve ser utilizada com cautela. Estes problemas satilde;o denominados de IPC (inter process comunications). Se isto tudo parece confuso natilde;o se preocupe: eacute; mesmo confuso. Agora imagine quando as coisas satilde;o mesmo complexas e consegue ter a percepccedil;atilde;o que natilde;o eacute; simples por tudo a jogar certo.
Se normalmente existem vaacute;rias threads em que o sistema operativo daacute; um pouco de tempo a cada uma, a Intel teve a seguinte ideia: Como por vezes uma thread estaacute; ldquo;penduradardquo; no processador sem gastar tempo de caacute;lculo porque natilde;o colocar outra a utilizar o core (zona do processador onde satilde;o executadas as instruccedil;otilde;es do programa) ateacute; a primeira o necessitar? Em teoria parece uma boa ideia pois vai permitir uma melhor rentabilizaccedil;atilde;o do core. Se num processador normal o sistema operativo daacute; um pouco de tempo a cada processo e por arrasto a cada thread, entatilde;o a soluccedil;atilde;o para que o SO coloque outra thread no processador eacute; ldquo;enganarrdquo; o SO e dizer que satilde;o dois processadores. Foi esta ideia que deu origem aos processadores HT. Mas este enganar o SO nem sempre resulta, se por vezes ateacute; existe um aumento de desempenho (ateacute; 30%) por vezes ateacute; diminui. Mas estava tudo preparado para o proacute;ximo salto: o muacute;ltiplo core. Aqui sim, existem vaacute;rios core fiacute;sicos e o SO jaacute; natilde;o eacute; enganado. Eacute; neste ponto que estamos neste momento com o recente aparecimento dos quad core (quatro core).
Existe portanto um soacute; pequeno problema: os programas devem aproveitar a existecirc;ncia de vaacute;rios core. Olhando para cima verifica-se que trabalhar com vaacute;rias threads natilde;o eacute; simples, principalmente se quisermos distribuir o peso computacional por elas. No FS9 podem esquecer a questatilde;o, existe uma soacute; thread a fazer todo o trabalho ldquo;pesadordquo;. No FSX RTM Existem vaacute;rias threads a fazer algum trabalho mas contiacute;nua a existir uma muito mais pesada. Podem verificar isso se tiverem um core duo, um dos core estaacute; a ser utilizado a 100% o outro estaacute; quase a 0. Phil Taylor indica no seu blog (http://blogs.msdn.com/ptaylor/archive/2007/04/09/fsx-sp1-news-intel-quote.aspx )que a coisa vai mudar de figura no FSX SP1 e que os core vatilde;o ser utilizados a seacute;rio. Estaacute; aberto o caminho para que se possa fazer o upgrade ao computador e se verificar que a uacute;ltima geraccedil;atilde;o de hardware estaacute; a ser utilizada.

Comments are closed.