Veremos duas classificações dos Sistemas Operacioanais, que são: Monoprogramados e Multiprogramados.
Sistemas Monoprogramados
No Sistema MonoProgramado, a memória é ocupada apenas com uma aplicação, além do Sistema Operacional. O Processador (UCP/CPU) se dedica exclusivamente a essa aplicação e, quando é feito acesso a algum dispositivo de E/S (Entrada e Saída), ele permanece inativo.
Esse tipo de sistema tem como principais vantagens o custo e a simplicidade.
A desvantagem é que não aproveita o desempenho total da máquina para executar outras aplicações, gerando perda de tempo.
Sistemas Multiprogramados
Os Sistemas MultiProgramados executam várias tarefas. Além do Sistema Operacional, outras aplicações estarão em uso no Processador.
Tem por principais vantagens o Compartilhamento de tarefas, utilizando melhor os recursos da máquina (Principalmente processador e memória).
Dentro dos Sistemas MultiProgramados temos, ainda, três tipos de sistemas:
São programas executados sequencialmente e, além de ter respostas lentas, o tempo de resposta é desconhecido.
Atualmente, esse tipo de sistema é utilizado em rotinas de back-up e programas antivírus.
- Tempo Compartilhado/On-line/Time-Sharing:
Leva esse nome porque nele existe interação com o usuário. Enquanto um programa está sendo executado, outros programas também estão sendo executados paralelamente. A prioridade de execução é definida pelo Sistema Operacional.
Para entender como ele funciona, imagine um formulário. Enquanto você está preenchendo-o, outras aplicações estão sendo executadas pelo processador sem que você saiba, pois você está praticamente só utilizando os dispositivos de E/S. Mas no momento em que você clica no botão para submeter seu formulário, o processador pausa as demais aplicações e executa a atual que está sendo utilizada por você. Sacou?
Esse tipo de sistema tem alta produtividade, com interação rápida entre tarefas e permite que vários usuários compartilhem recursos. Porém, tem um implementação muito complexa.
- Sistemas de Tempo Real/Real Time:
O tempo de resposta desse sistema é conhecido, pois foi pré-definido, e deve ser rigorosamente seguido, caso contrário, é considerado um sistema falho. Um de suas características é a capacidade de interação com o meio ao redor, tendo que reagir aos estimulos do meio em questão no tempo definido. Sua prioridade é definida pelo programador durante o desenvolvimento do mesmo.
Atualmente é usado em sistemas de pesquisa espacial, aeronaves e, CLARO, em sistemas de hospitais onde pode ser visto claramente sua interação com o meio. Como? Assim:
Um sistema que monitora os batimentos cardíacos de um paciente deve notificar os médicos no tempo exato caso haja alteração nos batimentos dele. (Exemplo tirado da wikipedia, a enciclopedia que qualquer trouxa edita: http://pt.wikipedia.org/wiki/Sistema_operacional_de_tempo-real)