You are on page 1of 27

Universidade Estadual de Campinas Instituto de Computao

MO806/MC914 Tpicos em Sistemas Operacionais

Seminrio: MINIX
Daniel Bruno Alves dos Santos danielbrunoalves@gmail.com

Roteiro

A histria do MINIX MINIX2 versus MINIX3 Processos Entrada e sada Gerenciamento de memria Sistemas de arquivos Referncias
2

A histria do MINIX

Criado por Tanenbaum com propsitos acadmicos, para exemplificar os conceitos de seu livro: Sistemas Operacionais: projeto e implementao (1987) Deriva da palavra (mini-UNIX) Microkernel Projetado para ser compatvel com a verso 7 do UNIX Escrito a partir da linguagem C, como o UNIX Padro POSIX para as chamadas de sistemas Inspirou a criao do Kernel do Linux Atualmente encontra-se na verso 3 (2005)

MINIX

O MINIX destina-se a computadores pessoais e no a sistemas de compartilhamento de tempo de grande porte Foi projetado para funcionar em todos os IBM PC

Verses do MINIX

Verso 1 (1987):

Compatvel com a verso 7 do UNIX Cerca de 12.000 linhas de cdigo C, contemplando Kernel, gerenciamento de memria, sistemas de arquivos Liberou o cdigo fonte e binrios atravs de diskets com um manual de referncia Grupo de discusso USENET (cerca de 40.000 assinantes, em 3 meses)
5

Verses do MINIX

Verso 2 (1997):

Baseado na segunda verso do livro de Tanenbaum [1] Disponvel apenas para x86, Solaris em arquitetura SPARC Adicionou o padro POSIX Disitribudo a partir de CD-ROM

Verses do MINIX

Verso 3 (2005):

Foi reprojetada para ser usada como um sistema srio sobre recursos limitados e computadores embarcados e para aplicaes que requerem alta confiabilidade [4] Suporta apenas arquitetura IA-32 Disponvel a partir de LiveCD Licena FreeBSD

MINIX2 versus MINIX3

Melhorias em Relao verso 2:

Novas caractersticas:

Instalao baseada em LiveCD Sistema de janelas X Window Suporte at 4GB de memria Blocos de disco com tamanhos: 1, 2, 4 ou 8KB Adio das chamadas de sistema Select Incluso de novos programas: gcc, g++, emacs, pyton, perl, etc Servidor de informao para depurao Reincarnation Server que mata e substitui drivers defeituosos em tempo de execuo
8

MINIX2 versus MINIX3

Estrutura de Sistema:

Reescrita do Kernel e diminuio de cerca de 4000 linhas de cdigo Cada driver de dispositivo (exceto o relgio) um processo do usurio separado Novas caractersticas de confiabilidade Mecanismo de Comunicao entre Processos no bloqueante Melhoria no gerenciamento do Timer Escalonador se tornou mais geral etc...
9

Processos no MINIX

O MINIX uma coleo de processos que se comunicam entre si e com processos de usurios atravs de mensagens estruturado em camadas, que executam funes especficas A comunicao feita na mesma camada e/ou da camada superior com a inferior

10

Processos Estrutura Interna

Fonte: Wikimedia
11

Processos Estrutura Interna

A camada inferior: Captura todas as interrupes e traps (interrupes de software) Faz o escalonamento e fornece modelo de processos sequenciais independentes que se comunicam por mensagens A camada 2: Contm os processos de E/S, chamados de tarefas e/ou drivers de dispositivos Todas as tarefas na camada 2 e todo cdigo na camada 1 formam o Kernel
12

Processos Estrutura Interna

Camada 3:

Contm processos que fornecem servios teis para os processos de usurio Realiza a interpretao das chamadas de sistemas Os processos de servidor executam em um nvel menos privilegiado que o kernel e as tarefas que no podem acessar E/S diretamente Exemplos:

Gerenciador de memria e Sistemas de arquivos

13

Processos Estrutura Interna

Camada 4:

Contm todos os processos de usurio Exemplos:

Shells, editores, compiladores e programas escritos pelos usurios

14

Processos no MINIX

Gerenciamento de processos: Chamadas de sistema FORK e EXEC Comunicao interprocessos: atravs de mensagens Agendamento de processos: Filas em 3 nveis, correspondendo s camadas 2, 3 e 4 Tarefas e servidores executam at bloquearem Processos de usurio so escalonados por round robin Tarefas tem a prioridade mais alta, seguido do gerenciador de memria e servidor de arquivos e por fim, processos do usurio
15

Entrada e Sada (E/S)

Funes:

Controlar todos os dispositivos de E/S Enviar comandos para todos os dispositivos Capturar interrupes Tratar erros Oferecer uma interface entre os dispositivos e o restante do sistema que seja simples e fcil de usar

16

Entrada e Sada no MINIX

Fonte: Tanenbaum (2000)


17

Gerenciamento de memria

Conceitos: Hierarquia de memria Gerenciador de memria (parte do SO que gerencia a hierarquia) Objetivo: Controlar que partes da memria esto em uso e que partes no esto Alocar memria para processos quando estes precisam e desalocar quando terminam Gerenciar a troca entre a memria principal e o disco
18

Gerenciamento de memria no MINIX

Gerenciamento simples: no utiliza paginao nem troca (swap) com o disco Compatibilidade com computadores antigos No faz parte do Kernel tratado pelo gerenciador de memria que executa no espao do usurio e comunica-se com o Kernel por mensagens Memria alocada quando um processo executa chamadas de sistemas como FORK ou EXEC

19

Gerenciamento de memria no MINIX

O gerenciador de memria monitora a memria livre atravs de uma lista de lacunas e do algoritmo do primeiro ajuste O seu maior trabalho executar as chamadas de sistemas relacionadas com o gerenciamento de memria

20

Sistemas de arquivos

O sistema de arquivos deve:


Alocar e desalocar espao para arquivos Monitorar blocos de disco e liberar espao Proteger os arquivos contra uso no autorizado

21

Sistema de arquivos no MINIX

Encontra-se fora do Kernel, no espao de usurio Por esta razo pode ser usado como servidor de arquivos de rede independente Implementado todo em C Copiou a estrutura bsica do Sistema de arquivos do UNIX Evitou caractersticas complexas

22

Sistema de arquivos no MINIX

As vantagens dessa independncia do sistema de arquivos so:


Pode sofrer modificaes quase que de forma independente do restante do MINIX Pode ser inteiramente removido, recompilado e usado como servidor remoto

23

Sistema de arquivos no MINIX

Projeto e implementao:

Bloco de Boot (Boot Block) SuperBloco (Superblock) Inode bitmap Zone bitmap Inode rea de dados (data area)

24

Sistema de arquivos no MINIX

O MINIX utiliza um cache de blocos para melhorar o desempenho do sistema de arquivos O cache implementado como uma matriz de buffers Todos os buffers que no esto sendo utilizados so encadeados em uma lista duplamente encadeada do mais recente utilizado (MRU) para o menos recentemente utilizado (LRU)

25

Referncias

[1] Tanenbaum, Andrew S; Woodhull, Albert S. Sistemas operacionais: projeto e implementao. Traduo de Edson Furmankiewics. 2. ed. Porto Alegre: Bookman, 2000. [2] Tanenbaum, Andrew S. Sistemas operacionais modernos. 2.ed. So Paulo: Prentice Hall, 2003. [3] MINIX3. Disponvel em: <http://www.minix3.org/ >, Acesso em: 26 Nov. 2007. [4] Wikipedia. Disponvel em: <http://en.wikipedia.org/wiki/Minix>, Acesso em: 26 Nov. 2007. [5] Wikipedia. Disponvel em: < http://en.wikipedia.org/wiki/MINIX_file_system>, Acesso em: 26 Nov. 2007. [6] Some Notes on the "Who wrote Linux" Kerfuffle. Disponvel em: < http://www.cs.vu.nl/~ast/brown/ >, Acesso em: 26 Nov. 2007.

26

Dvidas?

27

You might also like