Sistemas Monoprogramaveis / Monotarefa Os 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 monoprogramaveis, 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. Sistemas Multiprogramaveis / Multitarefa Os 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. Sistemas Batch Os 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 Sistemas Multiusuario. Um sistema operacional multiusuario permite que diversos usuarios utilizem simultaneamente os recursos do computador. O sistema operacional deve se certificar de que as solicitacoes de varios usuarios estejam balanceadas. Cada um dos programas utilizados deve dispor de recursos suficientes e separados, de forma que o problema de um usuario nao afete toda a comunidade de usuarios. Unix, VMS e sistemas operacionais mainframe como o MVS sao exemplos de sistemas operacionais multiusuario. Sistemas de Tempo Real Os sistemas de tempo real (real-time) sao implementados de forma semelhante aos sistemas de tempo compartilhado. O que caracteriza a diferenca entre os dois tipos de sistemas e o tempo exigido no processamento das aplicacoes. Enquanto em sistemas de tempo compartilhado o tempo de processamento pode variar sem comprometer as aplicacoes em execucao, nos sistemas de tempo real os tempos de processamento devem estar dentro de limites rigidos, que devem ser obedecidos, caso contrario, poderao ocorrer problemas irreparaveis. Nos sistemas de tempo real nao existe a ideia de fatia de tempo, implementada nos sistemas de tempo compartilhado. Um programa utiliza o processador o tempo que for necessario ou ate que apareca outro mais prioritario. A importancia ou prioridade de execucao de um programa e definida pela propria aplicacao e nao pelo sistema operacional. Esses sistemas, normalmente, estao presentes em aplicacoes de controle de processos, como no monitoramento de refinarias de petroleo, controle de trafego aereo, de usinas termoeletricas e nucleares, ou em qualquer aplicacao onde o tempo de