pequeno ventilador para resfriar o processador, e a fonte de energia, responsavel pela alimentacao de energia de todos os componentes do computador.[editar]Arquitetura de software[editar]InstrucoesA principal caracteristica dos computadores modernos, o que o distingue de outras maquinas, e que pode ser programado. Isto significa que uma lista de instrucoes pode ser armazenada na memoria e executa posteriormente.Diagrama de linguagem de programacao compilada em linguagem de maquina.As instrucoes executadas na ULA discutidas acima nao sao um rico conjunto de instrucoes como a linguagem humana. O computador tem apenas um limitado numero de instrucoes bem definidas. Um exemplo tipico de uma instrucao existente na maioria dos computadores e "copie o conteudo da posicao de memoria 123 para a posicao de memoria 456", "adicione o conteudo da posicao de memoria 510 ao conteudo da posicao 511 e coloque o resultado na posicao 507" e "se o conteudo da posicao 012 e igual a 0, a proxima instrucao esta na posicao 678".Instrucoes sao representadas no computador como numeros - o codigo para "copiar" poderia ser 007, por exemplo. O conjunto particular de instrucoes que um computador possui e conhecido como a linguagem de maquina do computador. Na pratica, as pessoas nao escrevem instrucoes diretamente na linguagem de maquina mas em uma linguagem de programacao, que e posteriormente traduzida na linguagem de maquina atraves de programas especiais, como interpretadores e compiladores. Algumas linguagens de programacao se aproximam bastante da linguagem de maquina, como o assembly (linguagem de baixo nivel); por outro lado linguagens como o Prolog sao baseadas em principios abstratos e se distanciam bastante dos detalhes da operacao da maquina (linguagens de alto nivel).A execucao das instrucoes e tal como ler um livro. Apesar da pessoa normalmente ler cada palavra e linha em sequencia, e possivel que algumas vezes ela volte para pontos anteriores do texto de interesse ou passe sessoes nao interessantes. Da mesma forma, um computador que segue a arquitetura de von Neumann executa cada instrucao de forma sequencial, da maneira como foram armazenadas na memoria. Mas, atraves de instrucoes especiais, o computador pode repetir instrucoes ou avanca-las ate que alguma condicao seja satisfeita. Isso e chamado controle do fluxo e e o que permite que o computador realize tarefas repetitivamente sem intervencao humana.Uma pessoa usando uma calculadora pode realizar operacoes aritmeticas como somar numero apertando poucos botoes. Mas somar sequencialmente os numeros de um a mil iria requerer apertar milhares de vezes os botoes, com uma alta probabilidade de erro em alguma iteracao. Por outro lado, computadores podem ser programados para realizar tal tarefa com poucas instrucoes, e a execucao e extremamente rapida.Mas os computadores nao conseguem pensar, eles somente executam as instrucoes que fornecemos. Um humano instruido, ao enfrentar o problema da adicao explicado anteriormente, perceberia em algum momento que pode reduzir o problema usando a seguinte equacao:e chegar na mesma resposta correta com pouco trabalho. Alguns computadores modernos conseguem tomar algumas decisoes para acelerar a execucao dos programas ao prever instrucoes futuras e reorganizar a ordem de instrucoes sem modificar seu significado. Entretanto, os computadores ainda nao conseguem determinar instintivamente uma maneira