The present invention relates generally to methods and apparatuses for managing resources in operating systems, and more particularly to a method and apparatus for managing resources in an operating system that functions in real-time.
High volume electronics (HVE) consumer systems, such as digital television sets, digitally improved analog television sets and set top boxes (STBs), are typically part of product families, which are required to become open and flexible, while remaining cost-effective and robust. Such systems have properties that are characteristics of the hard real-time domain.
As openness and flexibility are typical characteristics of software based systems, significant parts of the media processing in HVE consumer systems are expected to become implemented in software, in addition to the existing software realizations for control and services. Component technology is considered to be basic technology for open and flexible systems. Note that because HVE consumer systems are typically part of product families, component technology is already very important for existing software intensive HVE consumer systems; developing such systems using component technology significantly reduces the development lead-time and the development cost, amongst others benefits.
Moreover, consumer products are heavily resource constrained. As a consequence, the available resources must be used very cost effectively, while preserving typical qualities of HVE consumer systems, such as robustness, and meeting stringent timing requirements imposed by, for example, high quality digital audio and video processing. Concerning robustness, no one expects, for example, a television set to stall with the message “please reboot the system.” The notion of resource budgets (or reservations) is a proven concept to provide temporal isolation between applications.
Currently work exists with a system implementing budgets on top of a commercial-off-the-shelf (COTS) real-time operating system (RTOS) providing fixed-priority preemptive scheduling (FPPS).
U.S. Pat. No. 5,838,968 discloses a system and method for dynamic resource management across tasks in real-time operating systems. The system and method manage an arbitrary set of system resources and globally optimize resource allocation across system tasks in a dynamic fashion, according to a system specified performance model.
U.S. Patent Application Publication No. US 2002/0138679 A1 discloses a system and method for priority inheritance, in which the method tests a priority inheritance variable associated with a task, and lowers the current priority of a task when testing the priority inheritance variable indicates that the task holds no resources that are involved in a priority inheritance. U.S. Patent Application Publication No. US 2002/0133530 A1 discloses a method for resource control that includes resource stealing by a higher priority task from a lower priority tasks. In some cases, budget allocations are less than ideal, which can lead to inflexible operation or improper use of resources.
The present invention is therefore directed to the problem of developing a method and apparatus for improving resource use in reservation-based scheduling in real-time operating systems as well as other similar applications.
The present invention solves these and other problems by providing a method for controlling an operating system that combines the concepts of multiple task prioritization, resource budgeting, resource consumption prediction, and conditional budget allocation. In this combination, a budget margin is allocated to a higher priority task, to be used in case its budget is not enough, whereas a conditional budget margin is conditionally allocated to a designated lower priority task in addition to its budget. The higher priority task monitors its budget use and if the higher priority task determines its budget margin is unnecessary, the lower priority task is allowed to use its conditional budget margin.
According to one aspect of the present invention, a higher priority task (e.g., a More Important Task) voluntarily restraints its budget usage to a budget without margin, and then subsequently explicitly decides to use the margin when needed.
According to another aspect of the present invention, the higher priority task informs an Allocation Mechanism about the decision, and a lower priority task (e.g., a Less Important Task) is informed as well, either directly or indirectly. This enables the Allocation Mechanism or a scheduler to provide this unused budget margin to the lower priority task, at least until the higher priority task subsequently determines that it needs this budget margin. Other aspects of the present invention will become apparent to those of skill in the art upon a review of the detailed description in light of the following drawings.
It is worthy to note that any reference herein to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
Details regarding the assignment of priorities, designations of MITs and LITs, and the determination of budgets and other related information could be found in U.S. patent application Ser. Nos. 10/169,346 and 10/294530, both of which have been incorporated by reference as if repeated herein in their entirety including the drawings. It should be noted that in these patent applications, the notion of priority is being used in the meaning of Operating System priority, and not in the meaning of relative importance. In the scheduling algorithm used, the former priorities are in general allocated according to the budget periods. Sometimes it is convenient to unify the OS priorities and the relative importance, especially if all tasks have the same budget period. However, unifying the two priority types is not always applicable. Moreover, OS priorities may be dynamic, e.g. in an OS that uses earliest deadline first scheduling. In that case the two priority types cannot be unified. Therefore, the following shall focus on the aspects relating to the interaction of the MIT, the LIT, the Allocation Mechanism and the scheduler to make use of the Guaranteed Budget Margin when not being used by the MIT.
Turning to
It should be noted that in
In the embodiments herein, we assume that the allocated budgets will be replenished periodically, and that the periods and start times are determined by the task. Only the periodic budget is determined by the allocation mechanism. The use of such a periodic budget is as follows:
If task Y receives periodic budget B, with period T, and start time t0, then at every instant t0+n·T, with n≧0 the budget of Y is replenished to B units of time. Y is guaranteed to receive B units of time between t0+n·T and t0+(n+1)·T, for n≧0, if and only if it is able to consume these time units during that period. If it does not have enough work to consume the time units in the given period, the unused time is lost at t0+(n+1)·T.
Note that a periodic budget is always related to a fractional budget (F), where F=B/T, and that the sum of all allocated fractional budgets must be smaller than or equal to 1. The embodiments herein do not exclusively apply for periodic budgets. In principle, the embodiments herein can be applied to all fractional budgets. The embodiments herein also do not exclusively apply to processors, CPUs, or operating systems; rather the embodiments can also be applied to other temporal resources (e.g., transportation bandwidth).
Turning to
The scheduling process begins by accepting reservation commands from the allocation mechanism for the MIT and the LIT 31. The scheduler grants the MIGB and the GBM to the MIT, and thereby allows the scheduling mechanism to start providing them on a periodic basis, with a period that is typical for the MIT 32. The scheduler also grants the LIGB to the LIT and thereby allows the scheduling mechanism to start providing it on a periodic basis, with a period that is typical for the LIT 33. The scheduler conditionally grants the CGB to the LIT and thereby allows the scheduling mechanism to start providing it on a periodic basis, with a period that is typical for the LIT 34. The scheduling mechanism continues to run according to the current settings of the scheduling algorithm 35. In this way, the scheduling mechanism provides the granted budgets to the tasks. If an external event occurs 36, the scheduler reaches a condition 37. If the scheduler process 30 continues, the scheduler process loops back to element 31; otherwise the scheduling activity stops, and the scheduler terminates.
The “grant X to Y” is intended to mean “set the scheduling parameters in such a way that X is guaranteed to receive Y”. In contrast, “conditionally grants” means that, for example, the LIT “inherits” unused budget from MIT. The conditional provision is implicit; if the MIT leaves its full GBM unused, then the LIT gets its full CGBM.
Turning to
Turning to
Turning to
A More Important Task (
Turning to
At the start of a second budget period 205, with replenished MIGB and GBM, the corresponding execution of the task (e.g., processing of the first video frame) starts 206. Some time later, the MIGB is completely depleted 207. Still some time later, the task execution completes 208. The GBM is not completely used up. Yet some time later, the second budget period terminates 209.
The timeline shows two exemplary budget periods. In the first budget period, from 201 to 204, the task execution completes within the MIGB. In the second budget period from 205 to 209, task execution also requires some part of the GBM.
The second type of behavior, known as asynchronous behavior, occurs when the task does not work in synchrony with its budget. In asynchronous behavior, a task may work-ahead or lag-behind its budget consumption. Asynchronous behavior is often used to smoothen out loads. Turning to
At the start of a second budget period 221, with replenished MIGB and GBM, the second task execution, suspended in the previous period, is resumed 222. Some time later, the MIGB is completely depleted 223. Still some time later, the GBM,is also depleted 224, and the second task execution is again suspended 225. Some time later, the period terminates 226. During this second period, no task completion has taken place. The second task execution will be late. Turning to
At the start of a second budget period 239, with replenished MIGB and GBM, the task execution suspended in the previous period is resumed 240. Some time later, the second task execution completes 241, and the third task execution gets started 242. Still some time later, the MIGB is completely depleted 243. Still some time later, the third task execution completes early 244. The fourth task execution starts 245. Some time later, the GBM is also depleted 246, and hence the fourth task execution is suspended 247. Still some time later, the period terminates 248. In this second period, two task executions completed.
The two timelines 210 and 230 show that the situation can be very different depending on the budget period, but that a short task execution does not necessarily free up the GBM when the task executes asynchronously.
According to one aspect of the present invention, the provision of a Conditionally Guaranteed Budget Margin (e.g., an amount of resources allocated to a task that is above and beyond the amount budgeted for the task, which is not necessarily guaranteed to be available for every budget period, but rather its availability is dependent on some other factor) is implicit. In contrast, the allocation is always explicit. The per-period provision is implicit. According to another aspect of the present invention, if the More Important Task (MET) does not use its Guaranteed Budget Margin, the Less Important Task receives the MITs Guaranteed Budget Margin. This can lead to the following problem. Even though the More Important Guaranteed Budget (MIGB) is on average sufficient for the MIT, the budget consumption of the MIT may still exceed the More Important Guaranteed Budget during certain budget periods (such as during transient high loads for synchronous tasks, 207-208, and when a next task execution is ready to start for asynchronous tasks 213 and 243). In these periods, the MIT will use part of its Guaranteed Budget Margin, and the LIT will receive less than its Conditionally Guaranteed Budget Margin.
There is a second related problem, which occurs with asynchronous processing only. An asynchronous task is unable to restrain its budget use, precisely because it is asynchronous. Load Estimation and load adjustment
MITs with synchronous behavior are sometimes able to estimate the amount of work to be done before doing the work, and subsequently process the data in such a way (i.e., at such a quality level) that the work is completed before the budget is fully depleted. MITs with asynchronous behavior typically measure the amount of progress made, and subsequently adjust the quality level of processing data to avoid missing deadlines. In both cases, the MIT keeps track of how well the budgets fit its needs. This capability can be used to request the allocation manager to adjust the budgets.
In general, to the above elements and functions, the present invention employs inter alia conditionally guaranteed budget margins (CGBMs) associated with tasks assigned relative importance.
According to one aspect of the present invention, the MIT and the LIT are explicitly informed of their budgets. Thus, the MIT can therefore restrain its budget usage to the budget without margin.
According to another aspect of the present invention a More Important Task (MIT) voluntarily restraints its budget usage to a budget without margin, and explicitly decides to use or not use the margin when needed. The More Important Task informs its environment (e.g., the allocation mechanism or the scheduler or a budget monitor) about the decision. The Less Important Task (LIT) gets informed that it will or will not receive its CGBM (either directly from the MIT or indirectly through another agent). This decision is not necessarily intended to be made on a per-budget basis, but usually much less frequently. Moreover, the decision is not always made at a budget boundary either. This decision is typically made at the start of a new task execution. Restraining the budget use is not sufficient. An asynchronous task is unable to stop executing when the MIGB is depleted, and the GBM is still available. An asynchronous task is unable to detect this transition. Therefore, a second aspect of the present invention is that while the MIT initiates the budget restriction, the scheduler actually performs it by constraining the MIT to its MIGB.
Turning to
A second task is assigned to be a Less Important Task (element 62). The second task is merely a task that is considered to be a lower priority (i.e, lower relative importance) than the first task, however, the second task may also be a higher priority (i.e., higher relative importance) task than some other task or tasks.
A Guaranteed Budget Margin is then allocated to the More Important Task along with a More Important Guaranteed Budget, and The MIT is informed of that allocation (element 63). A More Important Guaranteed Budget is the amount of resources or other limited availability items set aside for use by the first task. The Guaranteed Budget Margin is the amount of resources or other limited availability items set aside for use by the first task above and beyond the More Important Guaranteed Budget in case needed by the first task.
A Less Important Guaranteed Budget is also allocated to the Less Important Task and the LIT is informed of that allocation (element 64). The Less Important Guaranteed Budget is the amount of resources or other limited availability items set aside for use by the second lower priority task. In addition, a Conditionally Guaranteed Budget Margin is conditionally allocated to the second task, which is informed of that allocation (element 65).
At some point during execution, the higher priority or More Important Task may determine that the More Important Task no longer requires the Guaranteed Budget Margin in the subsequent budget periods (element 66). This can occur because the higher priority task monitors its usage of budget items, and can predict its needs during a given budget cycle. A message is then sent that the More Important Task does not require its Guaranteed Budget Margin (element 67). This message can originate with the MIT or from some other process, such as a scheduler or a conditional budget monitor. However, the only one that can send this message is the one that detects that the GBM is no longer needed. The most likely candidate for sending this message is the MIT. In case of a synchronous MIT, it could be the scheduler. In the embodiments presented here, the MIT is the one that detects the fact and sends the message. If another party does this, the MIT has to be informed as well.
If the higher priority or More Important Task or some other task indicates that the MIT does not require the Guaranteed Budget Margin, the conditionally allocated Conditionally Guaranteed Budget Margin can then be provided to the Less Important Task (element 68). The Conditionally Guaranteed Budget Margin is the amount of resources or other limited availability items set aside for use by the second task above and beyond the Less Important Guaranteed Budget in case needed by the second task, but which amount is only provided when not needed elsewhere, such as by the higher priority or More Important Task.
Once the message is sent, it is important that the More Important Task really does not use its GBM, in whole or in part, during all budget cycles, in order to guarantee the CGBM to the second task in every budget cycle, until CGBM is explicitly withdrawn.
At some other point during execution, the higher priority or More Important Task may determine that the More Important Task again requires the Guaranteed Budget Margin in the subsequent budget cycles (element 69). A message is then sent that the More Important Task does require its Guaranteed Budget Margin (element 691). If the higher priority or More Important Task indicates that it does require its Guaranteed Budget Margin, the conditionally allocated Conditionally Guaranteed Budget Margin can no longer be provided to the Less Important Task, hence the CGBM is removed from the LIT and the GBM is provided to the MIT and the MIT and LIT are informed of these allocations (element 692). This process of requiring and not requiring the GBM can be repeated several times, as indicated by the loop. In the embodiments herein, the control algorithm local to the higher priority task (e.g., the MIT) is extended in such a way that the control algorithm:
An MIT with synchronous behavior will be able to restrain itself during every budget period so that the Guaranteed Budget Margin is automatically provided to the lower priority task (e.g., the Less Important Task) (see elements 201-204,
In case the tasks can operate asynchronously, at run time, with the modified control algorithm in place, the following, modified budget allocation protocol ensures the desired budget transfer in two directions.
A: When the budgets are assigned by the allocation mechanism:
1. The allocation mechanism explicitly informs the MIT about its More Important Guaranteed Budget and Guaranteed Budget Margin (see element 63,
2. The allocation mechanism explicitly informs the Less Important Task about its Less Important Guaranteed Budget and Conditionally Guaranteed Budget Margin (see element 64,
3. The scheduler provides the More Important Guaranteed Budget+Guaranteed Budget Margin to the MIT at the first possible occasion (see element 63,
4. The scheduler provides the Less Important Guaranteed Budget to the LIT at the first possible occasion (see element 68,
B: When the MIT does not require its budget margin:
1. At some point during execution, the MIT observes that it can do its job with its More Important Guaranteed Budget only (see element 66,
2. The MIT explicitly informs the scheduler that it does not require its Guaranteed Budget Margin (see element 67,
3. The scheduler stops providing the Guaranteed Budget Margin to the MIT at the first possible occasion (part of element 67,
4. The scheduler starts providing the Conditionally Guaranteed Budget Margin to the LIT at the first possible occasion, which may or may not be instantaneous; depending on the application (see element 68);
5. The scheduler informs the LIT of this additional budget provision (element 68).
C: When MIT requires its budget margin again:
1. At some point during execution, the MIT observes that it requires its Guaranteed Budget Margin as well (element 69);
2. The MIT explicitly informs the scheduler that it does require its Guaranteed Budget Margin (element 691);
3. The scheduler informs the LIT that Conditionally Guaranteed Budget Margin will be withdrawn (element 692);
4. The scheduler stops providing the Conditionally Guaranteed Budget Margin to the LIT at the first possible occasion (part of element 692);
5. The scheduler starts providing the Guaranteed Budget Margin to the MIT at the first possible occasion (part of element 692).
Note that the LIT is informed of a budget decrease before the decrease takes place. The LIT is informed of a budget increase after the increase has taken place. The LIT cannot influence the change in any way.
A second task 115 has a second priority level lower than the first priority level. This lower priority task (or Less Important Task) 115 can include either a task external to the operating system 110 or internal to the operating system 110. Moreover, the second task 115 is merely lower in priority than the first task 114, but could even be the second most important task to be executed. In these two paragraphs all priorities are relative importance.
An allocation mechanism 112 is included to allocate budgets of resources among the various tasks 114, 115 to be performed by the operating system 110. According to one aspect of the present invention, the allocation mechanism 112 explicitly informs the first task 114 about a More Important Guaranteed Budget and a Guaranteed Budget Margin. The. More Important Guaranteed Budget is the amount of resources or other limited availability items set aside for use by the first task 114. The Guaranteed Budget Margin is the amount of resources or other limited availability items set aside for use by the first task 114 above and beyond the More Important Guaranteed Budget in case needed by the first task 114. The allocation mechanism 112 also explicitly informs the second task 115 about a Less Important Guaranteed Budget and a Conditionally Guaranteed Budget Margin. The Less Important Guaranteed Budget is the amount of resources or other limited availability items set aside for use by the second or lower priority task 115.
A scheduler 113 controls provisioning of the budgeted amounts of resources to the various tasks 114, 115 to be performed by the operating system 110, including the first task 114 and the second task 115. The scheduler 113 provides the More Important Guaranteed Budget plus the Guaranteed Budget Margin to the first task 114 at a first possible occasion. The scheduler also provides the Less Important Guaranteed Budget to the second task 115 at a first possible occasion.
If the first task 114 determines at some point during execution that the first task 114 can execute properly with the More Important Guaranteed Budget only, the first task 114 explicitly informs the scheduler 113 that the first task 114 does not require its Guaranteed Budget Margin. In this case, the scheduler 113 stops providing the Guaranteed Budget Margin to the first task 114 at a first possible occasion and starts providing the Conditionally Guaranteed Budget Margin to the second task 115 at a first possible occasion. After this, the scheduler 112 informs the second task 115 of the granting of the Conditionally Guaranteed Budget Margin.
The Conditionally Guaranteed Budget Margin is the amount of resources or other limited availability items set aside for use by the second task 115 above and beyond the Less Important Guaranteed Budget in case needed by the second task 115, but which amount is only provided when not needed elsewhere, such as by the higher priority or More Important Task 114.
Subsequently, the first task 114 may determine at some point during execution that the first task 114 requires the Guaranteed Budget Margin as well, in which case the first task 114 explicitly informs the scheduler 113 that the first task 114 does require its Guaranteed Budget Margin. The scheduler 113 then informs the second task 115 that the Conditionally Guaranteed Budget Margin will be withdrawn, the scheduler 113 stops providing the Conditionally Guaranteed Budget Margin to the second task 113 at a first possible occasion and the scheduler 113 starts providing the Guaranteed Budget Margin to the first task 114 at a first possible occasion.
An application manager 111 assigns and de-assigns the MIT role to a given task (elements 11 and 14 of
Turning to
Turning to
Turning to
Turning to
Turning to
Turning to
Turning to
Turning to
Turning to
Turning to
First, the relative priorities must be established. The allocation mechanism or some other process assigns the levels of priorities to the two tasks. One of these tasks is assigned to be the More Important Task 182, in which case the allocation mechanism may inform this process of its priority designation. The other of these tasks is assigned to be the Less Important Task 184, in which case the allocation mechanism may inform this process of its priority designation. The order in which the tasks are assigned priorities is not necessarily important. For example, the lower priority task could be assigned first, hence element 184 could occur prior to element 182.
Once the priorities are assigned, each of the tasks is explicitly informed of its budget. For example, the allocation mechanism explicitly informs the MIT about the More Important Guaranteed Budget and the Guaranteed Budget Margin 183. The allocation mechanism also explicitly informs the LIT about the Less Important Guaranteed Budget 185 and the Conditionally Guaranteed Budget Margin. The order of processes 183 and 185 is not important other than each of them must occur after assignment of the relative priorities. Moreover, the informing of MIT budgets can occur immediately after the assignment of the MIT or after all priorities have been assigned. The informing of the LIT budget can occur before or after the informing of the MIT budget. The only requirement is that the informing of the budgets can only occur after assignment of the relative priorities.
After informing the MIT about its budget, the scheduler provides the More Important Guaranteed Budget plus the Guaranteed Budget Margin to the MIT at the first possible occasion 186. This provisioning of the MIT budget can occur before or after the informing the LIT about the Less Important Guaranteed Budget, and might even occur as early as immediately following assignment of the relative priorities to enable the MIT to begin using the MIT budget upon being so informed.
Subsequent to provisioning the MIT budget, the scheduler provides the Less Important Guaranteed Budget to the LIT at the first possible occasion 187. This will normally occur after the provisioning of the MIT budget due to the relative priorities of the two tasks, but could occur as early as following assignment of the relative priorities to enable the LIT to begin using the LIT budget upon being so informed.
At some point during execution, the MIT may observes that it can do its job with its More Important Guaranteed Budget only, in which case the MIT informs the scheduler of this observation 188. This can only occur after provisioning of the MIT budgets, but could occur at any point thereafter in the budget period. For simplicity purposes, the observation and the informing of the scheduler are shown as a single element, but they could be separated in time.
Once informed about the MIT's observation, the scheduler stops providing the Guaranteed Budget Margin to the MIT at the first possible occasion 189. This most likely will occur immediately following receipt of the information by the scheduler to enable use of the Guaranteed Budget Margin as early as possible. Once this condition (i.e., that the MIT does not require the Guaranteed Budget Margin) is determined to exist by the MIT, the system should make use of the Guaranteed Budget Margin as quickly as possible because this condition may not exist forever (or at least for the remainder of the budget period).
Subsequent to stopping providing the Guaranteed Budget Margin to the MIT 189, the scheduler starts providing the Conditionally Guaranteed Budget Margin to the LIT at the first possible occasion 190. The scheduler then informs the LIT of this additional budget provision 191. Preferably this informing 191 should occur after provisioning of the Conditionally Guaranteed Budget Margin 190 so that the LIT can begin using the extra budget without delay, however, in some situations these two elements 190, 191 may occur in different order.
At some point during execution in the same budget period, the MIT may observes that it now requires its Guaranteed Budget Margin as well 192. This can occur at any time after element 188, and depending when thereafter some of the elements (i.e., 189, 190 and 191) may be affected. After this new determination, the MIT explicitly informs the scheduler that it does require its Guaranteed Budget Margin 192. As before, these two sub-steps may occur separated in time, however for simplicity purposes they are shown as a single element.
After receiving this information, the scheduler informs the LIT that Conditionally Guaranteed Budget Margin will be withdrawn 193. Typically, this should occur before the scheduler stops providing this budget margin to the LIT to prevent improper use of resources and to enable the LIT to adjust accordingly and enable a smooth transition.
The scheduler then stops providing the Conditionally Guaranteed Budget Margin to the LIT at the first possible occasion 194. The scheduler then starts providing the Guaranteed Budget Margin to the MIT at the first possible occasion 195. The scheduler should first stop providing the extra budget to the LIT before providing the MIT with the extra budget to prevent improper use of resources and to enable a smooth transition.
At some point in time, the process ends 196; however, several other iterations of the elements 188-195 could occur depending upon application specifics. Moreover, the MIT may never determine it does not need the Guaranteed Budget Margin 188, or the MIT may never determine it needs the Guaranteed Budget Margin 192 after determining it does not need the Guaranteed Budget Margin 188.
1. Between an explicit grant and an explicit withdrawal of the Conditionally Guaranteed Budget Margin, the LIT can really count on the CGBM. Without the present invention, an LIT can never really count on its Conditionally Guaranteed Budget Margin.
2. There is no need for a separate entity that detects the structural load increase, because a local control algorithm within the MIT application performs this detection as a by-product of its normal activity.
3. The local algorithm in the MIT can detect the structural load changes faster than a separate entity could, because it has a semantic interpretation for the resource usage measures.
4. Since the LIT is explicitly informed about the availability of Conditionally Guaranteed Budget Margin, the LIT can react faster and more smoothly to the change. This advantage is a direct consequence of the Modified Budget Allocation Protocol (step (b)) discussed earlier.
5. The MIT does not need to know the identity of the LIT; the MIT does not even need to know that there is an LIT.
The main advantage of the basic process (as described in
In case of a synchronous MIT, it is possible to achieve several of the advantages with a degenerated version of Modified Budget Allocation Protocol (step (b)) discussed earlier. According to yet another aspect of the present invention, an exemplary embodiment of a computer readable media has encoded thereon programming instructions that control a processor to perform the above-mentioned processes and methods. For example, the processor is caused to perform the methods set forth in
The use of the present invention can be traced because it requires explicit additional interfaces.
Additional MIT Interface:
Set_budgets(in MIGB_value: budget_type; in GBM_value: budget_type);//called by AM
Additional LIT Interface:
The above inventions are applicable to televisions, receivers, audio-video processors, digital processors, set-top boxes, and other consumer electronics.
Although various embodiments are specifically illustrated and described herein, it will be appreciated that modifications and variations of the invention are covered by the above teachings and are within the purview of the appended claims without departing from the spirit and intended scope of the invention. For example, certain terms and protocols are employed, however, other names and protocols could be used without departing from the scope of the present invention. Furthermore, this example should not be interpreted to limit the modifications and variations of the invention that are covered by the claims but is merely illustrative of possible variations.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB04/52397 | 11/11/2004 | WO | 5/12/2006 |
Number | Date | Country | |
---|---|---|---|
60519811 | Nov 2003 | US |