EP0810522A2

A method and system for loading classes in read-only memory

Abstract

A method and system for providing an executable module having an address space for storing program data that is to reside in a read-only storage medium and an address space for storing program data that is to reside in a random access memory is herein described. The executable module represents Java classes that are structured for dynamic class loading. A static class loader is used to modify the class structure to accommodate static loading. The static class loader also identifies methods that contain unresolved symbolic references and data that varies during the execution of the module. These methods and data are identified in order to place them in the address space that resides in the random access memory. The static loader is beneficial in a distributed computing environment having a client computer that has little or no secondary storage thereby requiring applications to run entirely in random access memory. By lutilizing a read-only memory to store statically loadable classes, the random access memory is left available for other uses.

EP0810522A2, drawing sheet 1
Sheet 1 of 13

Term

Term ended

Projected expiry passed 22 May 2017, 9.3 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

4 claims: 3 independent, 1 dependent

  1. 1
    A method of operating a computer in a distributed computer system, the method comprising the steps of:storing in a memory a plurality of classes, each class including data and at least one method, each method including a plurality of bytecodes, a subset of said bytecodes including symbolic references to methods accessible by said computer;flagging, for each said class, said class' data when said class' data is modifiable by one of said class' methods;substituting, for each said symbolic reference to a specified method stored in said memory, said specified method's memory location;flagging, for each said method of each said class, said method when one of said method's bytecodes includes a symbolic reference to a method not stored in said memory;and providing an executable module including each said class, wherein each unflagged method and each unflagged data is to be stored in a read-only storage medium when executing said executable module, and each said flagged method and each said flagged data is to be stored in a read and write-enabled storage medium when executing said executable module.
  2. 2
    A method for operating a computer system, said method comprising the steps of:storing in a read-only memory device a browser module partitioned into a first submodule and a second submodule, each submodule including a plurality of instructions and data, said second submodule having a subset of said instructions and a subset of said data, said subset of instructions and subset of data including instructions and data that are modifiable during execution of said plurality of instructions;upon initiation of the computer system, storing the second submodule in a random access memory device;and executing the browser module to import information-content data and computer-executable modules, said imported data and said computer-executable modules stored in said random access memory device.
  3. 3
    In a distributed data processing system having a plurality of computers connected by a communications link, one of said computers comprising:a memory for storing a plurality of classes, each said class including a plurality of data and at least one method, each said method including a plurality of bytecodes, a first set of said bytecodes referencing methods stored in said memory, a second set of said bytecodes referencing methods accessible by said communications link;an offline class loader that flags, for each said class, said class' data when said class' data is modifiable by one of said class' methods, and that flags, for each said method of each said class, said method when one of said method's bytecodes includes a symbolic reference to a method not stored in said memory;and a linker for producing an executable module having a first portion and a second portion, the first portion including each of said class' method and said data flagged by said offline class loader, and a second portion including each of said class' methods and said data not in said first portion.