Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Operacionais Visão Geral dos Processos no MINIX 3 Prof. Sílvio Fernandes UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Introdução O MINIX 3 é uma coleção de processos que se comunicam entre si e também com processos de usuário Utilizando uma única primitiva básica de comunicação: passagem de mensagem Estrutura mais flexível e modular EX: pode-se substituir o sistema de arquivos inteiro por outro completamente diferente, sem nem mesmo precisar recompilar o núcleo 2 Estrutura Interna do MINIX 3 O MINIX 3 é estruturado em 4 camadas 3 Init Processo Usuário Processo Usuário Processo Usuário ... Gerenciador de processo Sistema arquivos Servidor informações Servidor rede ... Driver disco Driver TTY Driver ethernet ... Núcleo Tarefa relógio Tarefa de sistema Modo usuário 4 3 2 1 Processos de usuário Processos de servidor Drivers de dispositivo Núcleo Modo núcleo Camada Estrutura Interna do MINIX 3 O MINIX 3 é estruturado em 4 camadas Camada 1 O núcleo escalona processos e gerencia as transições entre os estados pronto, executando e bloqueado; manipula todas as mensagens; faz o suporte para acesso às portas de E/S e interrupções A tarefa de relógio é um driver de dispositivo de E/S, pois interage com o hardware que gera sinais de temporização, mas não é acessível para o usuário Fornece um conjunto de chamadas de núcleo privilegiadas para os drivers e servidores acima dela; inclui ler e escrever em portas de E/S, copiar dados entre espaços de endereçamento etc. 4 Estrutura Interna do MINIX 3 O MINIX 3 é estruturado em 4 camadas Camada 1 A maior parte do núcleo e as tarefas de relógio e de sistema são escritas em C Um pequena parte é escrita em assembly, como aquelas que trabalham com o tratamento de interrupções, com o mecanismo de chaveamento de contexto e as parte de baixo nível da manipulação do hardware MMU 5 Estrutura Interna do MINIX 3 O MINIX 3 é estruturado em 4 camadas Camada 2 Os processos dessa camada possuem a maioria dos privilégios especiais (como a capacidade de fazer chamadas de núcleo) O drivers de dispositivos podem pedir que a tarefa de sistema leia ou escreva dados em portas de E/S em seu nome É necessário um driver para cada tipo de dispositivo Esses drivers ainda podem fazer chamadas de núcleo para solicitar que os dados lidos sejam copiados para o espaço de endereçamento de um processo diferente 6 Estrutura Interna do MINIX 3 O MINIX 3 é estruturado em 4 camadas Camada 3 Contém os servidores que fornecem serviços úteis para os processos de usuário Dois servidores são fundamentais Gerenciador de processos (PM): executa todas as chamadas de sistema do MINIX 3 que envolvem iniciar ou interromper a execução de processos, como fork, exec, exit, alarm e kill; também responsável pelo gerenciamento de memória Sistema de arquivos (FS): executa todas as chamadas de sistema de arquivo, como read, mount e chdir 7 Estrutura Interna do MINIX 3 O MINIX 3 é estruturado em 4 camadas Camada 3 Ainda possui o servidor de informações (IS) trata de tarefas como fornecer informações de depuração e status sobre outros drivers e servidores O servidor de reencarnação (RS) que inicia (e, se necessário reinicia) drivers de dispositivos que não são carregados em memória ao mesmo tempo que o núcleo Em um sistema em rede, o servidor de rede também está presente O sistema não precisa ser recompilado para incluir mais servidores 8 Estrutura Interna do MINIX 3 É importante entender a diferença entre chamada de núcleo e chamada de sistema do POSIX Chamadas de núcleo são funções de baixo nível fornecidas pela tarefa de sistema para permitir que os drivers e servidores realizem seu trabalho Chamadas de sistema POSIX são de alto nível definidas pelo padrão POSIX e estão disponíveis para programas de usuário na camada 4 9 Estrutura Interna do MINIX 3 O MINIX 3 é estruturado em 4 camadas Camada 4 Contém todos os processos de usuário Alguns processos são ativados quando o sistema é inicializado e executam eternamente, como init Um daemon é um processo em segundo plano executado periodicamente ou que espera a ocorrência de algum evento Assim como servidores, é possível configurar daemons com mais alta prioridade que processo de usuário O processo service fornece uma interface para o servidor de reencarnação que o gerencia 10 Gerenciamento de Processos no MINIX 3 Os processos podem criar subprocessos, os quais podem criar outros subprocessos, produzindo uma árvore Todos os processos de usuário fazem parte de uma única árvore, com init na raiz Os drivers e servidores são casos especiais já que alguns deles devem ser executados antes de qualquer processo de usuário e mesmo do processo init 11 Gerenciamento de Processos no MINIX 3 Inicialização do MINIX 3 O núcleo inicia as tarefas de sistema de relógio e depois o gerenciador de processos e o sistema de arquivos O ger. processos e sist. de arquivos cooperam na inicialização de outros servidores e drivers que serão bloqueados, na espera de algo para fazer O escalonamento no MINIX 3 é baseado em prioridade Somente quando todas as tarefas, drivers e servidores carregados na imagem de boot tiverem sido bloqueados é que init, o 1º processo de usuário, será executado 12 Gerenciamento de Processos no MINIX 3 Inicialização do MINIX 3 13 Componente Descrição Carregado por kernel Núcleo + tarefas de relógio e de sistema Na imagem de boot pm Gerenciador de processos Na imagem de boot fs Sistema de arquivos Na imagem de boot rs (Re)inicia servidores e drivers Na imagem de boot memory Driver de disco de RAM Na imagem de boot log Registra informações de log Na imagem de boot tty Driver de console e teclado Na imagem de boot driver Driver de disco (at, bios ou floppy) Na imagem de boot init Pai de todos os processos de usuário Na imagem de boot floppy Driver de disq. (se inicialização de HD) /etc/rc is Servidor de informações /etc/rc cmos Lê o relógio da CMOS para configurar a hora /etc/rc random Gerador de números aleatórios /etc/rc printer Driver de impressora /etc/rc Gerenciamento de Processos no MINIX 3 Inicialização do MINIX 3 Init executa primeiro o script de shell /etc/rc Esse script inicia drivers e servidores adicionais que não fazem parte da imagem de boot Os servidores e driver necessários estão inicialmente no diretório /sbin Outros comandos necessários para a inicialização estão em /bin Quando as etapas de inicialização iniciais tiverem terminado, outros sistemas de arquivo, como /usr, serão montados A tarefa final de /etc/rc é iniciar daemons 14 Referências TANENBAUM, Andrew S.; WOODHULL, Albert S. Sistemas Operacionais: Projeto e Implementação. 3ª Ed., Prentice Hall, 2008. TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3ª Ed., Prentice Hall, 2009. 15
Compartilhar