Projeto Sistemas Operativos 2017/2018, Mestrado Integrado em Engenharia Informática, Universidade do Minho, Braga - Portugal
Este projeto concretiza um sistema para processamento de notebooks, que misturam fragmentos de código, resultados da execução, e documentação. Neste contexto, um notebook é um ficheiro de texto que depois de processado é modificado de modo a incorporar resultados da execução de código ou comandos nele embebidos. O projeto foi desenvolvido num ambiente de linguagem de programação C, recorrendo a diversas System Calls indispensáveis para um sistema totalmente paralelo.
Em modo exemplificativo, a seguir apresenta-se um notebook antes e depois de processado:
Onde, $x representa a dependência do n-ésimo comando anterior, neste caso, o comando 1 e 2 dependem apenas do output do comando 0
- Execução de programas
- Re-processamento de um notebook (depois de processado e alterado é possível re-processar o notebook, obtendo os novos resultados de execução)
- Detecção de erros e interrupção da execução
- Acesso a resultados de comandos anteriores arbitrários
- Pipes
- Controladores de fluxo
- Redirecionamento de outputs
- Logs intermédios e escrita no notebook final
- Execuções de comandos
make clean
make
./notebook exemplo.nb