Concurrent communication with multiple applications on a smart card
DCFirst Claim
1. A smart card operable to hold a plurality of applications, the smart card comprising:
- a memory, logically partitioned into a plurality of memory blocks;
a control program comprising;
allocation program code for dynamically allocating at least one memory block for at least one of the plurality of applications, in response to a declaration for the at least one application of the at least one application'"'"'s memory needs, and scheduler program code, responsive to the allocation program code and memory allocation, for scheduling applications for executions, wherein the at least one application is scheduled for execution only if the at least one application'"'"'s declared memory needs have been satisfied, the scheduler program code comprising code for scheduling execution of the at least one application to a predetermined granularity; and
a virtual machine in communication with the logically partitioned memory, for executing the at least one application.
5 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A smart card capable of having a plurality of applications has a memory that is logically partitioned into a plurality of memory blocks. A control program allocates one or more blocks to one of the applications, upon a declaration from the application of its memory needs, and schedules the applications for execution. Only those applications whose memory needs have been satisfied are scheduled. The control program receives a permission request packet from a host, addressed to an application, and passes the permission request packet to the application. When the control program receives a permission packet from the addressed application after the addressed application has had its declared memory needs satisfied, the control program sends the permission packet to the host. A virtual machine is used to execute one or more of the applications. The control program communicates with the virtual machine to control scheduling to predetermined time granularity. A swapper swaps data pages between the smart card'"'"'s memory, i.e., primary storage, and secondary storage in a host.
159 Citations
7 Claims
-
1. A smart card operable to hold a plurality of applications, the smart card comprising:
-
a memory, logically partitioned into a plurality of memory blocks;
a control program comprising;
allocation program code for dynamically allocating at least one memory block for at least one of the plurality of applications, in response to a declaration for the at least one application of the at least one application'"'"'s memory needs, and scheduler program code, responsive to the allocation program code and memory allocation, for scheduling applications for executions, wherein the at least one application is scheduled for execution only if the at least one application'"'"'s declared memory needs have been satisfied, the scheduler program code comprising code for scheduling execution of the at least one application to a predetermined granularity; and
a virtual machine in communication with the logically partitioned memory, for executing the at least one application. - View Dependent Claims (2, 3, 4)
program code for communicating with the virtual machine to control scheduling.
-
-
3. The smart card of claim 1, the control program code for scheduling comprising:
-
program code for counting the number of byte code instructions executed for the at least one application; and
program code for interrupting execution of the at least one application after a predetermined number of byte code instructions have been counted.
-
-
4. The smart card of claim 1, the control program for scheduling comprising:
-
program code for scheduling execution of one or more byte code instructions of the at least one application based on time to execute the one or more byte code instructions; and
program code for interrupting execution of the at least one application after the completion of the execution of the one or more byte code instructions.
-
-
5. A method for scheduling multiple applications on a smart card, the method comprising:
-
logically partitioning memory on the smart card into a plurality of memory blocks;
allocating at least one memory block for at least one of the applications, in response to a declaration from the at least one application of its memory needs;
in response to allocating, scheduling the at least one application for execution only if the at least one application'"'"'s declared memory needs have been satisfied thereby;
executing, in a virtual machine, the at least one application; and
communicating with the virtual machine to control scheduling to a predetermined granularity.
-
-
6. A smart card, comprising:
-
storage for a plurality of applications, each application comprising a plurality of byte code instructions;
a virtual machine, in communication with the storage, for executing one or more of the plurality of applications; and
a control program comprising scheduler program code, in communication with the virtual machine, for scheduling one or more of the applications for execution in accordance with a scheduling regime, the scheduler program code comprising granularity control program code for communicating with the virtual machine to control execution of one of the applications, in accordance with the scheduling regime, to a predetermined granularity;
wherein the predetermined granularity comprises;
program cede for controlling execution of the one scheduled application via the virtual machine based upon time to execute one or more byte code instructions of the one scheduled application;
program code for temporarily discontinuing the execution of the scheduled application after completion of the time to execute the one or more byte code instructions of the one scheduled application; and
program code for executing another scheduled application.
-
-
7. A smart card, comprising:
-
storage for a plurality of applications, each application comprising a plurality of byte code instructions;
a virtual machine, in communication with the storage, for executing one or more of the plurality of applications; and
a control program comprising scheduler program code, in communication with the virtual machine, for scheduling one or more of the applications for execution in accordance with a scheduling regime, the scheduler program code comprising granularity control program code for communicating with the virtual machine to control execution of one of the applications, in accordance with the scheduling regime, to a predetermined granularity;
wherein the predetermined granularity comprises;
program code for controlling execution of the one scheduled application via the virtual machine by counting byte code instructions executed by the one scheduled application;
program code for temporarily discontinuing execution of the one scheduled application after execution of a predetermined number of byte code instructions of the one scheduled application; and
program code for executing another scheduled application.
-
Specification