La réponse simple (moins je me trompe), non. Généralement, ce n'est pas une bonne idée pour deux raisons. La première est parce qu'elle provoque un problème de confiance entre votre programme et d'autres programmes (sans parler de nous, les humains ne feront pas confiance à votre application non plus). Deuxièmement, si vous pouviez accéder à une autre mémoire d'applications et effectuer une modification sans que l'application ne s'en rende compte, l'application se bloquerait (les virus le font aussi).
Un garbage collector est appelé à partir d'un runtime. Le moteur d'exécution "possède" l'espace mémoire et permet à d'autres applications de "vivre" dans cet espace mémoire. C'est pourquoi le garbage collector peut exister. Vous devrez créer une durée d'exécution à laquelle le système d'exploitation alloue de la mémoire, demander à l'exécution d'exécuter l'application sous son autorité et utiliser également le CPG sous son autorité. Vous aurez besoin d'une instrumentation ou d'une API permettant au développeur d'applications de demander de la mémoire à votre environnement d'exécution (pas le système d'exploitation) et votre runtime peut non seulement répondre à une telle requête, mais également garder la trace de l'espace mémoire. allouer à cette application. Vous aurez probablement besoin d'un framework (ensemble de DLL) qui rende ces appels disponibles à l'application (le développeur les utilisera pour former la requête dans leur application). Vous devez vous assurer que votre garbage collector ne supprime pas la mémoire autre que la mémoire utilisée par l'application en cours d'exécution, car il se peut que plus d'une application s'exécute simultanément dans votre environnement d'exécution.
Espérons que cela aide.
La langue est un problème. Il est impossible de répondre à cette question sans nous indiquer le système d'exploitation et la langue qui vous intéressent. – bmargulies