A method of computer memory management in a computing device having a processor operatively coupled to a physical memory , the processor executing instructions to provide a first operating system in the computing device, wherein the method comprising: receiving, at the first operating system, a request for allocation of memory; and in response to receiving the request for allocation of memory, determining whether the request is for allocation from a first memory region or a second memory region of the physical memory, wherein: the first memory region is allocated to the first operating system and is subdivided into multiple first memory subregions individually having a first size, the second memory region is allocated to a second operating system and is subdivided into multiple second memory subregions individually having a second size larger than the first size, wherein the second operating system is a guest operating system hosted by the computing device, and the first operating system concurrently tracks status of each of the multiple first memory subregions and of each of the multiple second memory subregions at the first and second memory regions, respectively; and in response to determining that: the request for allocation of memory is for allocation from the first memory region, allocating a portion of the first memory subregions, or the request for allocation of memory is for allocation from the second memory region, allocating a portion of the second memory subregions. receiving, at the first operating system, a request for allocation of memory; and in response to receiving the request for allocation of memory, determining whether the request is for allocation from a first memory region or a second memory region of the physical memory, wherein: the first memory region is allocated to the first operating system and is subdivided into multiple first memory subregions individually having a first size, the second memory region is allocated to a second operating system and is subdivided into multiple second memory subregions individually having a second size larger than the first size, wherein the second operating system is a guest operating system hosted by the computing device, and the first operating system concurrently tracks status of each of the multiple first memory subregions and of each of the multiple second memory subregions at the first and second memory regions, respectively; and the first memory region is allocated to the first operating system and is subdivided into multiple first memory subregions individually having a first size, the second memory region is allocated to a second operating system and is subdivided into multiple second memory subregions individually having a second size larger than the first size, wherein the second operating system is a guest operating system hosted by the computing device, and the first operating system concurrently tracks status of each of the multiple first memory subregions and of each of the multiple second memory subregions at the first and second memory regions, respectively; and in response to determining that: the request for allocation of memory is for allocation from the first memory region, allocating a portion of the first memory subregions, or the request for allocation of memory is for allocation from the second memory region, allocating a portion of the second memory subregions. the request for allocation of memory is for allocation from the first memory region, allocating a portion of the first memory subregions, or the request for allocation of memory is for allocation from the second memory region, allocating a portion of the second memory subregions. <EOS>