Patents by Inventor Jan Kotas

Jan Kotas 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: 20130347002
    Abstract: Some computing devices have limited resources such as, for example, battery power. When a user ceases to interact with an application, execution of the application can be moved to background and the application can be paused. During the time period in which the application is paused, the application consumes no CPU cycles because executing managed threads of the paused application are stopped, and native threads are prevented from running using asynchronous procedure calls.
    Type: Application
    Filed: June 21, 2012
    Publication date: December 26, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Abhinaba Basu, Jan Kotas
  • Patent number: 8543991
    Abstract: Idle processor cores can be used to compile methods that are likely to be executed by a program based on profile data that is captured during one or more previous executions. Methods that are determined by the profile data to be likely to be used can be compiled eagerly on one or more background threads. Transparency can be achieved by ensuring that module load order is not altered because of the background threads by recording the state of loaded modules after each profiled compilation, persisting that data, and waiting to eagerly compile a method until the method to be compiled and all its dependencies has been loaded by the executing program.
    Type: Grant
    Filed: March 10, 2011
    Date of Patent: September 24, 2013
    Assignee: Microsoft Corporation
    Inventors: Subramanian Ramaswamy, David Hiniker-Roosa, Feng Yuan, Sedar Gokbulut, Ashok C. Kamath, Jan Kotas, Vance P. Morrison
  • Patent number: 8522218
    Abstract: Routines which are likely to be good candidates for cross-module inlining are automatically identified according to criteria based on service history, compiler inlining criteria, and/or execution performance criteria. Candidates can also be automatically identified by pattern matching codes of routines which satisfy service history, execution performance, and/or compiler criteria. Automatically identified candidate routines are presented in an inlining advisory tool, allowing developers to approve/veto automatically identified candidates, to add other routines, and to either suggest or require that the development tools perform cross-module inlining with particular routines. Changes to a candidate routine can trigger regeneration of native image(s) into which the routine has been compiled.
    Type: Grant
    Filed: March 12, 2010
    Date of Patent: August 27, 2013
    Assignee: Microsoft Corporation
    Inventors: Surupa Biswas, David Jerome Hiniker, Jan Kotas, Frank V. Peschel-Gallee
  • Publication number: 20120323858
    Abstract: One or more identifiers that facilitate efficient native image validation can be generated and stored in an auxiliary file upon pre-compiling of an assembly. The native image can be validated against an assembly from which the native image is generated, among other files that influence the generated contents of the native image, based upon the auxiliary file and included identifiers. Additionally, native image validation can be performed in an increasing cost sequence associated with each identifier included within the auxiliary file.
    Type: Application
    Filed: June 16, 2011
    Publication date: December 20, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Pracheeti Nagarkar, Michael Rayhelson, Atsushi Kanamori, Fadi Hanna, Surupa Biswas, Jan Kotas
  • Patent number: 8296742
    Abstract: Various technologies and techniques are disclosed for automatically generating native images for a virtual machine environment. A virtual machine environment is provided where application libraries are distributed in an intermediate language format and then compiled at a later point in time. An automatic native generation service is provided that monitors the application libraries and generates a native image for a particular one or more of the application libraries when the service determines that native generation is appropriate. Invalid native images are automatically detected and re-generated. If a load attempt for a particular native image is unsuccessful, then the native image is determined to be invalid. The particular native image is then re-generated automatically.
    Type: Grant
    Filed: October 10, 2006
    Date of Patent: October 23, 2012
    Assignee: Microsoft Corporation
    Inventors: Surupa Biswas, Ori Gershony, Jan Kotas
  • Publication number: 20120233602
    Abstract: Idle processor cores can be used to compile methods that are likely to be executed by a program based on profile data that is captured during one or more previous executions. Methods that are determined by the profile data to be likely to be used can be compiled eagerly on one or more background threads. Transparency can be achieved by ensuring that module load order is not altered because of the background threads by recording the state of loaded modules after each profiled compilation, persisting that data, and waiting to eagerly compile a method until the method to be compiled and all its dependencies has been loaded by the executing program.
    Type: Application
    Filed: March 10, 2011
    Publication date: September 13, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Subramanian Ramaswamy, David Hiniker-Roosa, Feng Yuan, Sedar Gokbulut, Ashok C. Kamath, Jan Kotas, Vance P. Morrison
  • Publication number: 20110225564
    Abstract: Routines which are likely to be good candidates for cross-module inlining are automatically identified according to criteria based on service history, compiler inlining criteria, and/or execution performance criteria. Candidates can also be automatically identified by pattern matching codes of routines which satisfy service history, execution performance, and/or compiler criteria. Automatically identified candidate routines are presented in an inlining advisory tool, allowing developers to approve/veto automatically identified candidates, to add other routines, and to either suggest or require that the development tools perform cross-module inlining with particular routines. Changes to a candidate routine can trigger regeneration of native image(s) into which the routine has been compiled.
    Type: Application
    Filed: March 12, 2010
    Publication date: September 15, 2011
    Inventors: Surupa Biswas, David Jerome Hiniker, Jan Kotas, Frank V. Peschel-Gallee
  • Patent number: 7987457
    Abstract: Various technologies and techniques are disclosed that provides targeted patching for native generation images. Changed binaries are updated with information that indicates whether or not they contain safe changes. A servicing process can then be provided for a client machine. For any compatible binaries with changes that have been identified as safe, a native generation update is performed that includes recompilation of the compatible binaries with the safe changes, and an updating of binding information for any dependent binaries. For any non-compatible binaries with changes that have been identified as unsafe, a native generation update is performed that includes recompilation of any non-compatible binaries and any dependent binaries.
    Type: Grant
    Filed: June 25, 2007
    Date of Patent: July 26, 2011
    Assignee: Microsoft Corporation
    Inventors: Surupa Biswas, Ori Gershony, Jan Kotas, Peter F. Sollich
  • Publication number: 20080320456
    Abstract: Various technologies and techniques are disclosed that provides targeted patching for native generation images. Changed binaries are updated with information that indicates whether or not they contain safe changes. A servicing process can then be provided for a client machine. For any compatible binaries with changes that have been identified as safe, a native generation update is performed that includes recompilation of the compatible binaries with the safe changes, and an updating of binding information for any dependent binaries. For any non-compatible binaries with changes that have been identified as unsafe, a native generation update is performed that includes recompilation of any non-compatible binaries and any dependent binaries.
    Type: Application
    Filed: June 25, 2007
    Publication date: December 25, 2008
    Applicant: Microsoft Corporation
    Inventors: Surupa Biswas, Ori Gershony, Jan Kotas, Peter F. Sollich
  • Publication number: 20080098368
    Abstract: Various technologies and techniques are disclosed for automatically generating native images for a virtual machine environment. A virtual machine environment is provided where application libraries are distributed in an intermediate language format and then compiled at a later point in time. An automatic native generation service is provided that monitors the application libraries and generates a native image for a particular one or more of the application libraries when the service determines that native generation is appropriate. Invalid native images are automatically detected and re-generated. If a load attempt for a particular native image is unsuccessful, then the native image is determined to be invalid. The particular native image is then regenerated automatically.
    Type: Application
    Filed: October 10, 2006
    Publication date: April 24, 2008
    Applicant: Microsoft Corporation
    Inventors: Surupa Biswas, Ori Gershony, Jan Kotas
  • Publication number: 20080034349
    Abstract: In one embodiment, a computer system performs a method for reconfiguring the data object layout within a software application binary. The method involves the computer system instantiating a software application binary. The computer system monitors the software application to identify a degree of use of each data object during instantiation of the software application. The computer system stores information that includes the degree of use of data objects monitored. The computer system terminates the software application. The computer system reconfigures the data object layout based on the stored information such that the data objects which satisfied a threshold degree of use are placed in a high-use portion of the application binary, and those data objects which failed to satisfy the threshold degree of use are placed in a low-use portion of the application binary such that order of data objects differs from the first instance of the software application.
    Type: Application
    Filed: August 4, 2006
    Publication date: February 7, 2008
    Applicant: Microsoft Corporation
    Inventors: Surupa Biswas, Ori Gershony, Jan Kotas