Patent application number | Description | Published |
20110225342 | OPPORTUNISTIC PAGE CACHING FOR VIRTUALIZED SERVERS - A system described herein includes a receiver component that receives an indication that at least one page in virtual memory is free and the at least one page in virtual memory is classified as short-lived memory, wherein the virtual memory is accessible to at least one virtual machine executing on a computing device. The system also includes a cache updater component that dynamically updates a cache to include the at least one page, wherein the cache is accessible to the at least one virtual machine. | 09-15-2011 |
20110271070 | MEMORY USAGE SCANNING - A memory scanning system may scan memory objects to determine usage frequency by scanning each memory object using a mapping of the processes stored in memory. The scanning may be performed multiple times to generate a usage history for each page or unit of memory. In some cases, scanning may be performed at different frequencies to determine multiple classifications of usage. The mapping may create a detailed topology of memory usage, including multiple classifications of access frequency, as well as several other classifications. Based on the topology, the objects in memory may be copied to another storage medium or optimized for performance or power consumption. | 11-03-2011 |
20110314202 | MANAGING CACHE DATA AND METADATA - Embodiments of the invention provide techniques for managing cache metadata providing a mapping between addresses on a storage medium (e.g., disk storage) and corresponding addresses on a cache device at data items are stored. In some embodiments, cache metadata may be stored in a hierarchical data structure comprising a plurality of hierarchy levels. When a reboot of the computer is initiated, only a subset of the plurality of hierarchy levels may be loaded to memory, thereby expediting the process of restoring the cache metadata and thus startup operations. Startup may be further expedited by using cache metadata to perform operations associated with reboot. Thereafter, as requests to read data items on the storage medium are processed using cache metadata to identify addresses at which the data items are stored in cache, the identified addresses may be stored in memory. When the computer is later shut down, instead of having to transfer the entirety of the cache metadata from memory to storage, only the subset of the plurality of hierarchy levels and/or the identified addresses previously loaded to memory may be transferred (e.g., to the cache device), thereby expediting the shutdown of the computer. | 12-22-2011 |
20120173824 | MANAGING CACHE DATA AND METADATA - Embodiments of the invention provide techniques for managing cache metadata providing a mapping between addresses on a storage medium (e.g., disk storage) and corresponding addresses on a cache device at which data items are stored. In some embodiments, cache metadata may be stored in a hierarchical data structure comprising a plurality of hierarchy levels. When a reboot of the computer is initiated, only a subset of the plurality of hierarchy levels may be loaded to memory, thereby expediting the process of restoring the cache metadata and thus startup operations. Startup may be further expedited by using cache metadata to perform operations associated with reboot. | 07-05-2012 |
20120221843 | MULTI-PHASE RESUME FROM HIBERNATE - Resume of a computing device from hibernation may be performed in multiple phases. Each phase may partially restore a state of the computing device to an operational state and may establish an environment in which another phase of the resume is performed. The hibernation information may be partitioned to store separately data to be used at each resume phase. The information may be stored in a compressed form. In a first phase, a boot-level resume loader may restore a portion of the operating system based on a portion of the hibernation information. The restored portion may be used in a second phase to retrieve hibernation information from another portion through the operating system (OS). Multiple processors supported by the OS may read and decompress the hibernation information that is then moved back to operational memory. The operating system may support asynchronous disk input/output or other functions that accelerate the resume process. | 08-30-2012 |
20120221875 | MULTI-PHASE RESUME FROM HIBERNATE - Resume of a computing device from hibernation may be performed in multiple phases. Each phase may partially restore a state of the computing device to an operational state and may establish an environment in which another phase of the resume is performed. The hibernation information may be partitioned to store separately data to be used at each resume phase. The information may be stored in a compressed form. In a first phase, a boot-level resume loader may restore a portion of the operating system based on a portion of the hibernation information. The restored portion may be used in a second phase to retrieve hibernation information from another portion through the operating system (OS). Multiple processors supported by the OS may read and decompress the hibernation information that is then moved back to operational memory. The operating system may support asynchronous disk input/output or other functions that accelerate the resume process. | 08-30-2012 |
20120233438 | PAGEFILE RESERVATIONS - A system and method for maintaining a pagefile of a computer system using a technique of reserving portions of the pagefile for related memory pages. Pages near one another in a virtual memory space often store related information and it is therefore beneficial to ensure that they are stored near each other in the pagefile. This increases the speed of reading data out of the pagefile because total seek time of a disk drive that stores the pagefile may decrease when adjacent pages in a virtual memory address space are read back from the disk drive. By implementing a reservation system that allows related pages to be stored adjacent to one another, the efficiency of memory management to of the computer system is increased. | 09-13-2012 |
20130132681 | TEMPORAL STANDBY LIST - In one embodiment, a memory management system temporarily maintains a memory page at an artificially high priority level | 05-23-2013 |
20130159662 | Working Set Swapping Using a Sequentially Ordered Swap File - Techniques described enable efficient swapping of memory pages to and from a working set of pages for a process through the use of large writes and reads of pages to and from sequentially ordered locations in secondary storage. When writing pages from a working set of a process into secondary storage, the pages may be written into reserved, contiguous locations in a dedicated swap file according to a virtual address order or other order. Such writing into sequentially ordered locations enables reading in of clusters of pages in large, sequential blocks of memory, providing for more efficient read operations to return pages to physical memory. | 06-20-2013 |
20130311734 | DATA COPY MANAGEMENT FOR FASTER READS - Multiple copy sets of data are maintained on one or more storage devices. Each copy set includes at least some of the same data units as other sets. Different sets optionally have data units stored in different orders on the storage device(s). A particular one of the sets of data is selected as the set to be accessed in response to detecting a particular scenario. | 11-21-2013 |
20140164751 | MULTI-PHASE RESUME FROM HIBERNATE - Resume of a computing device from hibernation may be performed in multiple phases. Each phase may partially restore a state of the computing device to an operational state and may establish an environment in which another phase of the resume is performed. The hibernation information may be partitioned to store separately data to be used at each resume phase. The information may be stored in a compressed form. In a first phase, a boot-level resume loader may restore a portion of the operating system based on a portion of the hibernation information. The restored portion may be used in a second phase to retrieve hibernation information from another portion through the operating system (OS). Multiple processors supported by the OS may read and decompress the hibernation information that is then moved back to operational memory. The operating system may support asynchronous disk input/output or other functions that accelerate the resume process. | 06-12-2014 |
20140317317 | ASSIGNING PRIORITIES TO DATA FOR HYBRID DRIVES - A hybrid drive includes multiple parts: a performance part (e.g., a flash memory device) and a base part (e.g., a magnetic or other rotational disk drive). A drive access system, which is typically part of an operating system of a computing device, issues input/output (I/O) commands to the hybrid drive to store data to and retrieve data from the hybrid drive. The drive access system assigns, based on various available information, a priority level to groups of data identified by logical block addresses (LBAs). With each I/O command, the drive access system includes an indication of the priority level of the LBA(s) associated with the I/O command. The hybrid drive determines, based on the priority level indications received from the drive access system, which LBAs are stored on which part or parts of the hybrid drive. | 10-23-2014 |
20140325166 | POWER SAVING MODE HYBRID DRIVE ACCESS MANAGEMENT - A hybrid drive includes multiple parts: a performance part (e.g., a flash memory device) and a base part (e.g., a magnetic or other rotational disk drive). A drive access system, which is typically part of an operating system of a computing device, issues input/output (I/O) commands to the hybrid drive to store data to and retrieve data from the hybrid drive. The drive access system supports multiple priority levels and obtains priority levels for groups of data identified by logical block addresses (LBAs). The LBAs read while the device is operating in a power saving mode are assigned a priority level that is at least the lowest of the multiple priority levels supported by the device, increasing the likelihood that LBAs read while the device is operating in the power saving mode are stored in the performance part of the hybrid drive. | 10-30-2014 |
20140325169 | DIRTY DATA MANAGEMENT FOR HYBRID DRIVES - A hybrid drive includes multiple parts: a performance part (e.g., a flash memory device) and a base part (e.g., a hard disk drive). A drive access system, which is typically part of an operating system of a computing device, issues input/output (I/O) commands to the hybrid drive to store data to and retrieve data from the hybrid drive. Some data can be stored in one part but not the other, and this data can be synchronized with (e.g., copied to) the other part at various times. The drive access system provides indications to the hybrid drive of when to synchronize data in one part with the other part. These indications are made so that potential interference with use of the device by the user and/or power saving modes of the device due to the synchronization is reduced. | 10-30-2014 |
20140351552 | WORKING SET SWAPPING USING A SEQUENTIALLY ORDERED SWAP FILE - Techniques described enable efficient swapping of memory pages to and from a working set of pages for a process through the use of large writes and reads of pages to and from sequentially ordered locations in secondary storage. When writing pages from a working set of a process into secondary storage, the pages may be written into reserved, contiguous locations in a dedicated swap file according to a virtual address order or other order. Such writing into sequentially ordered locations enables reading in of clusters of pages in large, sequential blocks of memory, providing for more efficient read operations to return pages to physical memory. | 11-27-2014 |
20140359632 | EFFICIENT PRIORITY-AWARE THREAD SCHEDULING - A priority-based scheduling and execution of threads may enable the completion of higher-priority tasks above lower-priority tasks. Occasionally, a high-priority thread may request a resource that has already been reserved by a lower-priority thread, and the higher-priority thread may be blocked until the lower-priority thread relinquishes the reservation. Such prioritization may be acceptable if the lower-priority thread is able to execute comparatively unimpeded, but in some scenarios, the lower-priority thread may execute at a lower priority than a third thread that also has a lower priority than the high-priority thread. In this scenario, the third thread is effectively but incorrectly prioritized above the high-priority thread. Instead, upon detecting this scenario, the device may temporarily elevate the priority of the lower-priority thread over the priority of the third thread until the lower-priority thread relinquishes the resource, thereby reducing the waiting period of the high-priority thread for the requested resource. | 12-04-2014 |
20140372356 | PREDICTIVE PRE-LAUNCH FOR APPLICATIONS - Systems and methods of pre-launching applications in a computer system, said applications being likely to be activated by a user from a terminated and/or suspended process state, are disclosed. The pre-launching of an application may be based on the assessed probability of the application being activated—as well as the level of availability of system resources to affect such pre-launching. Applications may be pre-launched based on these and other conditions/considerations, designed to improve the user's experience of a quick launch of applications in the background. Several prediction models are presented to provide a good estimate of the likelihood of an application being activated by a user. Such prediction models may comprise an adaptive predictor (based on past application usage situations) and/or a switch rate predictor (based on historic data of an application being switched and, possibly, having a decay rate applied to such switch rate measure). | 12-18-2014 |
20140372715 | PAGE-BASED COMPRESSED STORAGE MANAGEMENT - A memory is made up of multiple pages, and different pages can have different priority levels. A set of memory pages having at least similar priority levels are identified and compressed into an additional set of memory pages having at least similar priority levels. The additional set of memory pages are classified as being the same type of page as the set of memory pages that was compressed (e.g., as memory pages that can be repurposed). Thus, a particular set of memory pages can be compressed into a different set of memory pages of the same type and corresponding to at least similar priority levels. However, due to the compression, the quantity of memory pages into which the set of memory pages is compressed is reduced, thus increasing the amount of data that can be stored in the memory. | 12-18-2014 |
20140373032 | PREFETCHING CONTENT FOR SERVICE-CONNECTED APPLICATIONS - Systems and methods of pre-fetching data for applications in a computer system that are terminated or suspended and may be pre-launched by the computer system are disclosed. The applications may employ data that is remote from the computer system and available from a third party content resource. A method for pre-fetching such remote data comprises associating a set of application with such data and/or its location; determining a set of pre-fetching conditions, determining which applications may be pre-fetched and pre-fetching the data, if pre-fetch conditions meet a desired pre-fetch policy. A predictive module or technique may be used to identify those applications which may be pre-launched. The present system may comprise a pre-fetch success module capable of measuring the success data for a current pre-fetch and associating such success data with an application to improve future pre-fetches. | 12-18-2014 |