PageIsValidForAccess() {
    if (!isUsable() && !isAboutToUnmap()) {
      throw new IllegalStateException("Page state must be in { USABLE | ABOUT_TO_UNMAP } for accessing, but: " + this);
    }
    if (usageCount() == 0) {
      throw new IllegalStateException("Page must be acquired for use (i.e. usageCount>0) before accessing, but: " + this);
    }
  }

  @Override
  publ
PageIsValidForAccess() {
    if (!isUsable