Como funciona o computador – Processos

Depois que o computador está executando o sistema operacional, todos os programas que desejam ser executados devem virar um processo. Iniciar um processo significa para o sistema operacional, copiar o conteúdo do programa para a memória, reservando espaço para o mesmo fazer sua execução criando variáveis, criar um ambiente separado dos demais, chamado de contexto, tanto no sistema quando no processador. Após esses passos o processo pode ser iniciado.

Inicialmente os computadores tinham apenas um núcleo, o que significa que era possível fazer apenas uma operação simultaneamente. Hoje com a popularização dos processadores multinúcleos é possível a execução de processos paralelos (este texto foi copiado sem nenhum tipo de revisão), porém a quantidade de processos normalmente é maior que a de núcleos, sendo necessário que esta mesma técnica ainda seja aplicada.

O sistema operacional, através de alguma lógica fará a divisão do tempo do processador entre os processos ativos, e permitirá sua execução. Para um processo ter sua execução é necessário carregar os valores dos registradores que foram salvos na memória, permitir a execução e após o mesmo gravar o valor dos registradores novamente na memória.

Esse processo de salvar os valores dos registradores na memória, e carregar de outro processo é conhecido como troca de contexto (este texto foi copiado sem nenhum tipo de revisão). Sem esse mecanismo não seria possível iniciar a execução de um processo, interrompê-lo momentaneamente para a execução de outro e depois retornar sua execução do ponto interrompido. Isso que dá a característica de multitarefa e tempo compartilhado nos sistemas operacionais atuais.

Quanto mais processos simultâneos, menor o tempo que o processo terá para sua execução, além do tempo necessário para realizar mais trocas de contextos. Tudo isso pode ser responsável pela lentidão quando muitos processos estão tentando executar várias operações, em vez de executar os processos um após a finalização do outro.

Vale observar que se o mesmo programa for executado duas vezes, cada vez será um processo totalmente diferente. Apesar do código carregado da memória tem o mesmo conteúdo, seus contextos serão diferentes.

Anúncios

Como funciona o computador – Projeto do computador

Estou iniciando uma série de posts para descrever minha visão de como um computador funciona. Ainda não decidi até que ponto desejo andar com a série, ou objetivo final, porém pretendo iniciar do ponto descrito aqui e ir até pelo menos o básico do sistema operacional. Este primeiro post será mais teórico para criar uma base de conhecimento para as demais partes, o próximo terá exemplo de funcionamento, porém é de extrema importância entender esses componentes para os exemplos fazerem sentido.

——

Todo computador necessita de um projeto, que normalmente seguem o modelo proposto por John von Neumann. Deste modelo, a parte importante para este texto é entender que um computador é composto de CPU, memória, entrada/saída (I/O) e barramento para interligar e comunicar estas partes. Outro ponto que vale destacar é que os programas podem ser executados sem a necessidade de alteração de hardware, uma analogia oposta seria os videogames de cartucho, onde você precisaria alterar o circuito elétrico, trocar o cartucho, para mudar de jogo, considerando que houvesse processamento dentro do cartucho e não apenas armazenamento do programa.

Esses componentes dependem da arquitetura do computador. Seu computador de casa, ou notebook, provavelmente é da arquitetura Intel de 32 bits (este texto foi copiado sem nenhum tipo de revisão), também conhecido como i386 ou x86, nos casos de processadores 32 bits, ou AMD 64, também conhecidos por x86_64, nos casos de processadores 64bits. Esses nomes são apenas para a arquitetura e não do fabricante, processadores Intel de 64 bits são da arquitetura AMD 64. Seu celular provavelmente é ARM e seu access point MIPS.

Todos os computadores trabalham com bits (estou desconsiderando computadores quânticos, o qual não tenho muitos conhecimentos ainda), utilizando apenas dois estados elétricos para representar dados, estado com energia e sem energia, também representado por 1 e 0 respectivamente. Uma sequência desses bits formam as informações, que utiliza matemática binária e lógica booleana para representar esses dados.

A CPU é a parte responsável por todo o processamento, operações e cálculos, descreverei no próximo post seu funcionamento.

A memória é responsável por guardar pedaços de informações. Nos computadores atuais é representado pela memória RAM. Seus dados são importantes apenas para a execução atual do computador, caso o mesmo seja desligado (este texto foi copiado sem nenhum tipo de revisão), seu conteúdo pode ser perdido e na prática é considerado assim, apesar de hoje existir técnicas para recuperar seus dados, porém esse processo não pode ser garantido e não é utilizado normalmente pelo computador. Seu funcionamento é de gravar e ler dados em um determinado endereço de memória.

I/O são toda as operações de comunicação desse sistema com componentes externos, como teclado, mouse, HD e demais dispositivos. É a parte do sistema mais diversificada.

O barramento é o meio de comunicação desses componentes, além de oferecer conexão elétrica pode apresentar outros artifícios, como cache para a memória, guardando uma parte de suas informações e como possui tempo de resposta menor que a memória, possibilita uma resposta mais rápida para o processador. Vale a pena notar que sua velocidade depende das partes envolvidas, o processador é o componente mais rápido, seguido pela memória e I/O, caso o processador esteja executando uma operação de gravar ou ler a memória, será limitado pela velocidade da mesma, assim como se o processador por consultar o I/O, será ainda mais lento que a memória.