Why might an operating system use a "lazy" TLB invalidation strategy (such as address-space tagging with ASIDs) instead of flushing the entire TLB on every context switch?
Correct! Well done.
Incorrect.
The correct answer is C) Because tagging TLB entries with an address-space identifier lets entries from multiple processes coexist in the TLB, avoiding the cost of repopulating it from scratch after every switch and reducing the number of TLB misses
Correct Answer
Because tagging TLB entries with an address-space identifier lets entries from multiple processes coexist in the TLB, avoiding the cost of repopulating it from scratch after every switch and reducing the number of TLB misses
Without ASIDs, the TLB must be fully flushed on each context switch to avoid one process using another's stale translations, causing a burst of TLB misses afterward. ASID-tagged TLBs let entries from several address spaces coexist safely, so a process returning to the CPU can often still find its translations cached.