{"id":13560554,"url":"https://github.com/angiebachetarzi/TP_ensimag-malloc","last_synced_at":"2025-04-03T16:30:50.761Z","repository":{"id":105565225,"uuid":"236225192","full_name":"angiebachetarzi/TP_ensimag-malloc","owner":"angiebachetarzi","description":null,"archived":false,"fork":false,"pushed_at":"2020-01-26T15:44:51.000Z","size":40,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-04T12:39:46.474Z","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/angiebachetarzi.png","metadata":{"files":{"readme":"README.org","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":"2020-01-25T20:24:07.000Z","updated_at":"2024-09-19T09:05:53.000Z","dependencies_parsed_at":"2023-07-01T16:00:34.465Z","dependency_job_id":null,"html_url":"https://github.com/angiebachetarzi/TP_ensimag-malloc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angiebachetarzi%2FTP_ensimag-malloc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angiebachetarzi%2FTP_ensimag-malloc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angiebachetarzi%2FTP_ensimag-malloc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angiebachetarzi%2FTP_ensimag-malloc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/angiebachetarzi","download_url":"https://codeload.github.com/angiebachetarzi/TP_ensimag-malloc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247036900,"owners_count":20873043,"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-08-01T13:00:46.411Z","updated_at":"2025-04-03T16:30:50.755Z","avatar_url":"https://github.com/angiebachetarzi.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"* TP Allocateur mémoire: malloc\n  Ce squelette permet d'implanter un allocateur mémoire virtuelle. Le\n  sujet de TP expliquant le travail est diponible sur\n  http://ensiwiki.ensimag.fr dans [[https://ensiwiki.ensimag.fr/index.php?title=SEPC-S1][la page SEPC Semestre 1]]\n\n** TP antécédents\n    - le tp mémoire allocateur physique: first fit, buddy, chainage\n    - le tp mmap\n** Nouveauté par rapport aux TPs précédents\n   - allocateur virtuelle en trois tailles, plus progressif.\n   - une arena par thread\n   - croissance de l'arena par thread en utilisant mmap et une\n     structure =_Thread_local=\n   - récursive doubling pour l'allocation des chunk et du pool principal\n   - très gros (plus 128ko): mmap en direct\n   - très petit pour alloc de moins de 64o, par chunk de 96o\n   - buddy pour le pool principal\n   - marquage des blocs (avant après) pour avoir sa vrai taille\n     - un magic entier\n       - utiliser LCG MMIX de Knuth (64 bits) pour générer la valeur\n         magique à partir de l'addresse utilisée\n\t https://en.wikipedia.org/wiki/Linear_congruential_generator\n\n* Idées d'améliorations\n** TODO En faire une bibliothèque dynamique\n   - capable d'être utilisée à la place du malloc de la bibliothèque C\n** TODO Utiliser git bundle au lieu de Cpack\n   - Rendu complet, compact et avec toutes les informations de\n     contributions.\n   - Risque de rendu vide accru, si les étudiants n'arrivent pas à\n     faire un commit\n   - peut-être plus difficile pour les Phelma qui doivent apprendre\n     git en plus pour pouvoir rendre quelque chose ? C'est peut-être\n     le bon TP pour commencer.\n** TODO discussion avec Vincent, si il est intéréssé ?\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fangiebachetarzi%2FTP_ensimag-malloc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fangiebachetarzi%2FTP_ensimag-malloc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fangiebachetarzi%2FTP_ensimag-malloc/lists"}