Achieving autonomic behavior in an operating system via a hot-swapping mechanism
First Claim
1. In a computer system using an operating system to provide access to hardware resources, wherein said operating system provides access to said hardware resources via a first code component, a method of replacing said first code component with a new code component while said operating system remains active and while said operating system provides continual availability to the hardware resources by applications operational in the computer system, and while said application call to said first component to perform defined functions, the method comprising using the computer system for:
- instantiating an instance of a new code component to replace said first code component;
instantiating a mediator object;
initiating a swapping operation;
for the duration of the swapping operation, using the mediator object to intercept calls from the applications requesting the first code components to perform the defined functions, and using the mediator object to perform the requested functions;
establishing a quiescent state for the first code component;
transferring state from the first code component to the new code component; and
swapping the new code component for the first code component including the steps of;
identifying references to said first code component;
replacing the identified references to said first code component with references to said new code component; and
deallocating the first code component.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, especially operating systems, are becoming more complex to the point where maintaining them by humans is becoming nearly impossible. Many corporations have recognized this trend and have begun investing in autonomic technology. Autonomic technology allows a piece of software to monitor, diagnose, and repair itself. This can be used for improved performance, reliability, maintainability, security, etc. Disclosed herein is a mechanism to allow operating systems to hot swap a piece of operating system code, while continuing to offer to the user the service which that code is providing. This can be used, for examples, to increase the performance of an application or to fix a detected security hole live without bringing the machine down. Some autonomic ability will be mandatory in next generation operating system for without it they will collapse under their own complexity. The invention offers a key component of being able to achieve autonomic computing.
37 Citations
24 Claims
-
1. In a computer system using an operating system to provide access to hardware resources, wherein said operating system provides access to said hardware resources via a first code component, a method of replacing said first code component with a new code component while said operating system remains active and while said operating system provides continual availability to the hardware resources by applications operational in the computer system, and while said application call to said first component to perform defined functions, the method comprising using the computer system for:
-
instantiating an instance of a new code component to replace said first code component; instantiating a mediator object; initiating a swapping operation; for the duration of the swapping operation, using the mediator object to intercept calls from the applications requesting the first code components to perform the defined functions, and using the mediator object to perform the requested functions; establishing a quiescent state for the first code component; transferring state from the first code component to the new code component; and swapping the new code component for the first code component including the steps of; identifying references to said first code component; replacing the identified references to said first code component with references to said new code component; and deallocating the first code component. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for swapping code in a computer system including an operating system, said operating system including at least one code component and providing continual availability of hardware resources by applications operational in the computer system, the system comprising one or more processors configured for:
-
instantiating an instance of a new source code component to replace said at least one code component; instantiating a mediator object; initiating a swapping operation; for the duration of the swapping operation. using the mediator object to intercept calls from the applications requesting the first code components to perform the defined functions, and using the mediator object to perform the requested functions; establishing a quiescent state for the at least one code component;
transferring state from the at least one code component to the new source code component; andswapping the new source code component for the at least one code component, including; identifying, while said operating system is active and providing continual access to said resources, references to the at least one code component of the operating system; and transferring the identified references to the new source code component, while said operating system is active and providing continual access to said resources, and then executing the swapping. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A program storage device, for use with a computer system including an operating system to provide access to hardware resources, wherein said operating system provides access to said resources via a first code component, said program storage device being readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for replacing said first code component with a new code component while said operating system remains active and while said operating system provides continual availability to said resources by applications operational in the computer system, and while said applications call to said first component to perform defined functions, the method steps comprising:
-
instantiating an instance of a new code component to replace said first code component; instantiating a mediator object; initiating a swapping operation; for the duration of the swapping operation, using the mediator object to intercept calls from the applications requesting the first code components to perform the defined functions, and using the mediator object to perform the requested functions; establishing a quiescent state for the first code component; transferring state from the first code component to the new code component; and swapping the new code component for the first code component including the steps of; identifying references to said first code component; replacing the identified references to said first code component with references to said new code component; and deallocating the first code component. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
Specification