E que cabe tambem ao sistema operacional, determinar como esse recurso sera compartilhado no tempo e no espaco.SISTEMA OPERACIONAL COMO UMA MAQUINA ESTENDIDAO sistema operacional tambem fornece ao programador, chamadas de sistema ou funcoes de biblioteca para permitir a programacao de recursos. Por exemplo, para ler ou gravar dados em um disquete, o programador tem que se preocupar apenas com nomes de arquivos e as operacoes correspondentes a essas acoes.Para o programador lidar com a entrada e a saida de um CD, o sistema operacional oculta detalhes de implementacao sobre o hardware e apresenta uma visao simples e agradavel dos nomes dos arquivos que podem ser lidos e escritos. Dessa forma, o sistema operacional protege o hardware do disco e apresenta uma interface orientada para arquivos simples. Ele tambem oculta aspectos relacionados as interrupcoes, aos temporizadores, ao gerenciamento de memoria e outros aspectos de nivel inferior.TAREFAS DO SISTEMA OPERACIONALAgora, vamos acompanhar como as tarefas que competem ao sistema operacional, mencionadas anteriormente, sao executadas por ele. Quando o computador e ligado, normalmente o sistema operacional se torna ativo e controla os recursos do sistema. Nesse instante, e carregado um pequeno conjunto de instrucoes de sistema armazenadas na memoria ROM (do ingles Read-Only Memory). Essas instrucoes verificam se o hardware do sistema esta funcionando corretamente e, caso esteja, ativa as unidades de disco do computador. Alem disso, todos os elementos chave do sistema operacional sao carregados, os programas de inicializacao sao executados, a interface com o usuario e fornecida e o sistema e preparado para uso. Essa atividade e frequentemente denominada booting. (fig 07)MULTIPROGRAMACAOComo ja mencionamos anteriormente, na memoria principal de um computador, podem existir varios programas armazenados simultaneamente. Esses programas disputam o acesso ao processador para serem executados. A tecnica que possibilita manter, ao mesmo tempo, esses programas na memoria principal, e denominada multiprogramacao. (fig 08)Um programa em execucao reside na memoria principal e suas instrucoes sao processadas, uma apos outra, em um ciclo denominado buscar-decodificar-executar (em ingles, fetch-decode-execute).Outro aspecto que gostariamos de frisar e que todos os sistemas operacionais modernos empregam a multiprogramacao. Isso significa que, consequentemente, um sistema operacional deve realizar a gerencia de memoria para conhecer os programas que estao na memoria e em que parte desta, eles residem. (fig 08)PROCESSOSChamamos sua atencao tambem, para outro conceito importante do sistema operacional, o da ideia de processo, que pode ser definido como um programa em execucao. Em outras palavras, um programa e um conjunto de instrucoes estaticas e um processo e a entidade dinamica que representa o programa quando e executado. (fig 09 A)GERENCIAMENTO DE PROCESSOSAssim, com a multiprogramacao, um sistema pode ter varios processos ativos ao mesmo tempo. O sistema operacional deve controlar esses processos com cuidado e, para evitar conflitos, ele realiza o gerenciamento de processos para rastrear o progresso de um processo e todos os seus estagios intermediarios. (fig 09 B)SINCRONIZACAO DA CPUEm relacao as ideias de gerencia de memoria e de processos, outra necessidade e a sincronizacao da CPU, que determina qual processo e executado pela CPU em determinado ponto da memoria. Gerenciamento de memoria, de processo