Sistemas operacionais/Introdução
O Software de computador pode ser dividido em dois tipos: programas de sistema e programas aplicativos. O principal programa de sistema é o sistema operacional, que controla todos os recursos do computador e fornece a base lógica sobre a qual os programas aplicativos são escritos. Sua principal função é isolar os programadores da complexidade do hardware. É importante salientar que o sistema operacional propriamente dito é aquela parcela que roda no modo kernel (supervisor). Os compiladores, editores e interpretadores de comando (Shell) executam no modo usuário. Há duas funções principais de um S.O.:
- máquina estendida: o S.O. deve apresentar ao usuário o equivalente a uma máquina estendida ou máquina virtual, teoricamente mais fácil de programar que o hardware;
- gerenciador de recursos: o S.O. deve oferecer uma alocação ordenada e controlada dos processadores, memórias e quaisquer dispositivos de E/S que os programas podem competir. Ou seja, o S.O. tem como função gerenciar eficientemente as diferentes partes do sistema.
Existem quatro modelos de S.O.:
- sistemas monolíticos: o S.O. é escrito como uma coleção de procedimentos, que podem chamar quaisquer outros sempre que precisar, sem nenhum tipo de estrutura hierárquica;
- sistemas em camadas: é um S.O. organizado em uma hierarquia de camadas, construída uma sobre a outra;
- máquinas virtuais: formado por um monitor de máquina virtual, que rodava no hardware básico e coordenava a multiprogramação, fornecendo várias máquinas virtuais à camada superior (não máquinas estendidas, e sim cópias exatas do hardware básico);
- modelo cliente-servidor: minimização do kernel (através da remoção de código do S.O., movendo para as camadas mais altas), implementando as funções do S.O. como processos de usuário. Os processos de usuário (clientes) enviam requisições para os processos servidores, que realizam a operação e retornam a resposta necessária.
Um S.O., tipicamente, tem quatro grandes componentes: gerenciamento de processos, gerenciamento de dispositivos de E/S, gerenciamento de memória e gerenciamento de arquivos.