Skip to content

Andrewgaabriel/xv6-lottery-scheduler-implementation

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Implementação do Escalonador de Processos por Loteria (Lottery Scheduling) no Sistema Operacional Xv6

Implementado por: Andrew Gabriel e Igor Radkte
Plataforma: Xv6


Conteúdo:

  1. Objetivo Geral
  2. Objetivos Específicos
  3. Descrição
  4. Como testar/executar?
  5. Como instalar o emulador Qemu?

Objetivo Geral

  • Desenvolver conhecimento e prática de implementação de um componente básico (i.e., escalonador de processos) em um sistema operacional didático.

Objetivos Específicos

  • (A) Estudar o código de uma implementação do Unix versão 6 para a plataforma Intel (xv6, desenvolvido no MIT);
  • (B) Analisar e planejar a implementação de dois escalonadores de processos;
  • (C) Implementar os escalonadores;
  • (D) Avaliar o escalonador através de experimentos.

Descrição

  • Implementar o escalonador de processos baseado em loteria (lottery scheduling). Na instanciação de um processo, deve-se passar ao sistema a quantidade de bilhetes que o novo processo recebe. Caso o usuário não forneça esse dado, o sistema assume um número default de bilhetes. Assumir também um número máximo de bilhetes que um processo pode receber.

Como testar/executar:

  • Requisitos:

    • GCC compiler
    • Qemu emulator
  • Como executar:

    • (1) Faça uma cópia do repositório em sua máquina:

      $ git clone https://github.com/Andrewgaabriel/xv6-lottery-scheduler-implementation.git
      
    • (2) Acesse o repositório

      $ cd xv6-lottery-scheduler-implementation
      $ cd xv6-lottery-scheduling
      
    • (3) Compile o programa:

      $ make clean
      $ make
      
    • (4) Execute o emulador: (caso não tenha o xv6 instalado siga essas instruções:)

      $ make qemu
      
    • (5) Dentro do emulador, para testar o escalonador, execute:

      $ teste <op>
      
      • Opções de teste:
        • <op> = 0: Teste COM definição de bilhetes e processamento FINITO.
        • <op> = 1: Teste COM definição de bilhetes e processamento INFINITO.
        • <op> = 2: Teste SEM definição de bilhetes e processamento FINITO.
        • <op> = 3: Teste SEM definição de bilhetes e processamento INFINITO.
        • <op> = 4: Teste COM definição de bilhetes no SHELL e processamento FINITO.
        • <op> = 5: Teste COM definição de bilhetes no SHELL e processamento INFINITO.
      • Para verificar o funcionamento do escalonador nas opções <op> = 1 e <op> = 3 você deve pressionar CTRL + P no emulador. Assim você verá os processos que estão sendo executados e suas respectivas informações. Para parar o processamento e fazer mais testes pressione CTRL + K para matar os processos.
      • Para as opções <op> = 4 e <op> = 5 você deve inserir a quantidade de bilhetes de cada processo, exemplo:
        $ teste 4 100 200 450 879
      

Instruções para instalar o emulador:

$ sudo apt-get install qemu
$ sudo apt-get install libc6-dev:i386
$ chmod 700 -R xv6-lottery-scheduling

Packages

No packages published

Languages

  • C 86.6%
  • Assembly 3.8%
  • Makefile 3.4%
  • Shell 2.3%
  • Perl 2.1%
  • Ruby 1.0%
  • Other 0.8%