segunda-feira, 17 de outubro de 2016

AINDA OS SISTEMAS OPERACIONAIS ― Parte 6

SE VOCÊ NÃO CONSEGUE EXPLICAR ALGO DE FORMA SIMPLES, É PORQUE NÃO ENTENDEU BEM A COISA.

Vimos que as primeiras edições do Windows eram apenas interfaces gráficas baseada no DOS, e que isso mudou na edição 95, já um sistema autônomo e com suporte à multitarefa ― ou, numa definição simplista, capaz de manipular dois ou mais aplicativos simultaneamente.

Aqui caberia abrir (mais) um parêntese para discorrer sobre os conceitos multitarefa e multithread, que são coisas distintas, mas interligadas, até porque a segunda complementa a primeira. Só que não; primeiro, porque já discorri brevemente sobre isso na parte 4 desta sequência; segundo, porque enveredar por sutilezas do hardware sem tecer considerações paralelas que facilitem o entendimento do tema por leigos e iniciantes seria prestar um desserviço ao leitor. Então, colocando a coisa de forma bem simples, na multitarefa, dois ou mais programas são executados simultaneamente; no multithread, os processos de um mesmo programa são divididos em vários threads e manipulados ao mesmo tempo.

Note que sistemas multitarefa não demandam necessariamente CPUs duais ou multicore, embora elas proporcionem um notável aumento no desempenho global do computador em relação às de apenas um núcleo ― que já deixaram de ser usadas em PCs, embora continuem presentes em smartphones de baixo custo, por exemplo (aliás, mesmo os chips duais e quad-core estão se tornando “coisa do passado”, diante de versões com até 10 núcleos, como as que a INTEL incorporou recentemente à sua linha core i7).

Enfim, é a multitarefa que nos permite ler emails enquanto baixamos e instalamos atualizações do sistema e imprimimos um documento qualquer, por exemplo. A questão é que, à medida que abrimos mais e mais aplicativos, o número de processos que disputam ciclos de processamento e espaço na memória RAM cresce significativamente, e o resultado é uma degradação progressiva do desempenho do computador como um todo. Ainda que as CPUs venham se tornando cada vez mais eficientes ― note que eu não disse “mais velozes”, porque velocidade e desempenho são coisa diferentes ―, sua capacidade tem limites, daí porque você deve fechar tudo que não for indispensável quando assistir a filmes, jogar games radicais ou rodar aplicativos pesados, como o Photoshop.

Observação: CPU é a sigla de Unidade Central de Processamento (em inglês), e remete ao processador, não o gabinete. O clock (velocidade ou frequência de operação) é apenas um dos parâmetros que definem o desempenho do processador ― que, a despeito de ser o cérebro do PC, é apenas um dos responsáveis pela performance global da máquina. Tenha em mente que o clock expressa o número de operações que o processador realiza a cada segundo (um chip de 3 GHz, p.ex., executa três bilhões de operações por segundo), mas o que ele é capaz de fazer em cada ciclo de clock é outra história.

Quando o processador troca de contexto (ou seja, alterna de um processo para outro), ela salva o status da tarefa finalizada para poder retomá-la mais adiante, quando ela voltará a ser executada como jamais tivesse sido interrompida. Time slice (fatia de tempo) é o nome que se dá à fração de segundo que a CPU dedica a cada processo antes de mudar de contexto, e a decisão sobre qual tarefa será executada em seguida se chama scheduling (ou escalonamento). Existem escalonadores por cooperação, preemptivos, etc., mas isso é uma discussão que vai ficar para uma próxima oportunidade.

Abraços e até a próxima.

Confira minhas atualizações diárias sobre política em www.cenario-politico-tupiniquim.link.blog.br/