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: 20130347002Abstract: 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: ApplicationFiled: June 21, 2012Publication date: December 26, 2013Applicant: MICROSOFT CORPORATIONInventors: Abhinaba Basu, Jan Kotas
-
Patent number: 8543991Abstract: 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: GrantFiled: March 10, 2011Date of Patent: September 24, 2013Assignee: Microsoft CorporationInventors: Subramanian Ramaswamy, David Hiniker-Roosa, Feng Yuan, Sedar Gokbulut, Ashok C. Kamath, Jan Kotas, Vance P. Morrison
-
Patent number: 8522218Abstract: 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: GrantFiled: March 12, 2010Date of Patent: August 27, 2013Assignee: Microsoft CorporationInventors: Surupa Biswas, David Jerome Hiniker, Jan Kotas, Frank V. Peschel-Gallee
-
Publication number: 20120323858Abstract: 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: ApplicationFiled: June 16, 2011Publication date: December 20, 2012Applicant: MICROSOFT CORPORATIONInventors: Pracheeti Nagarkar, Michael Rayhelson, Atsushi Kanamori, Fadi Hanna, Surupa Biswas, Jan Kotas
-
Patent number: 8296742Abstract: 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: GrantFiled: October 10, 2006Date of Patent: October 23, 2012Assignee: Microsoft CorporationInventors: Surupa Biswas, Ori Gershony, Jan Kotas
-
Publication number: 20120233602Abstract: 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: ApplicationFiled: March 10, 2011Publication date: September 13, 2012Applicant: MICROSOFT CORPORATIONInventors: Subramanian Ramaswamy, David Hiniker-Roosa, Feng Yuan, Sedar Gokbulut, Ashok C. Kamath, Jan Kotas, Vance P. Morrison
-
Publication number: 20110225564Abstract: 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: ApplicationFiled: March 12, 2010Publication date: September 15, 2011Inventors: Surupa Biswas, David Jerome Hiniker, Jan Kotas, Frank V. Peschel-Gallee
-
Patent number: 7987457Abstract: 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: GrantFiled: June 25, 2007Date of Patent: July 26, 2011Assignee: Microsoft CorporationInventors: Surupa Biswas, Ori Gershony, Jan Kotas, Peter F. Sollich
-
Publication number: 20080320456Abstract: 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: ApplicationFiled: June 25, 2007Publication date: December 25, 2008Applicant: Microsoft CorporationInventors: Surupa Biswas, Ori Gershony, Jan Kotas, Peter F. Sollich
-
Publication number: 20080098368Abstract: 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: ApplicationFiled: October 10, 2006Publication date: April 24, 2008Applicant: Microsoft CorporationInventors: Surupa Biswas, Ori Gershony, Jan Kotas
-
Publication number: 20080034349Abstract: 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: ApplicationFiled: August 4, 2006Publication date: February 7, 2008Applicant: Microsoft CorporationInventors: Surupa Biswas, Ori Gershony, Jan Kotas