title: Using MMU to implement resizable arrays
body: <p>Usually, lists are implemented either as linked lists, which are slow to traverse, or as array lists, which are slow when inserting elements.</p>
  
  <p>I was wondering if it would be possible to use the processor's MMU to implement lists more efficiently, by remapping instead of copying memory whenever an element is inserted or deleted. This would mean that both indexing and insertion/deletion anywhere in the array to have an speed of O(1), <a href="https://en.wikipedia.org/wiki/Linked_list#Tradeoffs">better than any other list implementation</a>. </p>
  
  <p>My questions are:</p>
  
  <ul>
  <li>Are programs actually able to control their own virtual memory, or would changes to the OS need to be made?</li>
  <li>Is there a limit to the number of page table entries per process? Does memory access get slower with more entries?</li>
  <li>Is changing page table entries so slow that this would be more efficient only for very large lists?</li>
  <li>Are there any existing implementations of this type of list? If yes, what stops people from using them more?</li>
  </ul>