(Downloads - 0)
For more info about our services contact : help@bestpfe.com
Table of contents
1 Introduction
2 State of the art
2.1 The various forms of mobility
2.2 Uses of mobility
2.3 Differences between agent systems
2.3.1 Language
2.3.2 Memory models
2.3.3 Scheduling
2.3.4 Communication
2.3.5 Data handling
2.3.6 Security
2.4 Why we would need yet another mobile agent language
3 Language
3.1 Origins of ULM
3.1.1 Local thread scheduling
3.1.2 Migration
3.1.3 Non-determinism isolation
3.2 Features
3.2.1 Scheme embedding
3.2.2 Threads
3.2.3 Signals
3.2.4 Suspension
3.2.5 Weak Preemption
3.2.6 The integration of weak preemption in Scheme
3.2.7 The interaction between when, watch and finally
3.2.8 Exceptions
3.2.9 Migration
3.2.10 References
3.2.11 Mixins
3.2.12 Modules
3.3 Semantics
3.3.1 Notation
3.3.2 Evaluation
3.3.3 Scheduling
3.4 Implications of Migration
3.4.1 The parting of ways
3.4.2 Things that need more work
4 Implementation: Scheme
4.1 Two Virtual Machines
4.1.1 Why a virtual machine?
4.1.2 The first virtual machine
4.1.3 Why two (3?) virtual machines?
4.1.4 The Java VM
4.2 Bytecode compilation and interpretation
4.2.1 Some required introduction
4.2.2 Constants
4.2.3 Variable reference
4.2.4 Variable affectation
4.2.5 Conditional
4.2.6 Invocation
4.2.7 Abstraction
4.2.8 let, let* and letrec
4.2.9 Protection
4.2.10 Strong preemption
4.2.11 Miscellaneous bytecodes
4.3 The OULM file format
4.3.1 Overall Structure
4.3.2 Header
4.3.3 Constants
4.3.4 Module Information
4.3.5 Global Variables
4.3.6 Function Descriptors
4.3.7 Attributes
4.3.8 Example
5 Implementation: ULM
5.1 ULM bytecodes
5.1.1 Thread creation
5.1.2 Agent creation
5.1.3 Suspension
5.1.4 Weak preemption
5.1.5 A word about bytecodes vs. primitives
5.1.6 Signal Creation
5.1.7 Signal Emission
5.1.8 Signal Awaiting
5.1.9 Cooperation
5.1.10 Migration
5.1.11 References
5.2 Migration
5.2.1 Transporting agents
5.2.2 The use of modules for agents
5.2.3 What happens to data
5.2.4 What happens to the bytecode
5.3 Scheduling
5.3.1 The End of Action phase
5.3.2 Wait queues and their recycling
5.3.3 Fast lanes for simple waits
5.3.4 Planning weak preemption
5.3.5 Minimal End Of Instant
6 Native interface (s)
6.1 Syntax
6.2 Bigloo backend modules
6.3 Java backend modules
6.4 Reentry
6.4.1 Unifying protectors and exception handlers
7 Reactive Event Loop
7.1 Event loops and ULM
7.1.1 Presentation of the event loop
7.1.2 Why we need event loops
7.2 The new signals
7.2.1 The IO signal
7.2.2 The timeout signal
7.2.3 The idle signal
7.3 Example
7.3.1 Event Loop
7.3.2 Reactive Event Loop
7.4 Implementation
7.4.1 Which REL signals are watched?
7.4.2 The IO signals
7.4.3 The timeout signals
7.4.4 The idle signal
7.4.5 Integration with the EOI
7.4.6 Future improvements
7.5 Integrating two event loops
7.5.1 GTK
7.5.2 Swing
7.5.3 J2ME
7.6 Conclusion
8 Examples/Applications
8.1 Load balancing
8.2 Agents for reconfiguration
8.2.1 The motivations
8.2.2 The departure airport
8.2.3 The Fractal component transporter
9 Directions
9.1 Debug
9.1.1 Debugging the compiler
9.1.2 Debugging the VM
9.1.3 Debugging ULM programs
9.2 Other enhancements
9.2.1 A global garbage collector
9.2.2 Mixin enhancements
9.2.3 Miscellaneous enhancements
10 Conclusion
A LURC
A.1 Introduction
A.2 Lurc features
A.2.1 Different types of threads
A.2.2 Cooperative deterministic scheduling
A.2.3 Signals
A.2.4 Integrated syntax
A.2.5 Control blocks
A.2.6 Event loop integration
A.2.7 Garbage Collector
A.2.8 Modularity
A.3 Implementation
A.3.1 Threads
A.3.2 Scheduling
A.3.3 Syntactic sugar
A.4 Related work
A.4.1 POSIX threads
A.4.2 Event loops
A.4.3 GNU/Pth
A.4.4 Fair Threads
A.4.5 Reactive ML
A.4.6 ULM
A.5 Benchmarks
A.5.1 Pthread and GNU/Pth
A.5.2 LOFT and RML
A.5.3 Cellular Automata
A.6 Future directions
A.6.1 Reactive Event Loop
A.6.2 New semantics for SMP
A.7 Conclusion



