Repositório feito para as atividades de Sistemas Operacionais, disciplina ministrada no terceiro semestre na Faculdade de Computação e Telecomunicações da Universidade Federal do Pará.
Ao longo da disciplina foram propostas as seguintes tarefas:
- Tarefa 1 - Escolher algum problema e implementar em C e Assembly utilizando chamadas de sistemas.
- Tarefa 2 - implementação de concorrência e sincronismo através da criação de processos via comando fork e com o uso de threads.
- Tarefa 3 - Baixar o código sched-fcfs.c e implementar os seguintes escalonadores: • SJF • SRTF • Prioridades(fixa) • Round Robin (dar o time-slice como entrada)
- Tarefa 4 - Problemas Clássicos (Produtor x Consumidor, Leitor x Escritor, O jantar dos filósofos, O Problema do Barbeiro Dorminhoco).
- Tarefa 5 - Desenvolver uma aplicação, que necessite de muita RAM, e executar com e sem serviços de SWAP. Utilizar, ao menos, duas capacidades de SWAP para comparar
- Tarefa 6 - Escolher um Sistema de Arquivos, apresentar e realizar benchmarks (Teste de leitura sequencial e escrita sequencial e teste de leitura aleatória e escrita aleatória, com cargas 12 arquivos de arquivo 1GB cada)
Para automatizar a compilação implementamos o makefile neste repositório. Abaixo é descrito os comandos do makefile e os targets para compilar tudo ou subdiretórios específicos.
Certifique-se de ter o makefile, o GCC e o texlive-full instalados em seu computador.
Para compilar tudo.
make
Para compilar um subdiretório específico.
make 1_syscall
make 2_threads
make 3_escalonadores
make relatorios
- Na pasta 1_syscall: compila somente o "soma_subtracao.c", para compilar "soma_subtracao.s", use:
gcc -o subtracao_soma_s soma_subtracao.s
- Na pasta 2_threads: compila os códigos em C.
- Na pasta 3_escalonadores: compila os códigos em C.
- Na pasta relatorios: compila todos os relatórios em LaTeX.
Para limpar tudo.
make clean
Para limpar um subdiretório específico.
make clean
- Na pasta 1_syscall: remove o executável.
- Na pasta 2_threads: remove os executáveis.
- Na pasta 3_escalonadores: remove os executáveis.
- Na pasta relatorios: remove todos os outputs LaTeX.