O sistema operacional é o software responsável por gerenciar os recursos do
hardware para o usuário, para que este não tenha que interagir diretamente sobre os dispositivos. O Sistema Operacional é constituído basicamente por duas camadas: o Shell (ou interpretador de comandos) e o Cerne (ou núcleo), como mostra a figura abaixo. O núcleo implementa as funções básicas do Sistema Operacional, responsáveis pelo gerenciamento de memória, arquivos, processador, periféricos etc. Enquanto que o Shell implementa uma interface com o usuário, para atender necessidades tais como: listar um diretório, copiar arquivos etc. Sistema operacional é um conjunto de rotinas executadas pelo processador que tem como funções básicas: • Gerenciar os vários recursos disponíveis no sistema, para atender da maneira mais Eficiente possível o usuário; • Gerenciar a execução dos programas do usuário, visando o melhor desempenho do Sistema todo.
1.1 – Sistema Monotarefa
Os primeiros sistemas operacionais eram voltados tipicamente para a
execução de um único programa. Qualquer outra aplicação, para ser executada, deveria aguardar o término do programa corrente. Neste tipo de sistema, o processador, a memória e os periféricos permanecem exclusivamente dedicados à execução de um único programa. Os sistemas monoprogramáveis estão diretamente ligados ao surgimento, na década de 50/60, dos primeiros computadores. Embora os sistemas operacionais já tivessem evoluído com as tecnologias de multitarefa e multiprogramáveis, os sistemas monoprogramáveis voltaram a ser utilizados na plataforma de microcomputadores pessoais e estações de trabalho devido à baixa capacidade de armazenamento destas máquinas, na época. Era muito clara a desvantagem deste tipo de sistema, no que diz respeito à limitação de tarefas (uma de cada vez), o que provocava um grande desperdício de recursos de hardware. Comparados a outros sistemas, os monoprogramáveis são de simples implementação, não existindo muita preocupação com problemas decorrentes do compartilhamento de recursos como memória, processador e dispositivos de E/S. 1.1.1 – Exemplos de Sistemas Monotarefa
MS-DOS
1.2 – Sistema multitarefa
Constituindo-se uma evolução dos sistemas monoprogramáveis, neste tipo de
sistema os recursos computacionais são compartilhados entre os diversos usuários e aplicações: enquanto um programa espera por um evento, outros programas podem estar processando neste mesmo intervalo de tempo. Neste caso, podemos observar o compartilhamento da memória e do processador. O sistema operacional se incumbe de gerenciar o acesso concorrente aos seus diversos recursos, como processador, memória e periféricos, de forma ordenada e protegida, entre os diversos programas. As vantagens do uso deste tipo de sistema são a redução do tempo de resposta das aplicações, além dos custos reduzidos devido ao compartilhamento dos recursos do sistema entre as diferentes aplicações. Apesar de mais eficientes que os monoprogramáveis, os sistemas multiprogramáveis são de implementação muito mais complexa.
Os sistemas multiprogramáveis/multitarefa podem ser classificados de acordo
com a forma com que suas aplicações são gerenciadas, podendo ser divididos em sistemas batch, de tempo compartilhado e de tempo real, de acordo com a figura abaixo. 1.2.1 – Exemplos de Sistemas multitarefas
Windows
Linux Mac OS
1.3 – Sistema de Múltiplos processadores
Os sistemas com múltiplos processadores caracterizam-se por possuir duas ou
mais Cupus interligadas e trabalhando em conjunto. A vantagem deste tipo de sistema é permitir que vários programas sejam executados ao mesmo tempo ou que um mesmo programa seja subdividido em várias partes para serem executadas simultaneamente em mais de um processador. Esta técnica permitiu a criação de sistemas computacionais voltados para processamento científico, prospecção de petróleo, simulações, processamento de imagens e CAD. Um fator chave no desenvolvimento dos sistemas multiprocessador é a forma de comunicação entre as CPUs e o grau de compartilhamento da memória e dos dispositivos de E/S. Em função destes fatores, podemos classificar os sistemas multiprocessados de acordo com a figura a seguir: Na figura podemos perceber a divisão dos sistemas multiprocessados em duas categorias iniciais: sistemas fortemente acoplados e fracamente acoplados. A grande diferença entre estas duas categorias é que nos sistemas fortemente acoplados existe apenas uma memória a ser compartilhada pelos processadores do conjunto, enquanto que nos fracamente acoplados cada sistema tem sua própria memória individual. A taxa de transferência entre processadores e memória em sistemas fortemente acoplados é muito maior que nos fracamente acoplados. Nos sistemas fortemente acoplados a memória principal e os dispositivos de E/S são gerenciados por um único sistema operacional. Quando todos os processadores na arquitetura são iguais, diz-se que o sistema é simétrico. No entanto, quando os processadores são diferentes, dá-se à arquitetura adnominação assimétrica. Nos sistemas fracamente acoplados, como os processadores estão em arquiteturas diferentes, somente interligados por cabos de interconexão, cada CPU constitui uma máquina independente, com memória própria, dispositivos de E/S e sistemas operacionais independentes. Bibliografia Gonçalves, J. A. (s.d.). Apostila de GSO I.