{"id":18243791,"url":"https://github.com/pedro31415/deadlocks","last_synced_at":"2025-10-05T01:02:38.795Z","repository":{"id":261131169,"uuid":"883365027","full_name":"pedro31415/Deadlocks","owner":"pedro31415","description":"seminário da disciplina de Sistema Operacional.","archived":false,"fork":false,"pushed_at":"2024-11-07T12:03:58.000Z","size":47,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-14T14:43:28.867Z","etag":null,"topics":["deadlock","matplotlib","networkx","operation-systems","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pedro31415.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-04T20:50:02.000Z","updated_at":"2024-11-07T12:04:03.000Z","dependencies_parsed_at":"2024-12-22T08:34:58.370Z","dependency_job_id":null,"html_url":"https://github.com/pedro31415/Deadlocks","commit_stats":{"total_commits":8,"total_committers":1,"mean_commits":8.0,"dds":0.0,"last_synced_commit":"0774f58c850d968b777e4c09bf5cb4dd6a866774"},"previous_names":["pedro31415/deadlocks"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedro31415%2FDeadlocks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedro31415%2FDeadlocks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedro31415%2FDeadlocks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedro31415%2FDeadlocks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pedro31415","download_url":"https://codeload.github.com/pedro31415/Deadlocks/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247900809,"owners_count":21015132,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deadlock","matplotlib","networkx","operation-systems","python"],"created_at":"2024-11-05T09:03:10.976Z","updated_at":"2025-10-05T01:02:33.747Z","avatar_url":"https://github.com/pedro31415.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SEMINÁRIO DE SISTEMA OPERACIONAL\n\nEste seminário tem como objetivo, ministrar o capítulo 6, do livro  Sistema Operacioanis Modernos, escrito por Tanenbaum. Nosso grupo ficou encarregado de explicar a respeito de Deadlocks(impasses).\n\n\n## DETECÇÃO DE IMPASSES (Pedro Henrique Araujo Cardoso)\n\nDetecção de impasses é uma técnica que normalmente é usada quando o sistema não tenta evitar a ocorrência dos impasses. O que ocorre é que ele deixa que aconteça os impasses para que possa detectá-los e assim tentar recupera-se após o ocorrido.\n\n\n## Algoritmo para detectar ciclos\n\n1. Para cada nó, N, no grafo, execute os cinco passos a seguir com N como o nó de partida.\n2. Inicialize L como uma lista vazia e designe todos  os arcos como desmarcados.\n3. Adicione o nó atual ao final de L e confira para ver se o nó aparece agora em L duas vezes. Se ele aparecer, o grafo contém um ciclo (listado em L) e o algoritmo termina.\n4. A partir do referido nó, verifique se há algum arco de saída desmarcado. Se afirmativo, vá parao passo 5; se não, vá para o passo 6.\n5. Escolha aleatoriamente um arco de saída desmarcado e marque-o. Então siga-o para gerar o novo nó atual e vá para o passo 3.\n6. Se esse nó é o inicial, o grafo não contém ciclo algum e o algoritmo termina. De outra maneira chegamos agora a um beco sem saída. Remova-o e volte ao nó anterior, isto é, aquele que era atual imediatamente antes desse, faça dele o nó atual e vá para o passo 3.\n\n\n\n## REFERÊNCIAS \n\n- TANENBAUM, A.; BOS, H. Sistemas Operacionais Modernos. 4ª Edição. São Paulo: Pearson Education do Brasil, 2016.\n- https://www.youtube.com/watch?v=yaJ6FgyoXCw \n- https://www.geeksforgeeks.org/detect-cycle-in-a-graph/\n- https://networkx.org/documentation/stable/tutorial.html\n- https://www.geeksforgeeks.org/detect-cycle-in-a-graph/\n- https://networkx.org/documentation/stable/tutorial.html\n- https://medium.com/@trinad536/deadlocks-in-go-f4ae0ecd05f6\n- https://www.tutorialspoint.com/python/python_thread_deadlock.htm\n- https://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/graphs.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedro31415%2Fdeadlocks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpedro31415%2Fdeadlocks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedro31415%2Fdeadlocks/lists"}