determinar a causa do problema. Em circunstancias normais ou anormais, o controle deve ser transferido para o interpretador de comandos, pelo sistema operacional. O interpretador de comandos le entao o proximo comando. Em um sistema batch, o interpretador de comandos normalmente termina o processamento do servico como um todo e passa a processar o proximo servico.Um programa em execucao pode carregar outro programa (carregar) e iniciar a sua execucao (executar). Essa caracteristica permite que o interpretador de comandos execute um novo programa a partir de um comando especificado por algum usuario ou de um comando para processamento em segundo plano (backgroud) ou quando um usuario pressiona um botao do mouse. Uma questao interessante e determinar para onde retornar o controle quando um programa carregado por outro termina sua execucao.Apos criar novos servicos e processos, podemos ter de esperar que eles terminem sua execucao. Podemos querer esperar por certo periodo de tempo (esperar tempo); mais provavelmente, podemos querer esperar que um determinado evento ocorra (esperar evento). Os servicos ou processos devem entao indicar a ocorrencia desse evento (sinalizar evento). Chamadas ao sistema desse tipo, que tratam da coordenacao de processos concorrentes.2) Manipulacao de ArquivosDevemos primeiro ser capazes de criar e remover arquivos. Ambas as camadas requerem o nome de um arquivo e talvez alguns atributos. Podemos tambem ler, gravar ou reposicionar (ir para o inicio ou para o fim de um arquivo, por exemplo). Finalmente, precisamos fechar o arquivo, para indicar que nao estamos mais usando. Podemos precisar desse mesmo conjunto de operacoes para diretorios, se tivermos um sistema de arquivos que usa uma estrutura de diretorios para organizacao dos arquivos. Alem disso, tanto para arquivos quanto para diretorios, precisamos poder determinar os valores de varios atributos, e talvez modifica-los, se necessario. O nome e o tipo do arquivo, os codigos de protecao, as informacoes sobre o uso do arquivo e assim por diante podem ser atributos de um arquivo. Sao necessarias para essa finalidade no minimo duas camadas, obter atributo de arquivo e definir atributo de arquivo. Em alguns sistemas operacionais existem muitas outros.3) Gerenciamento de DispositivosUm programa em execucao pode precisar de recursos adicionais para que possa continuar o processamento. Esses recursos podem ser mais espaco em memoria, unidades de fita, acesso aos arquivos e assim por diante. Se os recursos necessarios estao disponiveis, eles podem ser alocados e o controle pode retornar ao programa do usuario; caso contrario, o programa terra de esperar ate que recursos suficientes estejam disponiveis.Os arquivos podem ser vistos como dispositivos virtuais ou abstratos. Portanto, muitas chamadas ao sistema usadas para arquivos sao tambem necessarias para dispositivos. Em um sistema multiusuario, no entanto, devemos primeiro requisitar o uso de um dispositivo para assegurar seu uso exclusivo. Quando terminarmos de usa-lo, devemos libera-lo. Essas chamadas ao sistema sao similares as de abrir e fechar arquivos. Depois de requisitar um dispositivo ( e depois de ele ter sido alocado para nosso uso), podemos ler, gravar e (possivelmente) reposicionar esse dispositivo, da mesma maneira como acontece com arquivos comuns. A semelhanca entre dispositivo de E/S e arquivos e tanta