Sistemas Operacionais Modernos
É difícil definir o que e sistemas operacionais além de dizer que e o software que executa em modo núcleo e mesmo isso nem sempre e verdade. Parte do problema ocorre porque os sistemas operacionais realizem basicamente duas funções não relacionadas: fornecendo aos programadores de aplicativos, um conjunto de recursos abstratos claros em vez de recursos de hardware. Depende do tipo de usuário, ele vai lidar mais com uma função ou com outra.
A arquitetura da maioria dos computadores em nível de linguagem de maquina e primitiva e de difícil programação, especialmente a entrada e saída. Para tornar isso mais concreto, examinamos rapidamente como e feita a E/S da unidade de discos flexíveis a partir de um chip e usado na maioria dos computadores pessoais baseados em processos Intel.
Sem entrar em detalhes de fato, e claro que um programador de nível médio provavelmente não se envolvera profundamente com os detalhes de programação das unidades de discos flexíveis. No caso dos discos, uma abstração típica seria aquela compreendida por um disco que contem uma coleção de arquivos com nomes. Cada arquivo pode ser aberto para leitura ou escrita e, então, ser lido ou escritos e, por fim, fechado. Detalhes com se a gravação deveria usar uma modulação por frequência modificada e qual seria o estado atual do motor não apareceriam na abstração apresentada ao programador da aplicação.
Deve-se observar que os clientes reais do sistema operacionais são os programas aplicativos. São eles que lidam diretamente com o sistema operacional e suas abstrações. Por outro lado, os usuários finais lidam com abstração fornecida pela interface do usuário.
Sistemas operacionais moderno permitem que múltiplos programas sejam executados ao mesmo tempo. Imagine o que aconteceria as três programas em execução em algum computador tentassem imprimir suas saídas simultaneamente na mesma impressora. As primeira linhas poderiam ser programa 1, as linhas seguintes seriam do