Unfortunately, these software protection mechanisms incur a cost that a more carefully design set of hardware protection mechanisms could eliminate. Providing a more flexible set of VM mechanisms could also lead to significant improvements in software's performance, reliability and complexity. Let the application know how things are going. Tell the application its concerns, its problems. Could the application use its knowledge to help the system work more efficiently.
Many processors already provide some form of feedback using on-chip performance counters.
These course-grained probes provide a great deal of information about the behavior of an application. However, it is usually difficult to extract the information in a way that would benefit the application. Processors also need to allow the application more opportunity to control the hardware structures. Compilers need to learn how a program utilizes the memory system, feeding that information back into subsequent compiles. Throughout the system, there are opportunities for software to advise, learn and modify their behavior to improve performance.