Paper Title: Mondriaan

Scriber: Ali Fakhrzadehgan


Problem:

  • Fine grain memory protection (word granularity).
* Discussion: Zeroing a page before allocation for a process; writing zero every time to whole page? Not efficient => having zero page, and point new pages to the zero page. Use the Copy-On-Write to write to the page efficiently.

Users:

  • Basically everyone: OS interactions, Plugins (e.g. sandboxing), Shared memory applications

Solution:

  • Permission Table beside the Translation mechanism/table
* Caching the Permission table (PLB).
* Sidecar Registers, loaded with the permissions in order to dereference the registers used for address generation (i.e. if <address, access type> does not match the permission, exception).
* Sorted Segment Table (SST). Since sorted, capable of doing Binary Search
* Using Nested Permission table (Multilevel), leaves of the tree are permissions of the words
* Hybrid: Combination of both Nested Permission Table and SST

Evaluation:

  • Memory overhead (extra accesses due to the permission checking) is considered as representative of the performance. One important problem in measuring the “more accurate” overhead of the extra access is lack of good memory simulator (there is no measuer of IPC or Speedup).
  • Both Fine grain and Coarse grain memory accesses are evaluated