©2019 by Rhuan Luiz Galvão da Rocha

GERENCIAMENTO DE PROCESSO - PLAN9

SOBRE O PLAN9

O Plan 9 é um sistema operacional descendente do Unix e desenvolvido pela Bell Laboratories. Ele não é variante Unix, mas é muito parecido. O Plan 9 explora várias "simplificações" do modelo Unix original. Isso incrementa a experiência de usar e programar o sistema, notavelmente em ambientes multi-usuários distribuídos.

Os projetistas do Plan9 estavam interessados em objetivos similares aos do micronúcleo, mas fizeram escolhas bem diferentes em termos de arquitetura e desenvolvimento para atingir estes objetivos. Entre esses objetivos estão:

Recursos com arquivos: todos os recursos são representados como arquivos em um sistema de arquivos hierárquico;
"Namespaces": a visualização da rede pela aplicação é um simples, coerente "namespace" que aparece como um sistema de arquivos hierárquico, mas representa recursos separados fisicamente (local ou remotamente);
Protocolo de comunicação padrão: um protocolo padrão, chamado 9P, é usado para aceder a todos os recursos, tanto locais quanto remotos.

GERENCIAMENTO DE PROCESSO

No Plan9, cada processo possui seu próprio "namespace" mutável. Um processo pode reorganizar, adicionar e remover seu próprio "namespace" sem afetar os "namespaces" de processos não relacionados. Incluído nas mutações do "namespace" está a capacidade de montar uma conexão com um servidor de arquivos que fala 9P, um protocolo de arquivo simples. A conexão pode ser uma conexão de rede, um "pipe" ou qualquer outro "deor" de arquivo aberto para leitura e gravação com um servidor 9P na outra extremidade.

• ../pc/main.c: 156procinit0 deve ser chamado de procinit, mas existe outra rotina com o mesmo nome, procinit () o qual inicializa a tabela de processos.

• ../port / proc.c: 386,400 cria uma tabela de processos contendo o número de processos inicializados anteriormente como "inconf". Todas as entradas da tabela de processos são vinculadas a uma lista de processos livres. Cada entrada contém o que o sistema sabe sobre um determinado programa em execução.

initseg () inicializa a alocação para o segmento (imagens).

• ../pc/main.c: 157 os processos precisam de imagens (programas) para executar.

initseg inicializa o alocador de imagem em ./port/segment.c fazendo os mesmos alocadores: As imagens são alocadas e vinculadas a uma lista livre. Para dar continuidade ao assunto recomendo ler sobre o gerenciamento de memória no seguinte link : Gerenciamento de Memória plan9.png

ENTRE EM CONTATO