page aligned memory allocation