Sun Microsystems 2 Wireless Office Headset User Manual


 
22 Multitasking Guide May 2007
The Java Wireless Client software solves this problem by providing a set of resource
management mechanisms that can be used to control how resources are allocated.
The Java Wireless Client software also provides a set of resource management
policies that determine how the system behaves under certain conditions. These
policies can be customized to tailor the behavior of the system for a particular
deployment. Two example policies are also provided as a starting point for
customization. Finally, the implementation of resource mechanisms and policies
resides with the resource manager.
Resource Management Mechanisms
Java Wireless Client software has three resource management mechanisms:
reservation, limit, and revocation.
Reservation
The reservation mechanism sets aside a certain amount of a resource for a MIDlet
and keeps it available for that MIDlet and that MIDlet alone, regardless of whether
the MIDlet is using it at the moment. The reserved resource is never granted to
another MIDlet. If another MIDlet attempts to allocate the resource, it might fail,
even if the first MIDlet is not using all of its reservation.
Assume the heap memory available is 600 kilobytes, MIDlet A has a reservation of
400 kilobytes, but is currently using 250 kilobytes. 350 kilobytes of heap is unused.
However, only 200 kilobytes is actually available, because 150 kilobytes of the
unused heap is still reserved for MIDlet A. If MIDlet B starts and attempts to allocate
300 kilobytes of heap, it receives an out-of-memory error.
The reservation mechanism improves predictability and helps to prevent data
corruption.
MIDlets allocate and free resources (particularly memory) throughout their
operation. During a resource shortage, any allocation attempt might fail. These
failures might occur at an arbitrary time, even in the midst of an operation. If MIDlet
is provided with a reservation and is designed never to exceed this reservation, then
its allocation attempts will never fail. Instead, the resources for the reservation are
allocated at the time the MIDlet is started.
If there is a resource shortage, the failure will occur at startup time. Once the MIDlet
has been started, it is guaranteed not to fail because of a resource shortage. This
improves predictability because resource allocation failure occur only at startup
time, not at arbitrary times while the MIDlet is running.