1.1.2 O S.O como um gerenciador de recursos
O conceito de S.O como principalmente oferecendo aos usuários uma interface conveniente é uma visão "top-down" (de cima para baixo).
Uma visão alternativa "botton-up" (de baixo para cima) sustenta que o S.O esta ai para gerenciar todas as partes de um sistema complexo.
Na visão alternativa o trabalho do S.O é oferecer uma alocação ordenada e controlada dos processadores, das memórias e dos dispositivos de E/S entre os vários programas que competem por eles.
Imagine o que aconteceria se três programas que executam em algum computador tentassem imprimir simultaneamente na mesma impressora. Certamente a impressora começaria a imprimir uma parte do documento 1, depois uma parte do documento 2, depois uma parte do documento 3 e assim por diante...
O resultado seria o "CAOS"!
O S.O pode trazer ordem a esse caos potencial armazenando toda a saída destinada para a impressora no disco. Quando um programa terminar, o S.O pode então copiar sua saída a partir do arquivo de disco onde ela foi armazenada para a impressora enquanto simultaneamente outro programa pode continuar a gerar mais saída, ignorando o fato de que a saída realmente não está indo para a impressora (ainda...).
Quando um computador (ou uma rede) tem múltiplos usuários a necessidade de gerenciar e de proteger a memória, os dispositivos de E/S e outros recursos é ainda maior, uma vez que os usuários talvez interfiram um com outro, ou necessitem compartilhar "hardware", "software", arquivos, base de dados, etc. Em resumo, essa visão do S.O sustenta que sua tarefa primária é monitorar que esta monitorando qual recurso, medir a utilização dos recursos e medir as requisições conflitantes de diferentes programas e usuários.