NL2004913C2 - Method, computer system and computer program product stored on a computer system readable medium for starting up of a computer system. - Google Patents

Method, computer system and computer program product stored on a computer system readable medium for starting up of a computer system. Download PDF

Info

Publication number
NL2004913C2
NL2004913C2 NL2004913A NL2004913A NL2004913C2 NL 2004913 C2 NL2004913 C2 NL 2004913C2 NL 2004913 A NL2004913 A NL 2004913A NL 2004913 A NL2004913 A NL 2004913A NL 2004913 C2 NL2004913 C2 NL 2004913C2
Authority
NL
Netherlands
Prior art keywords
computer system
processes
computer
resources
essential
Prior art date
Application number
NL2004913A
Other languages
Dutch (nl)
Inventor
Sytse Bouwe Werkhoven
Original Assignee
Sytse S Professional Ict Solutions
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sytse S Professional Ict Solutions filed Critical Sytse S Professional Ict Solutions
Priority to NL2004913A priority Critical patent/NL2004913C2/en
Application granted granted Critical
Publication of NL2004913C2 publication Critical patent/NL2004913C2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

Title 5 Method, computer system and computer program product stored on a computer system readable medium for starting up of a computer system.
Background of the invention 10 A computer system’s boot time is generally construed as the time from powering up a computer system to the point in time when all essential system processes are executed by an operating system. The startup of a computer is generally construed as the time from powering up a computer system to the point in time when all essential and non-essential system processes are executed by an 15 operating system. After which, the computer system is considered to be ready to be used by a user.
Essential system processes are defined as processes which are mandatory for the operating system to function properly. In such a case, a process is usually a 20 service which is executed during the boot time of the computer system. Non-essential system processes are defined as processes which are not mandatory for the operating system to function properly and are controllable by a user or user account. Processes include, among other types of executable programs on a computer system, services and application programs.
25
Although newly constructed or reinstalled computer systems boot relatively quickly, the startup time performance tends to degrade over time. Users tend to install more processes on the computer-system and/or newer versions of currently installed software packages, which are often more complex and time consuming to 30 execute, thereby increasing the startup time significantly.
In recent years, several methods and apparatuses are developed for reducing the startup time, for example by relying on a hibernate function or by 2 executing processes simultaneously or by simply disabling execution of certain processes.
A hibernate function is already implemented in many operating systems 5 currently available, for example Windows™ 2K/XP/2003 and many types of linux. A hibernate function is aimed at saving the current state of a computer system, including the data stored onto in the working memory, onto a non-volatile memory, such as a hard-disk, a file or a partition, before powering down the computer system. After restoring power to the computer system, the data stored in the non-volatile 10 memory is stored again in the working memory. The operating system does not have to execute all necessary processes again, since the content of the working memory is restored. Such a process decreases the startup time of a computer-system significantly.
15 Decreasing startup time is also possible by executing processes simultaneously, by maximizing the use of available resources of a computer system. For example, if a computer system is currently not fully utilizing its processor capacity during a startup process, startup time can be decreased by executing another process, at the same time, so that the processor load is maximized. The 20 consequence of above mentioned solution is that no resources are available for the user to use the computer system, and therefor the user necessarily needs to wait until all processes are executed.
An other possibility of decreasing the startup time of a computer system is to 25 disable the execution of certain processes. In commonly used operating systems, for example Windows™ Vista, it is possible to disable processes by running the ‘msconfig’ command. By simply disabling the execution of a certain process, the startup time of the computer system is decreased.
30 The underlying problem in the above mentioned cases is that the user would like to use its computer system as quickly as possible, or that the user at least experiences that most computer resources are available for applications, or other types of processes, which the user would like to execute as soon as possible after 3 powering up the computer system.
The above mentioned solutions for decreasing the startup time of a computer system have significant disadvantageous. For the hibernate function, for example, to 5 function, a computer system first needs to be started up at least once completely. It is not possible to start up the computer system without any prior knowledge of the current state of the computer system.
Another disadvantage of the Hibernate function is that the computer system 10 is restored to it’s last functional state. In such a case, the computer system is restored to the moment in time when the user ordered the computer system to hibernate. Therefor, the computer system may be unnecessarily allocating computer system resources for example for executing processes which are sometimes not mandatory for the user to be executed.
15 A disadvantage for executing processes simultaneously, by maximizing the available resources of a computer system, is that also computer resources are allocated for executing processes which are not instantaneously mandatory for the user to be executed.
20 A disadvantage of the ‘msconfig’ command is that the user can only select which processes are to be executed by a computer system, not for example the moment when or the available resources for executing a process.. Besides, the ‘msconfig’ command requires knowledge of a user of the computer system, for 25 selecting and deselecting the processes which are executed when the computer system is started up.
Summary of the Invention 30 An object of the invention is to provide an improved method for starting up a computer system, such that a user of the computer system experiences that most computer resources are available for the user for executing an application, or any other type of process, as quickly as possible after powering up the computer system.
4
In a first aspect, the invention provides a method for starting up a computer system, the computer system being arranged for executing essential and non-essential system processes in the course of starting up the computer system, based on predefined criteria, wherein the non-essential system processes are automatically 5 executed sequentially at different points in time based on the predefined criteria.
In this case, a certain amount of computer system resources are already available for a user after the essential system processes are executed. By executing the different system processes on different points in time, not all system resources 10 are utilized for reducing the boot time. Executing the different system processes gradually by executing the processes on different points in time, the startup time of the computer system is reduced dramatically, while, perhaps, increasing the boot time of the computer system.
15 In an embodiment of the invention, the predefined criteria include availability of computer resources for starting up of the computer system. Such computer resources can be, but not limited to, processor(s) resources, GPU (Graphical Processing Unit) resources, memory resources, network resources, hard disk drive resources. In this case of at least two computer systems operating in parallel, it is 20 also possible that computer resource(s) of the at least two computer systems are included in the predefined criteria.
In a more detailed embodiment of the invention, the predefined criteria include availability of computer resources in time, and in particular the instantaneous 25 available computer system resources or the expected available computer system resources.
In such a case, the non-essential processes are executed if sufficient resources for the execution of the processes are available.
In a further embodiment of the invention, only a portion of said available computer resources is allocated for executing of a non-essential system process. Hereby, a portion of the computer system resources is still available for the user for, 30 5 for example, executing application programs.
In a yet further embodiment of the invention, the predefined criteria include a usage pattern of the computer system. For example, if a certain user is likely to not 5 use a computer system during a certain amount of time at a certain interval, the non-essential processes are executed during that interval. Such kind of information is retrieved from the usage pattern of the computer system, or the user of the computer system.
10 In an even further embodiment of the invention, the non-essential system processes are ordered for execution. Ordering is performed, for example, based on predetermined priority and mutual dependancies of the processes. Certain processes may only be executed if dependant processes have already been executed over time.
15
In a further embodiment of the invention, subsets of the non-essential system processes are subject to any of the examples of inventions explained before.
In another aspect of the invention, a computer system is arranged for 20 executing any of the above mentioned methods according to the invention.
Brief description of the drawings
Figure 1 illustrates a conventional computer system.
25
Figure 2 illustrates a flow chart of a first example of the invention described above.
Figure 3 illustrates a second flow chart of a second example of the invention 30 described above.
Figure 4 illustrates a third flow chart of a third example of the invention described above.
6
Figure 5 illustrates a computer system according to the invention.
Detailed description of the drawings 5 Figure 1 illustrates an example of a conventional computer system (10). The computer system (10) comprises a Cental Processing Unit (CPU) (12), also sometimes referred as processor, which is connected to one or more bridge devices (16) via a host bus (18). The host bus (18) can also be referred to as a Front Side Bus (FSB), a Processor Side Bus (PSB), or any other type of bus connection. The 10 one or more bridge devices are connected via a memory bus (20) to a main memory array (14). In some computer systems, a memory controller is present in the Central Processing Unit, in which case a direct connection from the Processor (12) and the main memory array is established without interconnection via one or more bridge devices. The one or more bridge devices (16) are in charge of the communications 15 between the different blocks connected to the one ore more bridges via the different busses. The computer system further comprises a graphics adapter (12) which is also connected to the one or more bridge devices (16) via a graphic bus (24). Often such a bus consists of a Peripheral Component Interconnect express (PCI-e) bus or an Advanced Graphic Port (AGP) bus, although it can consist of any kind of 20 communication bus.
The computer system (10) further comprises one or more memory devices (28) which are connected to the one or more bridge devices via a communication bus. Often, such a bus is a PCI (Peripheral Component Interconnect) or a PCIe 25 (Peripheral Component Interconnect express) bus, but it can consist of any type of communication bus, sometimes also referred to as an expansion bus. Typical memory devices (28) are a Hard Disk Drive (HDD), a Solid State Drive (SDD), or any other type of non-volatile memory. The computer system further comprises one or more I/O controller (32), which are also connected to the one or more bridge devices 30 (16) via a communication bus (30). The one or more bridge devices (16), shown in figure 1 can comprise of a north bridge and a south bridge. In common computer systems, the northbridge is directly connected to the processor (12), the main memory array (14) and the Graphics adapters (22). A south bridge is usually 7 connected to the memory devices (28) and the I/O controllers (32). The north bridge and south bridge are then connected via a communication bus. Computer systems in accordance with at least some of the illustrative embodiments of the invention utilize an operating system program.
5
When the computer system (10) is powered down, the operating system programs are stored on the memory device (28). As the computer system (10) is started up, portion of the operating system are copied to and executed from the main memory array (14). After the operating system is executed, various application 10 programs are automatically executed by the computer system. In some operating environments, some of these programs are given icons in the “system tray”, a small boxx in the lower right-hand corner of the start menu toolbar. For example, desirable programs such as firewall programs, virus detection programs, printer control programs, and programs to accept commands from the scroll wheel on pointing 15 devices, may be automatically started and have icons in the system tray. Such operating systems keep a list of programs to be automatically started on each boot of the computer system in a series of files: for the Windows operating system this is known as the “registry”. The registry does not comprise solely of a list of programs to be started on each boot up, but also various system configuration files. The portion of 20 the registry containing the list of programs automatically loaded on each start up will be equivalently referred to herein as the program startup list, startup registry and/or startup programs. In an illustrative computer system (10) using a Windows XP operating system, the startup registry may be located at: \Software\Microsoft\Windows\CurrentVersion\Run\ 25 Both in the system registry (HKEY_LOCAL_MACHINE) and the logged on user registry (HKEY_CURRENT_USER).
Although a computer system user may intentionally add a program identifier to the startup registry when loading a new application program, at other times 30 program identifiers may be added to the startup registry without the user's consent, or as an unwanted feature of an otherwise desirable application program loaded by the user.
8 A special set of processes that are started when the operating system is loaded are called services. Services are special programs that usually do not have an user interface and can be started without the user logging on to the operating system and can run even in a different user profile. As services sometimes are created to 5 perform a specific task on the computer system a service can be depended of one or more other services. This is called dependencies. Therefor, a service with dependencies is executed when all services it depends on are executed earlier.
Sometimes, programs can exist of, but not limited to, two different parts: a 10 service part and an interface part. For example, a virus detection program may have a service part that does the actual scanning on files and a startup program to provide an user interface to the different settings that may be adjusted.
In an illustrative computer system (10) using a Windows XP operating 15 system, the service registry may be located in the system registry (HKEY_LOCAL_MACHINE) at: \System\CurrentControlSet\Services
Figure 2 illustrates a flow diagram, in an example of the current invention, implementing a method for starting up a computer system comprising: determining 20 which processes can be controlled, ordering said controllable processes, executing said controllable processes sequentially, characterized by that the moment in time when to start, and said resources of said computer system available for executing said controllable processes is based on predefined criteria.
25 The flow chart starts when the computer system is started (200), i.e. the computer system is powered up. The computer system executes a program which finds the controlled processes from the previous time the program was running (201) and continues determine whether any non-essential processes (202) need to be executed. The purpose of the decision block (202) is to check if the non-essential 30 system processes need to be processed (203, explained in figure 3) or not. Usually no non-essential system processes are found at the initial startup of the computer program. After this step the computer program waits a while to prevent an increase of system load by the program itself (204). At intervals, the program checks the 9 computer system to search for processes that can be controlled by the program (206, explained in figure 4) but only performs this step when the utilization of the computer system’s resources is relatively low (206).
5 Figure 3 illustrates a further embodiment according to the invention. The flow diagram, depicted in figure 3, is a detailed diagram of the Process Controlled Services (203) block in figure 1. The flow diagram in figure 3 starts (210) when controllable processes are found (202, figure 1). First, the controllable processes found are ordered based on their priority or dependancies (211). The ordering can, 10 optionally, be done by using an optiona list containing services that need to be executed first. The items in the list containing the processes can also be altered according to user preferences.
In a method according to another embodiment of the invention, the ordering 15 of the controllable processes includes comparing the controllable processes in the with a processes in an optional list, containing processes, and not executing processes which are found in the essential list. For example, the second list can specify that the service of virus detection programs need to be executed first to make sure the computer system is protected against viruses. When the list of controllable 20 processes is ordered using the optional list, the processes are checked for their dependencies and the order of the processes is adjusted to ensure the proper startup of the controllable processes. Using the sorted controllable processes, the program now makes a decision based on the availability of the computer system’s resources (212). The computer system’s resources consist of at least one in the list: processor 25 resource, memory resource, network resource, videocard resource, disk resource. The decision variable to determine whether a process or program may be started, may include the availability of the computer system resources.
If the availability of the computer system resources is relatively low, the 30 program waits a certain amount (213). Usually such a time is a few milliseconds. When the availability of the computer system resources is relatively high, or higher than the mentioned threshold, the program checks whether no controllable processes are left (214). If no controllable processes are left, the program returns (209) to the 10
Wait (204) block in figure 2. If controllable processes do need to be executed, the program first inspects which process (215) needs to be executed. An optional step is shown in (216), where the program determines whether the process is already executed. If so, the process is removed from the list containing the controllable 5 processes (218) and the program returns to (214). If the service or program is not executed yet, the program executes the service or program (217) and removes the service or program from the list containing the controllable processes (219) before returning to either the waiting section (213) or the block which determines the availability of the computer system’s resources (212, not drawn). As mentioned 10 before, the computer system resources available for loading the controllable processes in the first list is based on predefined criteria. In an embodiment of the invention the predefined criteria include a value for the portion of the availability of the computer system resources.
15 In above mentioned process executing the items in the first list, containing the processes, is performed sequentially.
Figure 4 is a further example of an embodiment of the invention. The flow chart in figure 4 is a more detailed description of the block determining which 20 processes can be controlled (201, figure 2) by the computer program. When the flow chart starts (220), it begins with enumerating all processes on the computer system (221). This can include querying the operating system for a list of services (not shown). The program then checks whether all enumerated processes have been verified whether they can be controlled (222) by the computer program. If so, the 25 computer program ends the flow diagram and returns (229) to block (202) in figure 2. If this is not the case, the computer program starts with the next process on the list (223). First, optionally, it is checked whether the process is placed on a blacklist (second list) (224). If so, the program stops and disables the process (227) before returning to determining whether all processes have been verified (222). If the 30 process is not listed on a blacklist, the program verifies whether the process can be controlled (225) by the computer program. If the process can be controlled by the computer program it is placed on the mentioned first list (226), so that the process is controlled at the next startup of the computer system. If it is not possible to control 11 the process (228) by the computer program, the process is not be placed on the first list.
Figure 5 illustrates an example of components which can be used, according 5 to the invention, to determine the availability of the computer system’s resources. The computer system’s load (401), or the availability of the computer system’s resources, is determined by different sets of components: Combination of the loads of all combined CPU’s (402), and/or combination of the loads of all local hard drives (403), and/or load of the memory (404), and/or combination of the load of all 10 connected network cards and/or combination of all GPU cards (406). Of course, a skilled person in the art can introduce other types of loads which could be of importance for the total computer system’s load.

Claims (10)

1. Werkwijze voor het starten van een computersysteem, welk computersysteem is ingericht voor het uitvoeren van essentiële en niet-essentiële systeemprocessen op basis van vooraf gedefinieerde criteria, met het kenmerk dat niet-essentiële systeemprocessen automatisch en sequentieel op verschillende tijdstippen worden uitgevoerd op basis van de vooraf gedefinieerde criteria.Method for starting a computer system, which computer system is adapted to perform essential and non-essential system processes on the basis of predefined criteria, characterized in that non-essential system processes are carried out automatically and sequentially at different times on the basis of the predefined criteria. 2. Werkwijze volgens conclusie 1, waarin de vooraf gedefinieerde criteria beschikbaarheid van computersysteembronnen omvatten.The method of claim 1, wherein the predefined criteria include availability of computer system resources. 3. Werkwijze volgens conclusie 2, waarin de beschikbaarheid van de computersysteembronnen een omvat uit de groep van momentaan beschikbare computersysteembronnen en verwachte beschikbare computersysteembronnen.The method of claim 2, wherein the availability of the computer system resources includes one from the group of currently available computer system resources and expected available computer system resources. 4. Werkwijze volgens conclusie 3, waarin een deel van de beschikbare computersysteembronnen gealloceerd wordt voor het uitvoeren van niet-essentiële systeemprocessen.The method of claim 3, wherein a portion of the available computer system resources is allocated for performing non-essential system processes. 5. Werkwijze volgens een van de voorgaande conclusies, waarin de vooraf gedefinieerde criteria een gebruikspatroon van het computersysteem 20 omvatten.5. Method as claimed in any of the foregoing claims, wherein the predefined criteria comprise a usage pattern of the computer system 20. 6. Werkwijze volgens een van de voorgaande conclusies, waarin de niet-essentiële systeemprocessen voor uitvoering worden geordend.The method of any one of the preceding claims, wherein the non-essential system processes are arranged for execution. 7. Werkwijze volgens conclusie 6, waarin het ordenen van de niet-essentiële systeemprocessen op een vooraf gedefinieerde prioriteit en/of 25 wederzijdse afhankelijkheden is gebaseerd.7. Method according to claim 6, wherein the ordering of the non-essential system processes is based on a predefined priority and / or mutual dependencies. 8. Werkwijze volgens een van de voorgaande conclusies, waarin deelgroepen van de niet-essentiële systeemprocessen sequentieel op verschillende tijdstippen worden uitgevoerd op basis van de vooraf gedefinieerde criteria.A method according to any one of the preceding claims, wherein subsets of the non-essential system processes are sequentially executed at different times based on the predefined criteria. 9. Computersysteem ingericht voor het uitvoeren van een werkwijze 30 volgens een van de voorgaande conclusies.9. Computer system adapted to perform a method according to one of the preceding claims. 10. Computerprogrammaproduct omvattende door een computer leesbare code opgeslagen op een fysiek, door een computer leesbaar medium, waarin het product, indien geladen in een werkgeheugen van het computersysteem, is ingericht voor het uitvoeren van een werkwijze volgens een van de voorgaande 35 conclusies. 200491310. A computer program product comprising computer-readable code stored on a physical, computer-readable medium, wherein the product, when loaded into a working memory of the computer system, is adapted to perform a method according to any of the preceding claims. 2004913
NL2004913A 2010-06-17 2010-06-17 Method, computer system and computer program product stored on a computer system readable medium for starting up of a computer system. NL2004913C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
NL2004913A NL2004913C2 (en) 2010-06-17 2010-06-17 Method, computer system and computer program product stored on a computer system readable medium for starting up of a computer system.

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NL2004913A NL2004913C2 (en) 2010-06-17 2010-06-17 Method, computer system and computer program product stored on a computer system readable medium for starting up of a computer system.
NL2004913 2010-06-17

Publications (1)

Publication Number Publication Date
NL2004913C2 true NL2004913C2 (en) 2011-12-20

Family

ID=43302056

Family Applications (1)

Application Number Title Priority Date Filing Date
NL2004913A NL2004913C2 (en) 2010-06-17 2010-06-17 Method, computer system and computer program product stored on a computer system readable medium for starting up of a computer system.

Country Status (1)

Country Link
NL (1) NL2004913C2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060277402A1 (en) * 2005-05-18 2006-12-07 Hitachi, Ltd. System startup method
US20070121665A1 (en) * 2005-11-30 2007-05-31 Microsoft Corporation Delay start-up of applications
EP1944690A2 (en) * 2006-12-19 2008-07-16 Continental Automotive GmbH Method, device and system
US20090119496A1 (en) * 2004-03-18 2009-05-07 Lechong Chen Method and apparatus to support booting despite deficient resources

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090119496A1 (en) * 2004-03-18 2009-05-07 Lechong Chen Method and apparatus to support booting despite deficient resources
US20060277402A1 (en) * 2005-05-18 2006-12-07 Hitachi, Ltd. System startup method
US20070121665A1 (en) * 2005-11-30 2007-05-31 Microsoft Corporation Delay start-up of applications
EP1944690A2 (en) * 2006-12-19 2008-07-16 Continental Automotive GmbH Method, device and system

Similar Documents

Publication Publication Date Title
US10228952B2 (en) System and method for accelerated boot performance
EP3063620B1 (en) Selective power management for pre-boot firmware updates
US8346933B2 (en) Virtual machine location system, virtual machine location method, program, virtual machine manager, and server
JP5026494B2 (en) Computer that starts at high speed
KR101385873B1 (en) System and method for optimizing interrupt processing in virtualized environments
US8370613B1 (en) Method and apparatus for automatically optimizing a startup sequence to improve system boot time
US9021243B2 (en) Method for increasing free memory amount of main memory and computer therefore
US20080163185A1 (en) Delay-load optimizer
US9535492B2 (en) Information processing apparatus, control method, and computer-readable recording medium
US9189293B2 (en) Computer, virtualization mechanism, and scheduling method
US20110197193A1 (en) Device and method for controlling communication between bios and bmc
US9417886B2 (en) System and method for dynamically changing system behavior by modifying boot configuration data and registry entries
TWI450090B (en) Method and system of changing a startup list of programs to determine whether computer system performance increases
JP5200085B2 (en) Method and computer for starting computer in a short time
CA2793868A1 (en) Method and system for managing power consumption of a computing device
US8793478B2 (en) Grid computing resources and a method of use thereof
CN103902302A (en) Software installation system and method for virtual machine
US7428609B2 (en) Method and system to partition hardware resources between operating systems
US20190068772A1 (en) Computer system and method thereof for bluetooth data sharing between uefi firmware and os
US20070214345A1 (en) System and method for porting an operating system
NL2004913C2 (en) Method, computer system and computer program product stored on a computer system readable medium for starting up of a computer system.
US9003172B2 (en) Intelligently controlling loading of legacy option ROMs in a computing system
KR100994723B1 (en) selective suspend resume method of reducing initial driving time in system, and computer readable medium thereof
WO2013049767A1 (en) Method for device-less option-rom bios load and execution
CN102750466B (en) anti-virus operation system

Legal Events

Date Code Title Description
MM Lapsed because of non-payment of the annual fee

Effective date: 20170701