Computer hibernation implemented by a computer operating system

Electrical computers and digital processing systems: support – Digital data processing system initialization or configuration

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C713S300000

Reexamination Certificate

active

06209088

ABSTRACT:

TECHNICAL FIELD
This invention relates to computers and operating systems that are capable of suspending program execution and saving all volatile state information before the computer is turned off, and of restarting themselves without requiring an operating system reboot when the computer is turned back on.
BACKGROUND OF THE INVENTION
Computers such as conventional personal computers often utilize a time-consuming initialization procedure in order to load and initiate a computer operating system. The operating system for a computer is typically stored on some type of rotating non-volatile media such as a magnetic hard disk. However, the computer's microprocessor executes instructions only from addressable memory such as DRAM or some other type of volatile, electronic memory. In order to initialize this addressable memory, a small amount of non-volatile boot-up memory is typically provided in an EPROM (electronically programmable read-only memory) or similar device. This memory contains code for reading some initial portion of the operating system from the hard disk and loading it into DRAM. This portion of the operating system is then responsible for loading and initializing remaining portions of the operating system. This process is referred to as “booting” the operating system.
After a computer initializes itself or “boots,” it is usually in a default state, ready for a user to initiate some program or process. In most cases, the computer is in the same state after every initialization, regardless of a user's past activities. That is, the computer does not “wake up” at the same point at which it was turned off. Rather, the user must reload any applications, documents, or files he or she wishes to use. This can be a significant inconvenience. If a user wishes to turn off his or her computer at the end of a workday, the user must save all work, exit all programs, and shut the computer down. At the beginning of the next day, the user must restart the computer, wait for it to boot, load any applications that were in use the day before (such as email programs, word processing programs, Internet browsers, etc.). Each application typically initializes itself to a default state, and the user must take further steps to load any documents or files that he or she was working with. Assuming, as an example, that the user was revising a text document, the user must load a word processor, load the appropriate document into the work processor, and also attempt to find the place in the document where work was interrupted the day before.
It would be much easier for the user if the computer would simply restart at the same point at which it was turned off. In fact, some computers are able to do this. When using such a computer, a user simply initiates a “hibernate” mode when it is time to turn the computer off. The term hibernate indicates that power is turned off in such a way that the computer is “paused.” Thus, when the computer is turned back on, it resumes operation at the same point at which it was turned off. While the computer is turned off power is removed from all or at least most components of the computer.
To hibernate, the computer saves its entire volatile operating state to non-volatile storage (hard disk). Specifically, the computer saves the contents of all volatile DRAM (dynamic random-access memory), all pertinent state information from the computer's microprocessor, and volatile state information from peripheral components within the computer such as video drivers, printer drivers, etc. When the computer is turned back on, it automatically restores the memory contents and other saved state information. This avoids a lengthy boot process and allows a user to begin work immediately, without reinitializing application programs and documents.
“Hibernation” or “sleep” modes have been implemented primarily in portable computers. One reason for this is that such computers are typically “closed” from a hardware standpoint, meaning that computer hardware exists in a known and constant configuration—it cannot be changed or significantly reconfigured by a user. The code that implements the hibernation function resides in EPROM along with boot code. When it is time for hibernation, the processor jumps to code within the EPROM that is tailored very specifically to the known hardware of the computer. The EPROM code knows exactly what type of hard disk it needs to write to and exactly what internal peripherals need to have their states saved. Furthermore, the EPROM hibernation code can be written so that its execution does not affect the contents of DRAM, which must be saved to disk in an unaltered state. The problem with this approach is that it must be customized for every hardware configuration. For this reason, it has not been widely used. Most desktop computers do not provide a hibernation function.
SUMMARY OF THE INVENTION
A computer in accordance with the invention includes volatile executable memory and non-volatile secondary storage such as a hard disk. An operating system is stored on the secondary storage, and is loaded into executable memory during a computer boot process. The operating system includes a hibernate/awaken function that executes from the volatile executable memory of the computer, rather than from the computer's EPROM. The hibernate/awaken function saves the processor state and the executable memory state to the secondary storage prior to a computer power-down and subsequently restores the processor state and the executable memory state from the secondary storage after the computer power-down without rebooting the operating system. Because the hibernate/awaken function is implemented within the operating system, it is available on any computer capable of running the operating system—the hibernate/awaken function does not rely on the computer's EPROM code for its functionality.
There is a potential problem arising from the fact that the hibernate/awaken function executes from the very memory space that is being saved to secondary storage. This could cause the memory to change during the write process itself, which would be fatal to the hibernation process-the hibernation process relies on the ability to write a memory image representing the entire memory state at a particular instant in time. To solve this potential problem, the hibernate/awaken function first identifies areas of the executable memory that will potentially change during the step of saving the memory to secondary storage. Once these areas are identified, they are duplicated into free areas of executable memory, in a small code loop. When the memory is subsequently written to secondary storage, the duplicated data is written in place of the data that was identified as being subject to change. Thus, a “snapshot” of memory is preserved and written to disk.
Another potential problem arises when restoring the executable memory, because of the necessity of executing restoration code from the very memory space that is being restored. This is solved by allocating temporary “scratch” memory areas before initiating the write process described above. The allocated memory is left un-used by the executing system and therefore does not contain any data that needs to be saved or restored. During restoration, a loader is executed from known locations in memory. It restores individual pages from secondary storage to executable memory. If the loader encounters a page that would overwrite the loader, that page is written to one of the scratch memory areas that does not overwrite the loader. After all pages have been retrieved from secondary storage, a small code loop copies the pages stored in the scratch areas back to their proper locations in executable memory. After memory has been restored in this manner, the computer continues operations from the point where operations were suspended in response to the hibernate/awaken function.


REFERENCES:
patent: 4143283 (1979-03-01), Graf et al.
patent: 4234920 (1980-11-01), Van Ness et al.
patent: 4458307 (1984-07-01), McAnlis et al.
patent: 46

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Computer hibernation implemented by a computer operating system does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Computer hibernation implemented by a computer operating system, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Computer hibernation implemented by a computer operating system will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2502231

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.