de um sistema operacional e algumas vezes chamado de EXECUTIVO em tempo real. Algumas das funcoes executadas por ele sao: * chaveamento entre programas * controle e programacao de dispositivo de hardware * gerenciamento de memoria * gerenciamento de processos * escalonamento de tarefas * comunicacao entre processos * processamento de excecoes e de interrupcaoNosso sistema simples de monitoracao de seguranca nao teria todas as funcoes acima, ja que provavelmente seria um sistema mono-tarefa, executando apenas um programa. Como tal, nao precisaria processar permutas entre mais de um programa ou permitir comunicacao entre programas (comunicacao entre processos). A gerencia da memoria seria desnecessaria, ja que o programa residiria permanentemente em ROM ou em EPROM (uma forma programavel especial de ROM).Um sistema operacional projetado para manusear um grande numero de usuarios precisaria de um nucleo para executar todas as funcoes acima. Programas de usuarios geralmente sao armazenados em disco, assim precisa ser carregado em memoria antes de ser executado. Isso apresenta a necessidade de gerencia da memoria, ja que a memoria do computador precisaria ser pesquisada para localizar uma area livre para carregar um programa de usuario na mesma. Quando o usuario tivesse encerrada a execucao do programa, a memoria consumida por ele precisaria ser liberada e se tornaria disponivel para outro usuario quando solicitado.Gerenciamento e Escalonamento (Scheduling) de processos tambem sao necessarios, de forma que todos os programas possam ser executados razoavelmente. Nao ha como um programa de um usuario especifico ser executado numa area de extensao, negando o funcionamento de qualquer outro programa, e fazendo todos os outros usuarios esperarem. Adicionalmente, alguns programas poderiam precisar ser executados mais frequentemente que outros, por exemplo, checando comunicacoes de rede ou imprimindo. Alguns programas podem precisar ser suspensos temporariamente, e serem reiniciados depois, assim introduzindo a necessidade da comunicacao inter-programas.Programando um computadorUm programa e uma sequencia de instrucoes ao computador. Quando o programador de software (uma pessoa que escreve programas para serem executados em um computador) desenvolve um programa, este e convertido em uma longa lista de instrucoes que sao executadas pelo sistema de computador.Em sistemas operacionais nos falamos mais de um processo do que de um programa. Nos sistemas operacionais modernos, so uma porcao de um programa e carregada em cada instante. O resto do programa espera numa unidade de disco ate que se precise do mesmo. Isso economiza espaco de memoria.Os programas no computador sao executados por processadores. Um processador e um chip no computador que executa instrucoes de programa. Processadores executam milhoes de instrucoes por segundo.Um ProcessoUm processo ou tarefa e uma porcao de um programa em alguma fase de execucao. Um programa pode consistir de varias tarefas, cada uma com funcionamento proprio ou como uma unidade (talvez se comunicando entre si periodicamente).A Thread (fileira, linha)Uma thread e uma parte separada de um processo. Um processo pode consistir de varias threads cada uma das quais sendo executada separadamente. Por exemplo, uma thread poderia tratar refresh e graficos na tela, outra thread trataria impressao, outra thread trataria o mouse e o teclado. Isso da bom tempo de resposta em programas complexos. Windows