{"id":21806879,"url":"https://github.com/chamale-rac/synching","last_synced_at":"2025-03-21T08:13:12.748Z","repository":{"id":241455815,"uuid":"805991046","full_name":"chamale-rac/synching","owner":"chamale-rac","description":"Experimenting with software synchronization concepts using C and C++","archived":false,"fork":false,"pushed_at":"2024-05-28T03:16:19.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-26T04:42:13.948Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chamale-rac.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-05-26T03:56:09.000Z","updated_at":"2024-05-28T03:16:22.000Z","dependencies_parsed_at":"2024-05-28T12:57:07.063Z","dependency_job_id":"ffcc198f-4939-43ee-a307-a51af783f20c","html_url":"https://github.com/chamale-rac/synching","commit_stats":null,"previous_names":["chamale-rac/synching"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamale-rac%2Fsynching","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamale-rac%2Fsynching/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamale-rac%2Fsynching/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamale-rac%2Fsynching/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chamale-rac","download_url":"https://codeload.github.com/chamale-rac/synching/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244759961,"owners_count":20505716,"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":[],"created_at":"2024-11-27T12:31:18.823Z","updated_at":"2025-03-21T08:13:12.723Z","avatar_url":"https://github.com/chamale-rac.png","language":"C","readme":"# synching 🧵🔧\nExperimenting with software synchronization concepts using C and C++ \n\n| 🧪 Laboratorio 5 - SISTEMAS OPERATIVOS - SECCIÓN - 20 - 2024 - 1\n\n## Program 1: Using Semaphores 🚦\n\n### Description\nThis program manages the consumption of resources by multiple threads using semaphores. It logs detailed information about the operations performed by each thread.\n\n### Compilation\nTo compile the program, use the following command:\n```sh\ngcc -o _semaphores _semaphores.c -lpthread\n```\n\n### Execution\nTo run the compiled program, use the following command:\n```sh\n./_semaphores \u003cNUM_THREADS\u003e \u003cNUM_ITERATIONS\u003e \u003cAVAILABLE_RESOURCES\u003e \u003cOUTPUT_FILE\u003e\n```\n\n### Example\n```sh\n./_semaphores 5 10 5 semaphore_log.txt\n```\n\n### Log File\nThe program will create a log file named `semaphore_log.txt` in the same directory, recording the detailed operations performed by each thread.\n\n---\n\n## Program 2: Using Monitors 📏\n\n### Description\nThis program allows threads to consume a given number of resources and uses a monitor for synchronization. It logs detailed information about the operations performed by each thread.\n\n### Compilation\nTo compile the program, use the following command:\n```sh\ngcc -o _monitors _monitors.c -lpthread\n```\n\n### Execution\nTo run the compiled program, use the following command:\n```sh\n./_monitors \u003cNUM_THREADS\u003e \u003cNUM_ITERATIONS\u003e \u003cAVAILABLE_RESOURCES\u003e \u003cMIN_RESOURCES\u003e \u003cMAX_RESOURCES\u003e \u003cOUTPUT_FILE\u003e\n```\n\n### Example\n```sh\n./_monitors 5 10 5 1 3 monitor_log.txt\n```\n\n### Log File\nThe program will create a log file named `monitor_log.txt` in the same directory, recording the detailed operations performed by each thread.\n\n---\n\n## Team 🤓\n\nSamuel Chamalé","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchamale-rac%2Fsynching","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchamale-rac%2Fsynching","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchamale-rac%2Fsynching/lists"}