Management of software implemented services in processor-based devices
First Claim
1. A method managing memory usage by services on a device comprised of an embedded processor and a memory for storing program files and data to be executed and read by the processor, the method comprising:
- storing in the memory a manifest specifying a plurality of services available to users of the device, the manifest storing information identifying for each of the plurality of the services at least one application file for executing the service on the embedded processor;
the information in the manifest further identifying for each of the plurality of service a class to which it is assigned and information for determining a maximum number of services for each class permitted to be loaded into the memory at a single time;
upon receiving a request to load a service on the embedded device, determining using the information stored in the manifest, which of the plurality of classes the requested service belongs to and whether a maximum number of services for the class are loaded in the memory; and
prior to loading into memory the application for the requested service, unloading from the memory an application for a previously loaded service in the class to which the requested service belongs in response to determining using the information stored in the manifest that the maximum number of services for the class are loaded in the memory.
1 Assignment
0 Petitions
Accused Products
Abstract
A service management system for devices with embedded processor systems manages use of memory by programs implementing the services by assigning services to classes and limiting the number of services per class that can be loaded into memory. Classes enable achieving predictable and stable system behavior, defining the services and service classes in a manifest that is downloaded to embedded devices operating on a network, such as a cable or satellite television network, telephone or computer network, and permit a system operator, administrator, or manager to manage the operation of the embedded devices while deploying new services implemented with applications downloaded from the network when the service is requested by a user.
-
Citations
36 Claims
-
1. A method managing memory usage by services on a device comprised of an embedded processor and a memory for storing program files and data to be executed and read by the processor, the method comprising:
-
storing in the memory a manifest specifying a plurality of services available to users of the device, the manifest storing information identifying for each of the plurality of the services at least one application file for executing the service on the embedded processor;
the information in the manifest further identifying for each of the plurality of service a class to which it is assigned and information for determining a maximum number of services for each class permitted to be loaded into the memory at a single time;upon receiving a request to load a service on the embedded device, determining using the information stored in the manifest, which of the plurality of classes the requested service belongs to and whether a maximum number of services for the class are loaded in the memory; and prior to loading into memory the application for the requested service, unloading from the memory an application for a previously loaded service in the class to which the requested service belongs in response to determining using the information stored in the manifest that the maximum number of services for the class are loaded in the memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus comprising,
an embedded processor; -
a memory for storing program files and data to be executed and read by the processor; a manifest stored in the memory including a manifest specifying a plurality of services available to users of the device, the manifest storing information identifying for each of the plurality of the services at least one application file for executing the service on the embedded processor;
the information stored manifest further identifying for each of the plurality of service a class to which it is assigned and information for determining a maximum number of services for each class permitted to be loaded into the memory at a single time; andprogram instructions stored in memory for execution by the processor and adapted for responding to a request for a new service made to the apparatus, by determining using the information stored in the manifest to which of the plurality of classes the requested service belongs; determining using the information stored in the manifest whether a maximum number of services for the class of the requested service are loaded in the memory; prior to loading into memory an application for the requested service, causing unloading from the memory an application for a previously loaded service in the class to which the requested service belongs in response to determining that the maximum number of services for the class are loaded in the memory; and allocating space in memory for an application for the application for the requested service and causing loading of the application for the requested service. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer readable medium carrying computer instructions for execution by a processor embedded in a device, instructions for adapting the device to respond to a request for a new service made to the device, by
determining to which of a plurality of classes the requested service belongs, the class of the service being determined by reference to a manifest storing information indicating the class to which the requested service belongs; -
determining using the information stored in the manifest whether a maximum number of services for the class of the requested service are loaded in the memory; prior to loading into memory an application for the requested service, causing unloading from the memory an application for a previously loaded service in the class to which the requested service belongs in response to determining that the maximum number of services for the class are loaded in the memory; and causing loading of the application for the requested service. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27)
-
-
28. Apparatus comprising
one or more servers for storing applications for implementing any one of a plurality of services on the at least one embedded device, the applications available for downloading to the at least one embedded device over the network; -
at least one embedded device in communication with the server over a network; the device comprising, an embedded processor; a memory for storing program files and data to be executed and read by the processor; program instructions stored in memory for execution by the processor and adapted for responding to a request for a new service made to the apparatus, by determining to which of the plurality of classes the requested service belongs using a manifest, the manifest storing information specifying a plurality of services available to users of the device, the information stored in the manifest identifying for each of the plurality of the services at least one application file for executing the service on the embedded device;
the information stored in the manifest further identifying for each of the plurality of service a class to which it is assigned and information for determining a maximum number of services for each class permitted to be loaded into the memory at a single time;determining based on the information stored in the manifest whether a maximum number of services for the class of the requested service are loaded in the memory; prior to loading into memory an application for the requested service, causing unloading from the memory an application for a previously loaded service in the class to which the requested service belongs in response to determining that the maximum number of services for the class are loaded in the memory; and allocating space in memory for an application for the application for the requested service and causing loading of the application for the requested service. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36)
-
Specification