Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eldersantoss/multi-threading-railroad
Projeto da disciplina Sistemas de Tempo Real.
https://github.com/eldersantoss/multi-threading-railroad
Last synced: 3 days ago
JSON representation
Projeto da disciplina Sistemas de Tempo Real.
- Host: GitHub
- URL: https://github.com/eldersantoss/multi-threading-railroad
- Owner: eldersantoss
- Created: 2020-12-15T14:16:12.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2021-10-14T19:44:05.000Z (about 3 years ago)
- Last Synced: 2024-06-07T14:56:17.435Z (5 months ago)
- Language: Python
- Size: 115 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Ferrovia STR
Projeto da disciplina Sistemas de Tempo Real.
## Descrição do problema
Implementar um programa que simula a dinâmica de 3 trens (verde, roxo e vermelho) se locomovendo independentemente em 3 circuitos que possuem trilhos compartilhados.
### Restrições
- Os trilhos compartilhados (L3, L4 e L6) só permitem a passagem de um trem por vez;
- Não podem haver deadlocks, isto é, os trens não podem ficar travados, sem possibilidade de movimento;### Requisitos
- Interface gráfica mostrando o movimentos dos trens em seus circuitos;
- Controles para modificar a velocidade dos trens;## Como executar
- Clonar repositório e executar arquivo app.py da seguinte forma:
```
$ python app.py
```## Notas do desenvolvimento
- Como sugerido no enunciado da atividade, criar 5 threads com as seguintes finalidades:
- 1 pra movimentar cada trem
- 1 pra controlar a velocidade dos trens
- 1 pra exibir os trens- Nos trilhos compartilhados, existe uma região crítica que deve ser acessada por apenas um trem de cada vez. Então, precisam ser usados artifícios para o controle do acesso a essas regiões, como por exemplo os mutex, que limitam a utilização de um determinado trecho de código para apenas uma thread por vez.
- Para evitar deadlocks, os trechos compartilhados (recursos) devem ser alocados completamente para um determinado trem e só depois que forem liberados é que podem ser alocados novamente para outro trem.