Um sistema operacional é formado por um conjunto de programas e rotinas computacionais que têm como objetivo criar uma camada de abstração entre o usuário e o hardware propriamente dito. Entende-se por usuário todo e qualquer objeto que precise de acesso aos recursos de um computador (seja ele um usuário "real" ou aplicativo).
Os sistemas operacionais podem ser classificados de três maneiras: pelo tipo do núcleo de sistema (ou kernel, como é conhecido no jargão técnico), pelo método adotado ao gerenciar os programas em execução ou pelo número de usuários que podem operá-lo simultaneamente.
Atualmente, são utilizados basicamente dois tipos de implementações do núcleo de sistema: monolíticos e estrutura de microkernel.
Núcleos monolíticos têm como principal característica o fato de integrarem todas as funcionalidades possíveis do sistema em um grande "bloco" de software. A adição de novas funcionalidades implica na recompilação de todo o núcleo. Trata-se de uma abordagem um tanto antiquada, mas que foi adotada, por exemplo, por Linus Torvalds quando este resolveu desenvolver o kernel do Linux.
Microkernel é um termo usado para caracterizar um núcleo de sistema cujas funcionalidades não-essenciais ao seu funcionamento são transferidas para servidores, que se comunicam com o núcleo mínimo através do modo de acesso do núcleo (local onde o programa tem acesso a todas as instruções da CPU e a todas as interrupções de hardware), deixando o máximo de recursos rodando no modo de acesso do usuário. Quando o processador trabalha no modo usuário, uma aplicação só pode executar instruções não-privilegiadas, tendo acesso a um número reduzido de instruções.
Os diversos tipos de sistemas operacionais existentes empregam diferentes maneiras de gerenciar os programas em execução pelo usuário. Existem basicamente três tipos de gerenciamento de tarefas (ou processos):
Sistemas monotarefa permitem a realização de apenas uma tarefa ou processo de cada vez. Um dos mais famosos sistemas operacionais monotarefa é o MS-DOS (Microsoft Disk Operating System), lançado em 1981 e desenvolvido para rodar no recém-lançado processador 8086 da Intel.
Atualmente, a grande maioria dos sistemas operacionais são de tipo multitarefa. Dá-se o nome de multitarefa a característica dos sistemas operacionais modernos que permite repartir a utilização do processador entre várias tarefas simultaneamente.
A multitarefa cooperativa trabalha exatamente como dito anteriormente: o tempo de processamento é repartido entre as diversas tarefas, dando a impressão ao usuário que elas estão sendo executadas simultaneamente. Sua principal característica (ou deficiência) reside no fato de que não há controle sobre o tempo de CPU que cada processo consome. O sistema cede o controle da CPU ao processo, e este só o devolve quando tiver terminado a sua tarefa.
Já a multitarefa preemptiva realiza o gerenciamento do tempo de utilização da CPU de forma inteligente, reservando e protegendo o espaço de memória dos aplicativos e evitando que programas com erros possam invadir as áreas delimitadas pelo sistema operacional. Os núcleos destes sistemas mantêm em memória um registo de todos os processos em execução através de uma árvore de processos. Entre outros atributos acerca de cada processo, a árvore de processos inclui as informações de prioridade, com a qual o núcleo calcula o tempo de CPU que deve dar a cada processo; quando esse tempo acaba, o núcleo tira do processo o controle da CPU e o passa ao processo que vem a seguir na fila. Quando a fila acaba, o núcleo volta a dar o controle da CPU ao primeiro processo, fechando assim o ciclo.
Nenhum comentário:
Postar um comentário