IP Library › Granted Patent US 8,762,967
Granted Patent B2
US 8,762,967 · App. 12/971,283 · Granted Jun 24, 2014

Program compiler, program installer, and program install method

Inventors: Min-Chan Kim (Suwon-si, KR); Jae-Hoon Jeong (Yongin-si, KR); Joo-Young Hwang (Suwon-si, KR)
Assignee: Samsung Electronics Co., Ltd.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,762,967
App. No.
12/971,283
Granted
Jun 24, 2014
Kind
B2
Abstract

A program installation apparatus may install a program in an immediately executable form using a snapshot image. The snapshot image may store a partially executed result of the program. A snapshot point at which the snapshot image is created may be decided by analyzing dependency on a system execution environment of the program. The program installation apparatus may, in advance, execute a part of the program having no dependency on the system execution environment to create a snapshot image and then execute the remaining part of the program based on the snapshot image, reducing a start-up time of the program.

Claims (113)

1. A program installation and execution apparatus, comprising:

a snapshot point setting unit configured to set a particular location on an execution sequence of a program as a snapshot point, wherein the particular location is set based upon the location within the program execution sequence of a system call;

a dependency analysis unit configured to identify, within the program, a first function that includes the system call and a second function, which the program specifies executing after the first function, that does not include a system call;

a rearrangement unit configured to rearrange execution of the second function to occur before execution of the first function;

a processor configured to perform the rearranged execution of the program up to the snapshot point; and

a snapshot image storage unit configured to store the execution result of the program up to the snapshot point.

2. The program installation and execution apparatus of claim 1 , further comprising:

a snapshot image loading unit configured to load the execution result of the program; and

an execution unit configured to execute a remaining part of the program after the snapshot point of the program, based on the snapshot image.

3. The program installation and execution apparatus of claim 1 , wherein the snapshot point setting unit is further configured to:

detect a part having substantial dependency on a system execution environment from the execution sequence of the program; and

decide the location of the snapshot point, based on the detected part.

4. The program installation and execution apparatus of claim 1 , wherein the snapshot point setting unit is further configured to decide the location of the snapshot point in consideration of the execution order, within the execution sequence, of an initialization function using the system call.

5. The program installation and execution apparatus of claim 4 , wherein the initialization function comprises:

global class creators executed or called before a main function is executed; and

initialization functions of a shared library.

6. The program installation and execution apparatus of claim 1 , wherein:

the program comprises:

an independent function having no dependency on the system execution environment; and

a dependent function having dependency on the system execution environment; and

the rearrangement unit is further configured to adjust the execution orders, within the execution sequence, of the independent function and the dependent function such that the independent function is executed or called before the dependent function.

7. The program installation and execution apparatus of claim 1 , wherein the program comprises an installed program or an updated program.

8. The program installation and execution apparatus of claim 1 , wherein the execution result of the program comprises at least one of registry information and memory information of the program executed up to the snapshot point.

9. The program installation and execution apparatus of claim 1 , wherein the execution result of the program is stored in a non-volatile memory.

10. A program compiler, comprising:

a dependency analysis unit configured to identify, within a program, a first function that includes a system call and a second function, which the program specifies executing after the first function, that does not include a system call; and

a rearrangement unit configured to rearrange execution of the second function to occur before execution of the first function, during an execution of the program.

11. A program installation and execution method, comprising:

setting a snapshot point to a particular location of an execution sequence of a program, based upon the location within the execution sequence of a system call;

identifying, within the program, a first function that includes the system call and a second function, which the program specifies executing after the first function, that does not include a system call;

rearranging execution of the second function to occur before execution of the first function;

performing the rearranged execution of the program up to the snapshot point; and

storing the execution result of the program up to the snapshot point.

12. The program installation and execution method of claim 11 , further comprising:

loading the execution result of the program; and

executing the remaining part of the program after the snapshot point of the program, based on the loaded execution result of the program.

13. The program installation and execution method of claim 11 , wherein the setting of the snapshot point comprises:

detecting a part having substantial dependency on a system execution environment from the execution sequence of the program; and

deciding the location of the snapshot point based on the detected part.

14. The program installation and execution method of claim 11 , wherein the setting of the snapshot point comprises deciding the location of the snapshot point in consideration of the execution order, within the execution sequence, of an initialization function using the system call.

15. The program installation and execution method of claim 14 , wherein the initialization function comprises:

global class creators executed or called before a main function is executed; and

initialization functions of a shared library.

16. The program installation and execution method of claim 11 , wherein:

the program comprises:

an independent function having no dependency on a system execution environment; and

a dependent function having dependency on the system execution environment; and

the setting of the snapshot point comprises deciding the location of the snapshot point after adjusting execution orders, within the execution sequence, of the independent function and the dependent function such that the independent function is executed or called before the dependent function.

17. The program installation and execution method of claim 11 , wherein the program comprises an installed program or an installed, updated program.

18. The program installation and execution method of claim 11 , wherein the execution result of the program comprises registry information and memory information of the program executed up to the snapshot point.

19. The program installation and execution method of claim 11 , wherein the execution result of the program is stored in a non-volatile memory.

20. The program installation and execution method of claim 11 , wherein the program is executed upon installation of the program to create the snapshot image at an arbitrary time after relocation of the program.

21. The program installation and execution method of claim 11 , wherein existing snapshot images are updated and recreated in response to the program being updated.

22. The program installation and execution method of claim 11 , wherein existing snapshot images are invalidated in response to the program being updated.

23. The program installation and execution method of claim 11 , wherein a programmer is permitted to correct a source and provide a hint for identifying the occurrence timing of the system call.

24. The program installation and execution method of claim 11 , wherein the occurrence location of the system call is identified using a source/binary static analysis tool.

25. The program installation and execution method of claim 11 , wherein the occurrence of the system call is checked through a system call interface of an operating system.

26. The program installation and execution method of claim 11 , wherein initialization functions are relocated to delay the snapshot timing.

27. The program installation and execution method of claim 11 , wherein a programmer is permitted to correct and newly build a source in order to relocate initialization functions.

28. The program installation and execution method of claim 11 , wherein an automation tool is newly built using a static analysis tool in order to relocate initialization functions.

29. The program installation and execution method of claim 11 , wherein a program binary is corrected to relocate initialization functions.

30. The program installation and execution method of claim 11 , wherein the snapshot image is recreated upon restarting in response to the snapshot image having been invalidated.

31. A non-transitory computer-readable information storage medium storing instructions that when executed by a computer cause the computer to implement a program installation and execution method comprising:

setting a snapshot point to a particular location of an execution sequence of a program, based upon the location within the execution sequence of a system call;

identifying, within the program, a first function that includes the system call and a second function, which the program specifies executing after the first function, that does not include a system call;

rearranging execution of the second function to occur before execution of the first function;

performing the rearranged execution of the program up to the snapshot point; and

storing the execution result of the program up to the snapshot point.

32. The computer-readable information storage medium of claim 31 , further comprising:

loading the execution result of the program; and

executing the remaining part of the program after the snapshot point of the program, based on the loaded execution result of the program.

33. The computer-readable information storage medium of claim 31 , wherein the setting of the snapshot point comprises:

detecting a part having substantial dependency on a system execution environment from the execution sequence of the program; and

deciding the location of the snapshot point based on the detected part.

34. The computer-readable information storage medium of claim 31 , wherein the setting of the snapshot point comprises deciding the location of the snapshot point in consideration of the execution order, within the execution sequence, of an initialization function using the system call.

35. The computer-readable information storage medium of claim 34 , wherein the initialization function comprises:

global class creators executed or called before a main function is executed; and

initialization functions of a shared library.

36. The computer-readable information storage medium of claim 31 , wherein:

the program comprises:

an independent function having no dependency on a system execution environment; and

a dependent function having dependency on the system execution environment; and

the setting of the snapshot point comprises deciding the location of the snapshot point after adjusting execution orders, within the execution sequence, of the independent function and the dependent function such that the independent function is executed or called before the dependent function.

37. The computer-readable information storage medium of claim 31 , wherein the program comprises an installed program or an installed, updated program.

38. The computer-readable information storage medium of claim 31 , wherein the execution result of the program comprises registry information and memory information of the program executed up to the snapshot point.

39. A program execution apparatus, comprising:

a snapshot point setting unit configured to set a particular location on an execution sequence of a program to a snapshot point, wherein the particular location is set based upon the location within the program execution sequence of a system call;

a dependency analysis unit configured to identify, within the program, a first function that includes the system call and a second function, which the program specifies executing after the first function, that does not include a system call;

a rearrangement unit configured to rearrange execution of the second function to occur before execution of the first function;

a processor configured to perform the rearranged execution of the program up to the snapshot point;

a memory to store the execution result of the program up to the snapshot point; and

an execution unit configured to perform the rearranged execution of a remaining portion of the program after the snapshot point of the program.

40. The program execution apparatus of claim 39 , wherein:

the program comprises:

an independent function having no dependency on a system execution environment; and

a dependent function having dependency on the system execution environment; and

the rearrangement unit is further configured to adjust execution orders, within the execution sequence, of the independent function and the dependent function such that the independent function is executed or called before the dependent function.

41. The program installation and execution apparatus of claim 39 , wherein the program comprises an installed program or an updated program.

42. The program installation and execution apparatus of claim 41 , wherein the execution result of the program comprises at least one of registry information and memory information of the program executed up to the snapshot point.

43. The program installation and execution apparatus of claim 39 , wherein the execution result of the program is stored in a non-volatile memory.

44. A program execution method, comprising:

setting a snapshot point to a particular location of an execution sequence of a program, based upon the location within the execution sequence of a system call;

identifying, within the program, a first function that includes the system call and a second function, which the program specifies executing after the first function, that does not include a system call;

rearranging execution of the second function to occur before execution of the first function;

performing the rearranged execution of the program up to the snapshot point; and

executing a remaining portion of the program after the snapshot point of the program.

45. The program execution method of claim 44 , wherein:

the program comprises:

an independent function having no dependency on a system execution environment; and

a dependent function having dependency on the system execution environment; and

adjusting execution orders, within the execution sequence, of the independent function and the dependent function such that the independent function is executed or called before the dependent function.

46. The program execution method of claim 44 , wherein the program comprises an installed program or an updated program.

47. The program execution method of claim 44 , wherein the execution result of the program comprises at least one of registry information and memory information of the program executed up to the snapshot point.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2010
From: KIM, MIN-CHAN; JEONG, JAE-HOON; HWANG, JOO-YOUNG
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 025517/0185 →
Priority Claims (1)
KR 10-2010-0025914 · Mar 23, 2010 · national
Continuity (1)
Related Publication 20110239199A1 · Sep 29, 2011