I am studying the workings of Boehm GC (Garbage Collector). One aspect I am trying to understand is the specific operations that occur on the computer when Boehm GC releases memory.
How does the C language runtime library, specifically, understand that a particular memory region is not in use? Additionally, is it necessary for the OS to make changes to Page Table Entries (PTE) or Translation Lookaside Buffer (TLB) when freeing memory?