Tecnologia
Ensaios: Tecnologia. Pesquise 862.000+ trabalhos acadêmicosPor: Ollywer • 3/12/2012 • 1.221 Palavras (5 Páginas) • 743 Visualizações
1. Visão Geral
Foi escolhida, para o estudo, arquitetura microkernel do Minix 3, por seu modelo simplificado mas merecedor de atenção pois a arquitetura microkernel oferece uma maior confiabilidade e segurança para o funcionamento do sistema operacional. O Minix teve sua primeira versão lançada em 1987 como uma ferramenta para ensinar sistemas operacionais, seu criador e idealizador Andrew S. Tanenbaum que é professor na Vrije Universiteit usou essa ferramenta para ensinar e inspirar seus alunos, como todos nós sabemos o próprio Linus Torvalds teve como base para o kernel Linux o kernel do Minix. A arquitetura microkernel do Minix permite um funcionamento modularizado e mais articulado, esse funcionamento contribui para o aumento da confiabilidade do OS durante seu tempo de funcionamento. A estrutura consiste nas seguintes camadas.
Camada do kernel, ela contém apenas um pequeno numero de funções, bastante especificas por assim dizer, ela funciona como a abstração do hardware e interface do mesmo para as camadas mais acima, ela oferece os serviços de I/O, escalonamento e gerenciamento de memória, o resto dos serviços fica no espaço do usuário e essa separação é que possibilita o funcionamento interrupto do OS sem problemas que param o sistema inteiro de funcionar.
Já a camada do usuário contém quase todos os outros serviços do OS além dos próprios processos do usuário, esses serviços que ficam nessa camada são divididos em subcamadas, tais como, User Programs, Servers, Drivers, Filesystem, Network Stack.
Figura 1: A arquitetura microkernel coloca no espaço do usuário muitos serviços em que um kernel monolítico rodaria no espaço do kernel.
De 1987 até 1996 o Minix permaneceu na versão 1, somente sendo usada para estudo, em 1997 foi lançada a versão 2 com algumas modificações e ampliado seu objetivo, que era de começar a competir com os kernels atuais para oferecer um OS para sistemas de baixo custo ou com limitações de recursos e em 2005 foi lançado a versão 3 do Minix.
2. Gerenciamento de Memória
O gerenciamento de memória do minix é extremamente simples, tanto que paginação não consta no gerenciamento assim como swapping, mas esse podendo ser ativado quando o OS tem que rodar em sistemas que não possuam muita memória. Tanenbaum explica que na prática com as memórias enormes hoje disponíveis no mercado não é necessário que o sistema precise de paginação e swapping para os processos.
Não existe um processo específico para o gerenciamento de memória, como foi dito no inicio o gerenciamento é muito simples, esse gerenciamento acontece dentro do próprio processo do Process Manager (PM). O gerenciamento simplificado foi originalmente derivado de três fatores nos quais o Tanenbaum explica:
1. Desejo de manter o sistema simples para estudo.
2. A arquitetura do IBM PC (8086)
3. O objetivo de facilitar o Minix 3 ser portado para outras arquiteturas.
O PM mantém uma lista de nós ordenados numericamente pelo endereço de memória. Quando memória é requisitada a lista de nós da memória é pesquisada usando o algoritmo first fit procurando um nó suficientemente grande. Agora considerando que não temos swap nem paginação a área de memória alocada continua a mesma e na mesma posição do momento que ela foi alocada e permanece assim durante toda a execução do processo, sem aumentar ou diminuir.
Como o Minix é dirigido para sistemas de baixo custo como sistemas embarcados (câmeras, tocadores de DVD, celulares) todos eles possuem um OS, mas com certeza não possuem swapping e paginação, como o OS é uma escolha valida para esse mundo, a implementação desses mecanismos não é considerada de alta prioridade.
Com a separação de camadas o PM está na camada do usuário, com esse design temos uma separação entre política e mecanismos, aonde a política de aonde e em que momento o processo irá ter sua área de memória fica a cargo inteiramente do PM já a alocação real (mecanismo) fica a cargo das tarefas do sistema (system task) que fica na camada do kernel. Com essa visão podemos facilmente identificar a facilidade de podermos trocar os modelos de política de alocação de memória para os processos sem realmente ter que mexer nos níveis mais baixos do sistema operacional para o real mecanismo de alocação de memória.
2.1. Layout da Memória
No Minix 3 os programas podem ser compilados para usar dois modelos de memória, espaço combinado de instrução e dados (I&D) aonde todas as partes do processo dividem o mesmo espaço de memória (Texto, Dados
...