Patents by Inventor Yevgeniy M. Bak

Yevgeniy M. Bak has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20180088988
    Abstract: Each program thread running on a computing device has an associated data stack and control stack. A stack displacement value is generated, which is the difference between the memory address of the base of the data stack and the memory address of the base of the control stack, and is stored in a register of a processor of the computing device that is restricted to operating system kernel use. For each thread on which return flow guard is enabled, prologue and epilogue code is added to each function of the thread (e.g., by a memory manager of the computing device). The data stack and the control stack each store a return address for the function, and when the function completes the epilogue code allows the function to return only if the return addresses on the data stack and the control stack match.
    Type: Application
    Filed: September 27, 2016
    Publication date: March 29, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Jordan Thomas Rabet, Kenneth D. Johnson, Matthew R. Miller, Adam M. Zabrocki, Shawn Daniel Hoffman, Landy Wang, Yevgeniy M. Bak
  • Publication number: 20180046536
    Abstract: Processing faults in a virtual computing environment. A method includes receiving a request to perform a memory access for a virtual machine. The method further includes identifying that that the memory access is unable to be performed without taking a fault. The method further includes identifying that a virtual fault can be taken to service the fault. The virtual fault is taken by servicing the fault asynchronously with respect to the virtual machine. The method further includes identifying that a virtual fault should be taken by evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously. As a result of identifying that a virtual fault should be taken, the method farther includes notifying the virtual machine that a virtual fault should be taken for the memory access. The method further includes servicing the fault asynchronously with respect to the virtual machine.
    Type: Application
    Filed: November 4, 2016
    Publication date: February 15, 2018
    Inventors: Mehmet Iyigun, Kevin Michael Broas, Arun U. Kishan, Yevgeniy M. Bak, John Joseph Richardson
  • Publication number: 20180032378
    Abstract: A computing system includes one or more processors and a storage device that stores computer executable instructions that can be executed by the processors to cause the computing system to perform the following. The system generates a work tracking information ticket for a first system entity. The system assigns the work tracking information ticket to the first system entity. The system passes the work tracking information ticket to one or more second system entities. The system validates the work tracking information ticket. The validated work tracking information ticket informs that the one or more second system entities are performing work on behalf of the first system entity.
    Type: Application
    Filed: July 28, 2016
    Publication date: February 1, 2018
    Inventors: Jon Robert Berry, Youssef Barakat, Yevgeniy M. Bak, Mehmet lyigun, Pedro Miguel Sequeira de Justo Teixeira
  • Publication number: 20180004412
    Abstract: Embodiments disclosed herein are related to systems and methods for attributing disk Input/Output (IO) to one or more system entities. A disk IO attribution context is generated that defines disk IO utilization parameters for a system entity. A pointer is attached to the system entity that points to the disk IO attribution context. The pointer is exposed to system components of an underlying computer system. The pointer prompts the system components to report the disk IO utilization parameters when the system components have performed a disk IO operation for the system entity. The disk IO utilization parameters reported by the one or more system components are recorded in the disk IO attribution context.
    Type: Application
    Filed: June 30, 2016
    Publication date: January 4, 2018
    Inventors: Mehmet IYIGUN, Yevgeniy M. Bak
  • Publication number: 20170322824
    Abstract: An operating system running on a computing device, also referred to herein as a host device, uses containers for hardware resource partitioning. A container can include one or more of various different components, such as a base operating system, a user-mode environment, an application, virtual devices, combinations thereof, and so forth. One or more container templates are maintained for a computing device, and in response to a request to create a new container, a template container is copied into memory of the computing device to create the new container. The template container includes the various components of the container, and these components are copied into memory of the computing device rather than being launched or started one after the other. Thus, time need not be expended starting the various components included in the container—the components are just copied into memory as a new container.
    Type: Application
    Filed: September 29, 2016
    Publication date: November 9, 2017
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Lars Reuther, David A. Hepkin, Kevin M. Broas, John A. Starks, Arun U. Kishan, John J. Richardson, Mehmet Iyigun, Yevgeniy M. Bak
  • Publication number: 20170286153
    Abstract: An operating system running on a computing device uses containers for hardware resource partitioning. Using the techniques discussed herein, pausing and resuming of containers is managed to reduce the pressure a container exerts on system resources when paused. Resuming of containers can further be managed to reduce the startup time for containers. This managing of containers can implemented various different techniques, such as stopping scheduling of virtual processors, stopping scheduling of processes or threads, compressing memory, swapping pages of memory for the container to a page file on a hard drive, and so forth.
    Type: Application
    Filed: June 22, 2016
    Publication date: October 5, 2017
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Yevgeniy M. Bak, Lars Reuther, Kevin M. Broas, Mehmet Iyigun, Hari R. Pulapaka, Morakinyo Korede Olugbade, Benjamin M. Schultz
  • Patent number: 9684625
    Abstract: When a process is swapped out of memory, a record of the sharable memory pages of the process is maintained. The sharable memory pages can then be repurposed. When the process is subsequently swapped back into memory, concurrently with the process running the sharable memory pages of the process are prefetched. If during this prefetching the process requests a memory page that is not currently in physical memory, a high priority I/O request is issued for that memory page. The high priority I/O request is placed at the front of an I/O queue, so the high priority I/O request is processed before the pending prefetch requests.
    Type: Grant
    Filed: March 21, 2014
    Date of Patent: June 20, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Yevgeniy M. Bak, Mehmet Iyigun
  • Publication number: 20170123996
    Abstract: Mapping files in host virtual address backed virtual machines. A method includes receiving a request from a guest virtual machine for a file from a host. The method further includes, at the host determining that the file can be directly mapped to a physical memory location for virtual machines requesting access to the file. The method further includes, at the host, providing guest physical memory backed by the file flapping in host virtual memory.
    Type: Application
    Filed: May 16, 2016
    Publication date: May 4, 2017
    Inventors: Arun U. Kishan, Mehmet Iyigun, Landy Wang, Kevin Michael Broas, Yevgeniy M. Bak
  • Patent number: 9632924
    Abstract: A memory manager in a computing device allocates memory to programs running on the computing device, the amount of memory allocated to a program being a memory commit for the program. When a program is in a state where the program can be terminated, the content of the memory pages allocated to the program is compressed, and an amount of the memory commit for the program that can be released is determined. This amount of memory commit is the amount that was committed to the program less any amount still storing (in compressed format) information (e.g., data or instructions) for the program. The determined amount of memory commit is released, allowing that amount of memory to be consumed by other programs as appropriate.
    Type: Grant
    Filed: March 2, 2015
    Date of Patent: April 25, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Yevgeniy M. Bak, Mehmet Iyigun, Landy Wang, Arun U. Kishan
  • Patent number: 9626126
    Abstract: 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.
    Type: Grant
    Filed: April 24, 2013
    Date of Patent: April 18, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Mehmet Iyigun, Yevgeniy M. Bak, Eric M. Bluestein, Robin A. Alexander, Andrew M. Herron, Xiaozhong Xing
  • Publication number: 20160321116
    Abstract: Various systems and methods for translating operating system processes are described herein. In one example, a method includes intercepting a process of a foreign operating system through a proxy driver. The method can also include translating the process to a native operating system within which the foreign operating system is operating. Furthermore, the method can include sharing memory between the native operating system and the foreign operating system for translation.
    Type: Application
    Filed: June 26, 2015
    Publication date: November 3, 2016
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: James A. Schwartz, Jr., Arun Kishan, Nicholas S. Judge, Stephen Hufnagel, Yevgeniy M. Bak, Mehmet Iyigun, Jeffrey B. Kay, Cory Hendrixson, Jonathan Wiswall, Edward S. Miller
  • Publication number: 20160306738
    Abstract: A set of memory pages from a working set of a program process, such as at least some of the memory pages that have been modified, are compressed into a compressed store prior to being written to a page file, after which the memory pages can be repurposed by a memory manager. The memory commit charge for the memory pages compressed into the compressed store is borrowed from the program process by a compressed storage manager, reducing the memory commit charge of the compressed storage manager. Subsequent requests from the memory manager for memory pages that have been compressed into a compressed store are satisfied by accessing the compressed store memory pages (including retrieving the compressed store memory pages from the page file if written to the page file), decompressing the requested memory pages, and returning the requested memory pages to the memory manager.
    Type: Application
    Filed: April 14, 2015
    Publication date: October 20, 2016
    Inventors: Yevgeniy M. Bak, Mehmet Iyigun, Landy Wang, Arun U. Kishan
  • Publication number: 20160299712
    Abstract: A host machine having guest virtual machine physical memory backed by host virtual memory is described. The host machine includes host physical memory. The host machine further includes one or more guest virtual machines. Each of the guest virtual machines includes guest physical memory. The host machine further includes host virtual memory. The host machine further includes a data structure having a correlation of guest physical memory addresses to host virtual memory addresses and a data structure having a correlation of host virtual memory addresses to host physical memory addresses.
    Type: Application
    Filed: April 27, 2015
    Publication date: October 13, 2016
    Inventors: Arun U. Kishan, Landy Wang, Mehmet Iyigun, Kevin Michael Broas, Yevgeniy M. Bak
  • Publication number: 20160259720
    Abstract: A memory manager in a computing device allocates memory to programs running on the computing device, the amount of memory allocated to a program being a memory commit for the program. When a program is in a state where the program can be terminated, the content of the memory pages allocated to the program is compressed, and an amount of the memory commit for the program that can be released is determined. This amount of memory commit is the amount that was committed to the program less any amount still storing (in compressed format) information (e.g., data or instructions) for the program. The determined amount of memory commit is released, allowing that amount of memory to be consumed by other programs as appropriate.
    Type: Application
    Filed: March 2, 2015
    Publication date: September 8, 2016
    Inventors: Yevgeniy M. Bak, Mehmet Iyigun, Landy Wang, Arun U. Kishan
  • Publication number: 20160202912
    Abstract: 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.
    Type: Application
    Filed: March 21, 2016
    Publication date: July 14, 2016
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Mehmet Iyigun, Yevgeniy M. Bak, Eric M. Bluestein, Robin A. Alexander, Andrew M. Herron, Xiaozhong Xing
  • Patent number: 9348533
    Abstract: Techniques for memory image capture via memory write from a running system are described. In at least some embodiments, a request is received for an image of a portion of memory. Images of memory can be used for a variety of purposes, such as diagnosing and repairing error conditions for hardware and/or software, detecting unwanted and/or malicious processes (e.g., malware), general systems maintenance, and so forth. According to one or more embodiments, various techniques can be implemented to capture an image of a portion of memory. For example, an intermediate write to memory can be employed to write the image of the portion of memory to a memory buffer. Alternatively or additionally, an image of a portion of memory can be captured directly to storage.
    Type: Grant
    Filed: March 14, 2013
    Date of Patent: May 24, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Tai Hing Tse, Landy Wang, Yimin Deng, Kenneth D. Johnson, Yevgeniy M. Bak, Chiuchin Chen
  • Patent number: 9323460
    Abstract: 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.
    Type: Grant
    Filed: March 20, 2015
    Date of Patent: April 26, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Mehmet Iyigun, Yevgeniy M. Bak, Eric M. Bluestein, Robin A. Alexander, Andrew M. Herron, Xiaozhong Xing
  • Publication number: 20150269111
    Abstract: When a process is swapped out of memory, a record of the sharable memory pages of the process is maintained. The sharable memory pages can then be repurposed. When the process is subsequently swapped back into memory, concurrently with the process running the sharable memory pages of the process are prefetched. If during this prefetching the process requests a memory page that is not currently in physical memory, a high priority I/O request is issued for that memory page. The high priority I/O request is placed at the front of an I/O queue, so the high priority I/O request is processed before the pending prefetch requests.
    Type: Application
    Filed: March 21, 2014
    Publication date: September 24, 2015
    Applicant: MICROSOFT CORPORATION
    Inventors: Yevgeniy M. Bak, Mehmet Iyigun
  • Publication number: 20150242432
    Abstract: A set of memory pages from a working set of a program process, such as at least some of the memory pages that have been modified, are compressed into a compressed store prior to being written to a page file, after which the memory pages can be repurposed by a memory manager. The compressed store is made up of multiple memory pages, and the compressed store memory pages can be repurposed by the memory manager after being written to the page file. Subsequent requests from the memory manager for memory pages that have been compressed into a compressed store are satisfied by accessing the compressed store memory pages (including retrieving the compressed store memory pages from the page file if written to the page file), decompressing the requested memory pages, and returning the requested memory pages to the memory manager.
    Type: Application
    Filed: February 21, 2014
    Publication date: August 27, 2015
    Inventors: Yevgeniy M. Bak, Mehmet Iyigun, Landy Wang, Arun U. Kishan
  • Patent number: 9110806
    Abstract: 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.
    Type: Grant
    Filed: March 10, 2010
    Date of Patent: August 18, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Parag Sharma, Ripal Babubhai Nathuji, Mehmet Iyigun, Yevgeniy M. Bak