From a system design perspective, what are the reasons 100% of used memory is not freed up after a particular program or app is closed? open question