1.Sistemas Monoprogramaveis / MonotarefaOs primeiros sistemas operacionais eram tipicamente voltados para a execucao de um unico programa. Qualquer outra aplicacao, para ser executada, deveria aguardar o termino do programa corrente. Os sistemas mono programaveis, como vieram a ser conhecidos, se caracterizam por permitir que o processador, a memoria e os perifericos permanecam exclusivamente dedicados a execucao de um unico programa.Neste tipo de sistema, enquanto um programa aguarda por um evento, como a digitacao de um dado, o processador permanece ocioso, sem realizar qualquer tipo de processamento. A memoria e subutilizada, caso o programa nao a preencha totalmente e os perifericos, como discos e impressoras, estao dedicados a um unico usuario, nem sempre utilizados de forma integral.Comparados a outros sistemas, os sistemas monoprogramaveis ou monotarefa sao de simples implementacao, nao existindo muita preocupacao com problemas decorrentes do compartilhamento de recursos, como memoria, processador e dispositivos de E/S.1.1Sistemas Multiprogramaveis / MultitarefaOs sistemas multiprogramaveis ou multitarefa sao uma evolucao dos sistemas monoprogramaveis. Neste tipo de sistema, por exemplo, enquanto um programa espera por uma operacao de leitura ou gravacao em disco, outros programas podem estar sendo processados neste mesmo intervalo de tempo. Nesse caso, podemos observar o compartilhamento da memoria e do processador. O sistema operacional se preocupa em gerenciar o acesso concorrente aos seus diversos recursos, como memoria, processador e perifericos, de forma ordenad e protegida, entre os diversos programas.A principal vantagem dos sistemas multiprogramaveis e a reducao de custos em funcao da possibilidade de compartilhamento dos diversos recursos entre as diferentes aplicacoes. Alem disso, sistemas multiprogramaveis possibilitam na media a reducao total do tempo de execucao das aplicacoes. Apesar de mais eficientes que os monoprogramaveis, sao de implementacao muito mais complexa.A partir do numero de usuarios que interagem com o sistema operacional, podemos classificar os sistemas multiprogramaveis como monousuario ou multiusuario.Sistemas multiprogramaveis monousuario sao encontrados em computadores pessoais e estacoes de trabalho, onde ha apenas um unico usuario interagindo com o sistema. Neste caso, existe a possibilidade de execucao de diversas tarefas ao mesmo tempo, como a edicao de um texto, uma impressao e o acesso a Internet. Sistemas multiprogramaveis multiusuario sao ambientes interativos que possibilitam a diversos usuarios conectarem-se ao sistema simultaneamente.Os sistemas multiprogramaveis ou multitarefa podem ser classificados pela forma com que suas aplicacoes sao gerenciadas, podendo ser divididos em sistemas batch, de tempo compartilhado ou de tempo real. Um sistema operacional pode suportar um ou mais desses tipos de processamento, dependendo de sua implementacao.1.2Sistemas BatchOs sistemas batch foram os primeiros tipos de sistemas operacionais multiprogramaveis a serem implementados na decada de 1960. Os programas, tambem chamados de jobs, eram submetidos para execucao atraves de cartoes perfurados e armazenados em disco ou fita, onde aguardavam para ser processados. Posteriormente, em funcao da disponibilidade de espaco na memoria principal, os jobs eram executados, produzindo uma saida em disco ou fita.O processamento batch tem a caracteristica de nao exigir a interacao do usuario com a aplicacao. Todas as entradas e saidas de dados da aplicacao sao implementadas por algum tipo de memoria secundaria, geralmente arquivos em disco. Alguns exemplos de aplicacoes originalmente processadas