IP Library Granted Patent US 7,702,891
Granted Patent B1
US 7,702,891 · App. 11/228,738 · Granted Apr 20, 2010

Starting-up software modules for computing systems

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 7,702,891
App. No.
11/228,738
Granted
Apr 20, 2010
Kind
B1
Abstract

Modules are started-up for a computing system based on start-up data. Start-up data can, for example, include a dependency-matrix indicating start-up dependencies of various modules. Start-up sequences can be determined based on the start-up data and a start-up sequence can be subsequently selected based on one or more criteria. The selected start-up sequence need not include all modules, yet it can list most modules that are likely to be used in or by a computing system. In addition, software (or application) start-up can be controlled based on various criteria. As a result, software start-up is performed more efficiently and more control over system start-up is exercised.

Claims (53)

1. A method of initiating start-up for a computing system, comprising:

receiving start-up data at a start-up generator running on a processor of a computing system, the start-up data being for a plurality of computer-software modules tangibly stored in a computer readable storage medium of the computer system, wherein during a start-up process for said computing system, the computer-software modules can be started-up by being loaded from the storage medium into a memory device from which the computer-software modules are executable by the processor;

receiving start-up times for said plurality of modules at the start-up generator running on the processor;

determining a plurality of start-up sequences by the start-up generator running on the processor for said plurality of computer-software modules;

determining total start-up time by the start-up generator running on the processor for said plurality of start-up sequences; and

selecting from said plurality of start-up sequences by a start-up sequence selector running on the processor, based on a start-up criteria, a first start-up sequence.

2. A method as recited in claim 1 , further comprising: starting-up a plurality of modules based on said first start-up sequence.

3. A method as recited in claim 1 , wherein

said startup-criteria is a maximum number of modules that can be started-up within a maximum allotted time for the start-up process.

4. A method as recited in claim 1 , wherein said start-up data further comprises module-relation-information that includes information about said plurality of modules.

5. A method as recited in claim 4 , wherein said module-relation-information includes dependency information that provides information about the interdependencies of said plurality of modules with respect to said start-up process.

6. A method as recited in claim 5 , wherein said module-relation-information includes a Dependency-Matrix for said plurality of modules.

7. A method as recited in claim 6 , wherein said method further comprises:

setting each entry of said Dependency-Matrix to a first predetermined value if the module associated with the row of said entry is dependent on the module associated with the column of said entry; and

setting each entry of said Dependency-Matrix to a second predetermined value if the module associated with the row of said entry is not dependent on the module associated with the column of said entry.

8. A method as recited in claim 7 , wherein said method further comprises:

determining whether a first row associated with a first module in said Dependency-Matrix does not have any entry that is set to said first value; and

removing said first row and a first column associated with said first module from said Dependency-Matrix when said determining determines that said row associated with said first module in said Dependency-Matrix does not have any entry that is set to said first value.

9. A method as recited in claim 8 , wherein said method further comprises:

repeating, said determining of whether a row in said Dependency-Matrix does not have any entry that is set to said first value, for a second module; and

removing a second row and a second column associated with said second module from said Dependency-Matrix when said determining determines that said second row associated with said second module in said Dependency-Matrix does not have any entry that is set to said first value.

10. A method as recited in claim 1 , wherein said start-up criteria is a maximum time allotted for the total start-up time.

11. The method as recited in claim 1 , further comprising:

receiving, by a module analyzer running on the processor, a list of modules that can be started-up for a computing system during a start-up process;

generating start-up data for said plurality of computer-software modules by the module analyzer running on the processor, wherein said start-up data includes module-relation-information that provides information about how said plurality of modules are related; and

storing, by a module analyzer running on the processor, said start-up data in the computer-readable medium for use by the start-up generator running on the processor.

12. A computing system that operates to:

receive start-up data for a plurality of computer-software modules that can be started-up for said computing system during a system start-up process for said computing system;

receive start-up times for said plurality of modules;

determine a plurality of start-up sequences for said plurality of computer-software modules;

determine total start-up time for said plurality of start-up sequences; and

select from said plurality of start-up sequences, based on a start-up criteria, a first start-up sequence.

13. A computing system as recited in claim 12 , wherein said computing system further operated to:

start-up a plurality of modules based on said first start-up sequence; and

wherein said start-up criteria is a maximum number of modules that can be started-up within a maximum allotted time for the start-up process.

14. A computing system as recited in claim 12 , wherein said start-up data further includes module-relation-information that includes information about said plurality of modules.

15. A computing system as recited in claim 14 , wherein said module-relation-information includes dependency information that provides information about the interdependencies of said plurality of modules with respect to said system start-up process.

16. A computing system as recited in claim 15 , wherein said module-relation-information includes a Dependency-Matrix for said plurality of modules.

17. A computing system as recited in claim 12 , wherein said start-up criteria is a maximum time allotted for the total start-up time.

18. A computer system comprising:

a computer-readable storage medium having a plurality computer software modules;

a memory in communication with the computer-readable storage medium, wherein the computer-software modules can be started-up during a start-up process by being loaded from the storage medium into the memory;

a processor in communication with the memory operable to execute the computer-software modules from the memory, the processor additionally executing:

computer program code for receiving start-up data for the plurality of computer-software modules;

computer code for receiving start-up times for said plurality of modules;

computer program code for determining a plurality of start-up sequences for said plurality of computer-software modules;

computer code for determining total start-up time for said plurality of start-up sequences; and

computer program code for selecting from said plurality of start-up sequences, based on a start-up criteria, a first start-up sequence.

19. A computer system as recited in claim 18 , further comprising:

computer program code for starting-up a plurality of modules based on said first start-up sequence; and

computer program code for receiving or determining said startup-criteria.

20. A computer system as recited in claim 18 , wherein said start-up data further includes module-relation-information that includes information about said plurality of modules, and wherein said module-relation-information includes dependency information that provides information about the interdependencies of said plurality of modules with respect to said system start-up process.

21. A computer system as recited in claim 20 , wherein said module-relation-information includes a Dependency-Matrix for said plurality of modules.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037306/0268 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2005
From: NAZAROV, MICHAEL; LUNEGOV, SERGEY; CHIRIAEV, DMITRI V.; FOMENKO, ANATOLI; NARAYAN, PRAKASH K.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 017020/0144 →