SERVIÇOS DO SISTEMA OPERACIONAL
Outro enfoque que pode ser dado é considerar o SO como um prestador de serviços, pois ele fornece um ambiente para a execução de programas, ou seja, fornece certos serviços aos programas e aos usuários destes programas. Estes serviços podem ser:
a) Execução de programa: o SO deve ser capaz de carregar um programa na memória e executar esse programa, além de ser capaz de encerrar a sua execução, de forma normal ou anormal, com indicação de erro;
b) Operação de Entrada e Saída: o SO deve fornecer os meios para realizar as operações de entrada e saída, pois certamente um programa em execução irá precisar de E/S;
c) Manipulação do sistema de arquivos: o SO deve fornecer as funcionalidades de acesso ao sistema de arquivos, pois os programas precisam ler e gravar dados, criando e excluindo arquivos nas unidades de armazenamento;
d) Comunicação: o SO precisa fornecer mecanismos de comunicação entre processos, pois existem várias situações nas quais um processo precisa trocar informações com outro processo. Essa comunicação pode ser com processos em um mesmo computador ou entre processos que estão executando em diferentes sistemas de computação interconectados por uma rede;
e) Detecção de erros: o SO precisa ficar monitorando constantemente a ocorrência de erros, que podem ocorrer no hardware da CPU e da memória, em dispositivos de E/S ou no programa de usuário. Para cada tipo de erro o SO deve tomar a medida adequada para garantir o funcionamento correto e consistente e não simplesmente travar;
f) Alocação de recursos: os recursos como a memória e os dispositivos de E/S devem ser alocados de maneira coerente e eficiente para cada um dos processos que estão em execução simultânea;
g) Contabilização: é preciso manter um registro dos usuários que utilizam os recursos do computador, em que quantidade e quais recursos. Este registro pode ser usado para contabilização e para realocação mais eficiente de cada recurso;
h) Proteção: quando vários processos independentes estão sendo executados ao mesmo tempo, um processo não poderá interferir na área de outro processo ou do próprio SO. A proteção visa garantir que todo acesso aos recursos do sistema seja controlado.
Os programas solicitam serviços ao SO por meio das chamadas de sistema. Através de parâmetros, o programa informa exatamente o que necessita e o SO se encarrega de executar a tarefa e devolver o retorno.
Por exemplo, qualquer função de uma linguagem de programação que escreva algo na tela, exige uma chamada de sistema. A lista de serviços do SO é transformada em uma lista de chamadas de sistema, cujas descrições dessas chamadas são transcritas nos manuais de um SO.
A parte do SO responsável por implementar as chamadas de sistema é normalmente chamada de núcleo ou kernel. Os principais componentes do kernel de qualquer SO envolvem as operações de gerência de processador, a gerência de memória, o sistema de arquivos e a gerência de entrada e saída
Devido à complexidade interna de um kernel completo, alguns SOs são implementados em camadas com um micronúcleo ou microkernel implementando os serviços mais básicos de comunicação e os demais serviços são implementados sobre esse microkernel.
O Mac OS X e o Windows são implementados com a ideia de microkernel, com um micronúcleo, porém com uma forte influência da organização em camadas, porém, com os demais serviços do SO também implementados no contexto do micronúcleo, ao contrário da idéia do microkernel que prevê que todos os demais gerenciamentos são programas convencionais executando sobre o microkernel.
Ao contrário do microkernel, existem os sistemas monolíticos onde todas as funções de um núcleo de SO são implementadas no núcleo. O Linux é um exemplo desse tipo de sistema.
No contexto do usuário, os programas de sistema, também chamados de utilitários, são programas normais executados fora do kernel do SO. Eles utilizam as mesmas chamadas de sistema disponíveis aos demais programas e implementam as tarefas básicas para a utilização do sistema e muitas vezes são confundidos com o próprio SO. Exemplos desses programas são os utilitários para manipulação de arquivos, programas de sistema para a obtenção de informações a respeito do sistema, tais como data, hora ou quais usuários estão utilizando o computador no momento, a relação de programas em execução e os recursos que os mesmos estão consumindo, um interpretador de comandos e, em alguns sistemas como Windows, Mac OS X, Android e iOs, uma interface gráfica integrada ao SO.
Comentários
Postar um comentário