Patent ID: 8745311

Claim:
An operating system, comprising: a memory that has stored thereon computer executable components; a processor that executes the following computer executable components stored in the memory: a kernel component that moves data to one or more FLASH memory devices employed for random access memory applications; a buffer component that temporarily holds a plurality of pages while the pages are being stored on the FLASH memory device during a program and erase cycle; a direct memory access controller that writes to the buffer component during the program and erase cycle and signals a kernel as a DRAM device, bringing waiting processes out of a wait-listed mode to match a performance of a DRAM-based application; an address match component that determines, based on an incoming address, whether a data return is directed to a page buffer or the FLASH memory device, wherein the address match component generates a match or mismatch result that drives a multiplexer for the data return; a page table that stores virtual addresses and physical memory addresses a virtual management component that maps the virtual addresses to the physical memory addresses that correspond to at least one FLASH memory device and at least one DRAM memory device employed for random access memory applications; and an allocation component that allocates pages to at least one of the FLASH memory device or the DRAM memory device based on a type of page fault, wherein in response to a read major page fault, the allocation component allocates a page in marked with copy on write protection from a main storage device to the FLASH memory device, and wherein in response to a write major page fault, the allocation component allocates a page in from the main storage device to the DRAM memory device, wherein in response to a minor page fault, the allocation component determines whether an existing physical DRAM page is in the buffer component, and in response to there being an existing page on an existing physical page, the virtual management component maps to the existing physical DRAM page, and in response to there not being an existing page, a page is allocated on the buffer component and a FLASH page is demapped.