SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Universidade Estadual de Campinas
     Instituto de Computação



         MO806/MC914
Tópicos em Sistemas Operacionais

        Seminário: MINIX
        Daniel Bruno Alves dos Santos
        danielbrunoalves@gmail.com
Roteiro

    A história do MINIX

    MINIX2 versus MINIX3

    Processos

    Entrada e saída

    Gerenciamento de memória

    Sistemas de arquivos

    Referências

                                2
A história do MINIX

    Criado por Tanenbaum com propósitos acadêmicos, para exemplificar os
    conceitos de seu livro: “Sistemas Operacionais: projeto e implementação”
    (1987)

    Deriva da palavra (mini-UNIX)

    Microkernel

    Projetado para ser compatível com a versão 7 do UNIX

    Escrito a partir da linguagem C, como o UNIX

    Padrão POSIX para as chamadas de sistemas

    Inspirou a criação do Kernel do Linux

    Atualmente encontra-se na versão 3 (2005)




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




                                               4
Versões do MINIX

    Versão 1 (1987):

    −   Compatível com a versão 7 do UNIX
    −   Cerca de 12.000 linhas de código C, contemplando
        Kernel, gerenciamento de memória, sistemas de
        arquivos
    −   Liberou o código fonte e binários através de diskets
        com um manual de referência
    −   Grupo de discussão USENET (cerca de 40.000
        assinantes, em 3 meses)

                                                           5
Versões do MINIX

    Versão 2 (1997):
    −   Baseado na segunda versão do livro de
        Tanenbaum [1]
    −   Disponível apenas para x86, Solaris em arquitetura
        SPARC
    −   Adicionou o padrão POSIX
    −   Disitribuído a partir de CD-ROM




                                                         6
Versões do MINIX

    Versão 3 (2005):
    −   Foi reprojetada para ser “usada como um sistema
        sério sobre recursos limitados e computadores
        embarcados e para aplicações que requerem alta
        confiabilidade” [4]
    −   Suporta apenas arquitetura IA-32
    −   Disponível a partir de LiveCD
    −   Licença FreeBSD



                                                      7
MINIX2 versus MINIX3

    Melhorias em Relação à versão 2:
    −   Novas características:
         
             Instalação baseada em LiveCD
         
             Sistema de janelas X Window
         
             Suporte até 4GB de memória
         
             Blocos de disco com tamanhos: 1, 2, 4 ou 8KB
         
             Adição das chamadas de sistema “Select”
         
             Inclusão de novos programas: gcc, g++, emacs, pyton,
             perl, etc
         
             Servidor de informação para depuração
         
             Reincarnation Server que “mata” e substitui drivers
             defeituosos em tempo de execução

                                                                8
MINIX2 versus MINIX3

    Estrutura de Sistema:
    −   Reescrita do Kernel e diminuição de cerca de 4000
        linhas de código
    −   Cada driver de dispositivo (exceto o relógio) é um
        processo do usuário separado
    −   Novas características de confiabilidade
    −   Mecanismo de Comunicação entre Processos não
        bloqueante
    −   Melhoria no gerenciamento do Timer
    −   Escalonador se tornou mais geral
    −   etc...
                                                             9
Processos no MINIX

    O MINIX é uma coleção de processos que se
    comunicam entre si e com processos de usuários
    através de mensagens

    É estruturado em camadas, que executam funções
    específicas

    A comunicação é 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 interrupções e traps (interrupções
       de software)
     − Faz o escalonamento e fornece modelo de
       processos sequenciais independentes que se
       comunicam por mensagens

    A camada 2:
     − Contém os processos de E/S, chamados de
       tarefas e/ou drivers de dispositivos

    Todas as tarefas na camada 2 e todo código na
    camada 1 formam o Kernel

                                                        12
Processos – Estrutura Interna

    Camada 3:
    −   Contém processos que fornecem serviços úteis
        para os processos de usuário
    −   Realiza a interpretação das chamadas de sistemas
    −   Os processos de servidor executam em um nível
        menos privilegiado que o kernel e as tarefas que
        não podem acessar E/S diretamente
    −   Exemplos:
         
             Gerenciador de memória e Sistemas de arquivos



                                                             13
Processos – Estrutura Interna

    Camada 4:
    −   Contém todos os processos de usuário
    −   Exemplos:
         
             Shells, editores, compiladores e programas escritos
             pelos usuários




                                                              14
Processos no MINIX
   Gerenciamento de processos:
     − Chamadas de sistema FORK e EXEC
   Comunicação interprocessos:
     − através de mensagens
   Agendamento de processos:
     − Filas em 3 níveis, correspondendo às camadas 2, 3 e 4
     − Tarefas e servidores executam até bloquearem
     − Processos de usuário são escalonados por round robin
     − Tarefas tem a prioridade mais alta, seguido do
       gerenciador de memória e servidor de arquivos e por
       fim, processos do usuário

                                                           15
Entrada e Saída (E/S)

    Funções:
    −   Controlar todos os dispositivos de E/S
    −   Enviar comandos para todos os dispositivos
    −   Capturar interrupções
    −   Tratar erros
    −   Oferecer uma interface entre os dispositivos e o
        restante do sistema que seja simples e fácil de usar




                                                          16
Entrada e Saída no MINIX




      Fonte: Tanenbaum (2000)
                                17
Gerenciamento de memória

    Conceitos:
     − Hierarquia de memória
     − Gerenciador de memória (parte do SO que
       gerencia a hierarquia)


    Objetivo:
     − Controlar que partes da memória estão em uso e
       que partes não estão
     − Alocar memória para processos quando estes
       precisam e desalocar quando terminam
     − Gerenciar a troca entre a memória principal e o
       disco
                                                    18
Gerenciamento de memória no MINIX

    Gerenciamento simples: não utiliza paginação nem
    troca (swap) com o disco

    Compatibilidade com computadores antigos

    Não faz parte do Kernel

    É tratado pelo gerenciador de memória que executa
    no espaço do usuário e comunica-se com o Kernel por
    mensagens

    Memória é alocada quando um processo executa
    chamadas de sistemas como FORK ou EXEC



                                                     19
Gerenciamento de memória no MINIX

    O gerenciador de memória monitora a memória
    livre através 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 memória




                                               20
Sistemas de arquivos

    O sistema de arquivos deve:
    −   Alocar e desalocar espaço para arquivos
    −   Monitorar blocos de disco e liberar espaço
    −   Proteger os arquivos contra uso não autorizado




                                                         21
Sistema de arquivos no MINIX

    Encontra-se fora do Kernel, no espaço de
    usuário

    Por esta razão pode ser usado como servidor
    de arquivos de rede independente

    Implementado todo em C

    Copiou a estrutura básica do Sistema de
    arquivos do UNIX

    Evitou características complexas



                                              22
Sistema de arquivos no MINIX

    As vantagens dessa independência do sistema
    de arquivos são:
    −   Pode sofrer modificações 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 implementação:

    −   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 não estão sendo utilizados são
    encadeados em uma lista duplamente encadeada do
    mais recente utilizado (MRU) para o menos
    recentemente utilizado (LRU)




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


                                                                                 26
Dúvidas?




           27

Más contenido relacionado

La actualidad más candente

(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs
Anderson Lago
 
Do Unix ao Linux - Carlos Santos e Fernando Massen
Do Unix ao Linux - Carlos Santos e Fernando MassenDo Unix ao Linux - Carlos Santos e Fernando Massen
Do Unix ao Linux - Carlos Santos e Fernando Massen
Tchelinux
 
Linux Mint 15
Linux Mint 15Linux Mint 15
Linux Mint 15
jafelix22
 
Comparação de sistemas operativos cliente
Comparação de sistemas operativos clienteComparação de sistemas operativos cliente
Comparação de sistemas operativos cliente
André Dias
 

La actualidad más candente (20)

Free BSD - Beatriz Monteiro e Fabio da Costa
Free BSD - Beatriz Monteiro e Fabio da CostaFree BSD - Beatriz Monteiro e Fabio da Costa
Free BSD - Beatriz Monteiro e Fabio da Costa
 
(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs
 
Lynxos RTOS
Lynxos RTOSLynxos RTOS
Lynxos RTOS
 
Free bsd
Free bsdFree bsd
Free bsd
 
FreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeFreeBsd com Alta Disponibilidade
FreeBsd com Alta Disponibilidade
 
Usuário LInux
Usuário LInuxUsuário LInux
Usuário LInux
 
Free BSD e Cent OS
Free BSD e Cent OS Free BSD e Cent OS
Free BSD e Cent OS
 
Do Unix ao Linux - Carlos Santos e Fernando Massen
Do Unix ao Linux - Carlos Santos e Fernando MassenDo Unix ao Linux - Carlos Santos e Fernando Massen
Do Unix ao Linux - Carlos Santos e Fernando Massen
 
Unix
UnixUnix
Unix
 
Linux Mint 15
Linux Mint 15Linux Mint 15
Linux Mint 15
 
Por que FreeBSD?
Por que FreeBSD?Por que FreeBSD?
Por que FreeBSD?
 
Comparação de sistemas operativos cliente
Comparação de sistemas operativos clienteComparação de sistemas operativos cliente
Comparação de sistemas operativos cliente
 
UNIX - História e filosofia
UNIX - História e filosofiaUNIX - História e filosofia
UNIX - História e filosofia
 
Administração de Redes Linux - I
Administração de Redes Linux - IAdministração de Redes Linux - I
Administração de Redes Linux - I
 
Palestra xen-flisol2011
Palestra xen-flisol2011Palestra xen-flisol2011
Palestra xen-flisol2011
 
Sistema Operativo Linux
Sistema Operativo LinuxSistema Operativo Linux
Sistema Operativo Linux
 
Windows 2000
Windows 2000Windows 2000
Windows 2000
 
Sistemas operacionais1
Sistemas operacionais1Sistemas operacionais1
Sistemas operacionais1
 
Cent-OS - Sistema Operacional
Cent-OS - Sistema OperacionalCent-OS - Sistema Operacional
Cent-OS - Sistema Operacional
 
Linux
LinuxLinux
Linux
 

Similar a Minix

Quest linux lj
Quest linux ljQuest linux lj
Quest linux lj
Carol Luz
 
Apresentação Mac OS
Apresentação Mac OSApresentação Mac OS
Apresentação Mac OS
guestf2a4bc5
 
Apresentação Trabalho
Apresentação TrabalhoApresentação Trabalho
Apresentação Trabalho
jhoncv
 
Introdução a computação 03
Introdução a computação 03Introdução a computação 03
Introdução a computação 03
Felipe Pereira
 
Aula 04 informática aplicada - comando básicos
Aula 04  informática aplicada - comando básicosAula 04  informática aplicada - comando básicos
Aula 04 informática aplicada - comando básicos
Robson Ferreira
 
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling LandgrafDesenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
Tchelinux
 

Similar a Minix (20)

unix_basico.pdf
unix_basico.pdfunix_basico.pdf
unix_basico.pdf
 
Linux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao LinuxLinux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao Linux
 
Aula 01 So2009
Aula 01   So2009Aula 01   So2009
Aula 01 So2009
 
Sistemas operativos leandro silva
Sistemas operativos leandro silvaSistemas operativos leandro silva
Sistemas operativos leandro silva
 
Mandriva - Sistema Operacional
Mandriva - Sistema OperacionalMandriva - Sistema Operacional
Mandriva - Sistema Operacional
 
Quest linux lj
Quest linux ljQuest linux lj
Quest linux lj
 
Windows x Linux - O que preciso saber!
Windows x Linux - O que preciso saber!Windows x Linux - O que preciso saber!
Windows x Linux - O que preciso saber!
 
Apresentação Mac OS
Apresentação Mac OSApresentação Mac OS
Apresentação Mac OS
 
Apresentação Trabalho
Apresentação TrabalhoApresentação Trabalho
Apresentação Trabalho
 
Grupo 10: Windows 2000
Grupo 10: Windows 2000Grupo 10: Windows 2000
Grupo 10: Windows 2000
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais
 
Introdução a computação 03
Introdução a computação 03Introdução a computação 03
Introdução a computação 03
 
Aula 04 informática aplicada - comando básicos
Aula 04  informática aplicada - comando básicosAula 04  informática aplicada - comando básicos
Aula 04 informática aplicada - comando básicos
 
sistemas operativos.ppt
sistemas operativos.pptsistemas operativos.ppt
sistemas operativos.ppt
 
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling LandgrafDesenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
 
apostila linux
apostila linuxapostila linux
apostila linux
 
Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)
 
Fundamentos-de-Sistemas-Operacionais-Parte-1.pdf
Fundamentos-de-Sistemas-Operacionais-Parte-1.pdfFundamentos-de-Sistemas-Operacionais-Parte-1.pdf
Fundamentos-de-Sistemas-Operacionais-Parte-1.pdf
 
Apresentação Final
Apresentação FinalApresentação Final
Apresentação Final
 
Aula 3 - Sistemas operacionais - Linux
Aula 3 - Sistemas operacionais - LinuxAula 3 - Sistemas operacionais - Linux
Aula 3 - Sistemas operacionais - Linux
 

Último

Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 

Último (20)

Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Conflitos entre: ISRAEL E PALESTINA.pdf
Conflitos entre:  ISRAEL E PALESTINA.pdfConflitos entre:  ISRAEL E PALESTINA.pdf
Conflitos entre: ISRAEL E PALESTINA.pdf
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
GÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxGÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptx
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptx
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 

Minix

  • 1. Universidade Estadual de Campinas Instituto de Computação MO806/MC914 Tópicos em Sistemas Operacionais Seminário: MINIX Daniel Bruno Alves dos Santos danielbrunoalves@gmail.com
  • 2. Roteiro  A história do MINIX  MINIX2 versus MINIX3  Processos  Entrada e saída  Gerenciamento de memória  Sistemas de arquivos  Referências 2
  • 3. A história do MINIX  Criado por Tanenbaum com propósitos acadêmicos, para exemplificar os conceitos de seu livro: “Sistemas Operacionais: projeto e implementação” (1987)  Deriva da palavra (mini-UNIX)  Microkernel  Projetado para ser compatível com a versão 7 do UNIX  Escrito a partir da linguagem C, como o UNIX  Padrão POSIX para as chamadas de sistemas  Inspirou a criação do Kernel do Linux  Atualmente encontra-se na versão 3 (2005) 3
  • 4. MINIX  O MINIX destina-se a computadores pessoais e não a sistemas de compartilhamento de tempo de grande porte  Foi projetado para funcionar em todos os IBM PC 4
  • 5. Versões do MINIX  Versão 1 (1987): − Compatível com a versão 7 do UNIX − Cerca de 12.000 linhas de código C, contemplando Kernel, gerenciamento de memória, sistemas de arquivos − Liberou o código fonte e binários através de diskets com um manual de referência − Grupo de discussão USENET (cerca de 40.000 assinantes, em 3 meses) 5
  • 6. Versões do MINIX  Versão 2 (1997): − Baseado na segunda versão do livro de Tanenbaum [1] − Disponível apenas para x86, Solaris em arquitetura SPARC − Adicionou o padrão POSIX − Disitribuído a partir de CD-ROM 6
  • 7. Versões do MINIX  Versão 3 (2005): − Foi reprojetada para ser “usada como um sistema sério sobre recursos limitados e computadores embarcados e para aplicações que requerem alta confiabilidade” [4] − Suporta apenas arquitetura IA-32 − Disponível a partir de LiveCD − Licença FreeBSD 7
  • 8. MINIX2 versus MINIX3  Melhorias em Relação à versão 2: − Novas características:  Instalação baseada em LiveCD  Sistema de janelas X Window  Suporte até 4GB de memória  Blocos de disco com tamanhos: 1, 2, 4 ou 8KB  Adição das chamadas de sistema “Select”  Inclusão de novos programas: gcc, g++, emacs, pyton, perl, etc  Servidor de informação para depuração  Reincarnation Server que “mata” e substitui drivers defeituosos em tempo de execução 8
  • 9. MINIX2 versus MINIX3  Estrutura de Sistema: − Reescrita do Kernel e diminuição de cerca de 4000 linhas de código − Cada driver de dispositivo (exceto o relógio) é um processo do usuário separado − Novas características de confiabilidade − Mecanismo de Comunicação entre Processos não bloqueante − Melhoria no gerenciamento do Timer − Escalonador se tornou mais geral − etc... 9
  • 10. Processos no MINIX  O MINIX é uma coleção de processos que se comunicam entre si e com processos de usuários através de mensagens  É estruturado em camadas, que executam funções específicas  A comunicação é feita na mesma camada e/ou da camada superior com a inferior 10
  • 11. Processos – Estrutura Interna Fonte: Wikimedia 11
  • 12. Processos – Estrutura Interna  A camada inferior: − Captura todas as interrupções e traps (interrupções de software) − Faz o escalonamento e fornece modelo de processos sequenciais independentes que se comunicam por mensagens  A camada 2: − Contém os processos de E/S, chamados de tarefas e/ou drivers de dispositivos  Todas as tarefas na camada 2 e todo código na camada 1 formam o Kernel 12
  • 13. Processos – Estrutura Interna  Camada 3: − Contém processos que fornecem serviços úteis para os processos de usuário − Realiza a interpretação das chamadas de sistemas − Os processos de servidor executam em um nível menos privilegiado que o kernel e as tarefas que não podem acessar E/S diretamente − Exemplos:  Gerenciador de memória e Sistemas de arquivos 13
  • 14. Processos – Estrutura Interna  Camada 4: − Contém todos os processos de usuário − Exemplos:  Shells, editores, compiladores e programas escritos pelos usuários 14
  • 15. Processos no MINIX  Gerenciamento de processos: − Chamadas de sistema FORK e EXEC  Comunicação interprocessos: − através de mensagens  Agendamento de processos: − Filas em 3 níveis, correspondendo às camadas 2, 3 e 4 − Tarefas e servidores executam até bloquearem − Processos de usuário são escalonados por round robin − Tarefas tem a prioridade mais alta, seguido do gerenciador de memória e servidor de arquivos e por fim, processos do usuário 15
  • 16. Entrada e Saída (E/S)  Funções: − Controlar todos os dispositivos de E/S − Enviar comandos para todos os dispositivos − Capturar interrupções − Tratar erros − Oferecer uma interface entre os dispositivos e o restante do sistema que seja simples e fácil de usar 16
  • 17. Entrada e Saída no MINIX Fonte: Tanenbaum (2000) 17
  • 18. Gerenciamento de memória  Conceitos: − Hierarquia de memória − Gerenciador de memória (parte do SO que gerencia a hierarquia)  Objetivo: − Controlar que partes da memória estão em uso e que partes não estão − Alocar memória para processos quando estes precisam e desalocar quando terminam − Gerenciar a troca entre a memória principal e o disco 18
  • 19. Gerenciamento de memória no MINIX  Gerenciamento simples: não utiliza paginação nem troca (swap) com o disco  Compatibilidade com computadores antigos  Não faz parte do Kernel  É tratado pelo gerenciador de memória que executa no espaço do usuário e comunica-se com o Kernel por mensagens  Memória é alocada quando um processo executa chamadas de sistemas como FORK ou EXEC 19
  • 20. Gerenciamento de memória no MINIX  O gerenciador de memória monitora a memória livre através 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 memória 20
  • 21. Sistemas de arquivos  O sistema de arquivos deve: − Alocar e desalocar espaço para arquivos − Monitorar blocos de disco e liberar espaço − Proteger os arquivos contra uso não autorizado 21
  • 22. Sistema de arquivos no MINIX  Encontra-se fora do Kernel, no espaço de usuário  Por esta razão pode ser usado como servidor de arquivos de rede independente  Implementado todo em C  Copiou a estrutura básica do Sistema de arquivos do UNIX  Evitou características complexas 22
  • 23. Sistema de arquivos no MINIX  As vantagens dessa independência do sistema de arquivos são: − Pode sofrer modificações quase que de forma independente do restante do MINIX − Pode ser inteiramente removido, recompilado e usado como servidor remoto 23
  • 24. Sistema de arquivos no MINIX  Projeto e implementação: − Bloco de Boot (Boot Block) − SuperBloco (Superblock) − Inode bitmap − Zone bitmap − Inode − Área de dados (data area) 24
  • 25. 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 não estão sendo utilizados são encadeados em uma lista duplamente encadeada do mais recente utilizado (MRU) para o menos recentemente utilizado (LRU) 25
  • 26. Referências  [1] Tanenbaum, Andrew S; Woodhull, Albert S. Sistemas operacionais: projeto e implementação. Tradução de Edson Furmankiewics. 2. ed. Porto Alegre: Bookman, 2000.  [2] Tanenbaum, Andrew S. Sistemas operacionais modernos. 2.ed. São Paulo: Prentice Hall, 2003.  [3] MINIX3. Disponível em: <http://www.minix3.org/ >, Acesso em: 26 Nov. 2007.  [4] Wikipedia. Disponível em: <http://en.wikipedia.org/wiki/Minix>, Acesso em: 26 Nov. 2007.  [5] Wikipedia. Disponível em: < http://en.wikipedia.org/wiki/MINIX_file_system>, Acesso em: 26 Nov. 2007.  [6] Some Notes on the "Who wrote Linux" Kerfuffle. Disponível em: < http://www.cs.vu.nl/~ast/brown/ >, Acesso em: 26 Nov. 2007. 26
  • 27. Dúvidas? 27