o codigo executavel e suasvariaveis. As versoes mais recentes do Unix utilizam a tecnicaconhecida como copy-on-write para evitar a duplicacao de todo oespaco de enderecamento do processo pai e o tempo gasto na tarefa.Quando o sistema eativado, o processo 0(zero) e criado, o qual por sua vez cria oprocesso 1, conhecido como Init, e o pai de todos os outrosprocessos que venham a ser ciados pelo sistema.Processos do sistemaoperacional no Unix sao chamados de daemons. Os daemons saoresponsaveis por tarefas administrativas do sistema, por exemplo,escalonamento de tarefas (com), gerencia de filas de impressao,suporte a servicos de rede, suporte a gerencia de memoria (swapper)e gerencia de logs. Os daemons sao criados automaticamente durante ainicializacao do sistema.Processos no Unix podemse comunicar atraves de um mecanismo de troca de mensagens,conhecido como pipe. Outro mecanismo de comunicacao entreprocessos muito importante no Unix e conhecido como sinal. Um sinalpermite que um processo seja avisado da ocorrencia de eventossincronos ou assincronos. Por exemplo, quando o programa executauma divisao por zero , o sistema avisa ao processo do programaatraves de um sinal. O processador pode aceitar o sinal ouignora-lo. Caso o processo aceite o sinal, e possivel especificaruma rotina de tratamento.Um processo no Unix eformado por duas estruturas de dados: estrutura do processo (procstructure) ea area do usuario (user area ou u area). A estruturado processo, que contem o seu contexto de software, deve ficar sempreresidente na memoria principal, enquanto a area do usuario podeser retirada da memoria. Sendo necessaria apenas quando o processoe executado. Os processos existentesno sistema sao organizados em um vetor, chamado de tabela deprocessos, onde cada elemento representa uma estrutura do processo. Otamanho desse vetor e predefinido e limita o numero maximo deprocessos no sistema. A estrutura do processo, por sua vez, possui umponteiro para a area do usuario. Quando um processo executa umfork, o sistema procura por um elemento livre na tabela de processos,onde e criada a estrutura do processo filho, a partir dasinformacoes copiadas da estrutura do processo pai.Algumas system callsvoltadas para a gerencia de processos disponiveis na maioria dossistemas Unix.Gerencia doprocessadorA gerencia doprocessador no Unix utiliza dois tipos de escalonamento:escalonamento circular com prioridades e escalonamentos porprioridades. Os processos no Unixpodem ter prioridades entre 0 e 127, e quanto menos o valor maior aprioridade. Processos executados no modo usuario tem valor deprioridade entre 50 a 137 (menor prioridade), enquanto os processosem modo kernel tem prioridade entre 0 e 49 (maior prioridade)Gerencia de memoriaAs primeirasversoes do Unix utilizavam basicamente a tecnica de swapping para a gerencia dememoria. Apenas a partir da versao 3BSD, O Unix passou a utilizar a paginacaopor demanda. Atualmente, a grande maioria das versoes do Unix, tento BSD comoSystem V, implementam gerencia de memoria virtual por paginacao com swapping.Iremos abordar a versao 4BSD.No Unix, osconceitos de espaco de enderecamento virtual e mapeamento tem muitos detalhesde implementacao, como tamanho da pagina, niveis de tabelas de paginas e TLBs,sao dependentes da arquitetura de hardware, podendo variar conforme a versao decada sistema.Oespaco de enderecamento dos processos no Unix e dividido em tres segmentos:texto, dados e pilha. O segmento de texto corresponde a area onde