IP Library Granted Patent US 9,015,461
Granted Patent B2
US 9,015,461 · App. 13/114,568 · Granted Apr 21, 2015

Booting an operating system of a system using a read ahead technique

Inventor: Adriaan Van De Ven (Portland, OR)
Assignee: Intel Corporation
G06F9/4406
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 9,015,461
App. No.
13/114,568
Granted
Apr 21, 2015
Kind
B2
Abstract

In one embodiment, the present invention includes a method for generating a list of files accessed during an operating system (OS) boot process to profile the OS boot process, and optimizing the list of files to generate an optimized file list for use in future OS boot processes, where the optimizing is according to a first optimization technique if the files were accessed from a solid state medium and according to a second optimization technique if the files were accessed from a rotating medium. Other embodiments are described and claimed.

Claims (44)

1. A method comprising:

identifying files used during boot of a machine;

generating a list of files based on the identifying of the files used during boot of the machine;

prefetching one or more files ahead of the one or more file's use from the list of files into a memory upon a boot of the machine; and

loading a first portion of the prefetched files into an operating system (OS) disk cache via a read ahead agent, and communicating completion of the load of the first portion from the read ahead agent to a process launcher, wherein the process launcher is to wait until communication to execute a first file of the first portion.

2. The method of claim 1 , wherein identifying files used during boot of a machine comprises: determining a time indicator associated with each file launched during the boot of the machine.

3. The method of claim 1 , wherein the list comprises an optimized list, and wherein the optimized list is to be optimized for a solid state drive in response to detecting the files are located on a solid state drive or is to be optimized for a hard disk drive in response to detecting the files are located on a hard disk drive.

4. The method of claim 1 , wherein prefetching one or more files ahead of its use from the list of files into a memory upon a boot of the machine comprises reading ahead the one or more files from a drive into a memory before executing the one or more file to start a program.

5. The method of claim 4 , wherein the reading ahead the one or more files from a drive into a memory before executing the one or more file to start a program is capable of being performed in a mutli-threaded manner.

6. The method of claim 4 , wherein reading ahead the one or more files from a drive into a memory before executing the one or more file to start a program comprises:

identifying the program to start;

waiting for the reading ahead of the one or more files from a drive into the memory to complete before executing the one or more files to start the program;

executing the one or more files to start the program in response to completing the reading ahead of the one or more files from a drive into the memory.

7. A method comprising

generating a list of files used during boot a computer system, wherein the list includes an identifier for each file used during boot of the computer system associated with a time indicator for each file used during boot of the computer system;

detecting a hard disk drive or a solid state drive to be utilized for boot of the computer system;

utilizing a first optimization technique during boot of the computer system in response to detecting the solid state drive is to be utilized for boot of the computer system; and

utilizing a second optimization technique during boot of the computer system in response to detecting the hard disk drive is to be utilized for boot of the computer system.

8. The method of claim 7 , wherein the time identifier for each file includes an identifier selected from a group consisting of a start time for each file from a beginning of the boot of the computer system, a sequence number for each file indicating a sequential order of the list of files, and a measurement of time for each file.

9. The method of claim 7 , wherein utilizing a first optimization technique includes performing a first optimization on the list of files to obtain a first optimized list of files, and wherein utilizing a second optimization technique includes performing a second, different optimization on the list of files to obtain a second optimized list of files.

10. The method of claim 7 , wherein the first optimization technique includes sorting the list of files by the time indicator for each file, and wherein the second optimization technique includes separating the file list into a plurality of buckets and sorting the plurality of buckets based on location of each of the files.

11. The method of claim 7 , wherein the first optimization technique includes prefetching files from the list of files, and wherein the second optimization technique includes not prefetching files from the list of files.

12. A non-transitory machine readable storage medium including code, which when executed, causes a machine to perform the operations of:

identifying files used during boot of a machine;

generating a list of files based on the identifying of the files used during boot of the machine; and

prefetching one or more files ahead of its use from the list of files into a memory upon a boot of the machine; and

loading a first portion of the prefetched files into an operating system (OS) disk cache via a read ahead agent, and communicating completion of the load of the first portion from the read ahead agent to a process launcher, wherein the process launcher is to wait until communication to execute a first file of the first portion.

13. The machine readable medium of claim 12 , wherein identifying files used during boot of a machine comprises: determining a time indicator associated with each file launched during the boot of the machine.

14. The machine readable medium of claim 12 , wherein the list comprises an optimized list, and wherein the optimized list is to be optimized for a solid state drive in response to detecting the files are located on a solid state drive or is to be optimized for a hard disk drive in response to detecting the files are located on a hard disk drive.

15. The machine readable medium of claim 12 , wherein prefetching one or more files ahead of its use from the list of files into a memory upon a boot of the machine comprises reading ahead the one or more files from a drive into a memory before executing the one or more file to start a program.

16. The machine readable medium of claim 15 , wherein the reading ahead the one or more files from a drive into a memory before executing the one or more file to start a program is capable of being performed in a mutli-threaded manner.

17. The machine readable medium of claim 15 , wherein reading ahead the one or more files from a drive into a memory before executing the one or more file to start a program comprises:

identifying the program to start;

waiting for the reading ahead of the one or more files from a drive into the memory to complete before executing the one or more files to start the program;

executing the one or more files to start the program in response to completing the reading ahead of the one or more files from a drive into the memory.

18. A non-transitory machine readable storage medium including code, which when executed, causes a machine to perform the operations of:

generating a list of files used during boot a computer system, wherein the list includes an identifier for each file used during boot of the computer system associated with a time indicator for each file used during boot of the computer system;

detecting a hard disk drive or a solid state drive to be utilized for boot of the computer system;

utilizing a first optimization technique during boot of the computer system in response to detecting the solid state drive is to be utilized for boot of the computer system; and

utilizing a second optimization technique during boot of the computer system in response to detecting the hard disk drive is to be utilized for boot of the computer system.

19. The machine readable medium of claim 18 , wherein the time identifier for each file includes an identifier selected from a group consisting of a start time for each file from a beginning of the boot of the computer system, a sequence number for each file indicating a sequential order of the list of files, and a measurement of time for each file.

20. The machine readable medium of claim 18 , wherein utilizing a first optimization technique includes performing a first optimization on the list of files to obtain a first optimized list of files, and wherein utilizing a second optimization technique includes performing a second, different optimization on the list of files to obtain a second optimized list of files.

21. The machine readable medium of claim 18 , wherein the first optimization technique includes sorting the list of files by the time indicator for each file, and wherein the second optimization technique includes separating the file list into a plurality of buckets and sorting the plurality of buckets based on location of each of the files.

22. The machine readable medium of claim 18 , wherein the first optimization technique includes prefetching files from the list of files, and wherein the second optimization technique includes not prefetching files from the list of files.

Continuity (2)
Continuation 12426582 · Apr 20, 2009
Related Publication 20110225412A1 · Sep 15, 2011