Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
A structural view of the Cedar programming environment
ACM Transactions on Programming Languages and Systems (TOPLAS)
Software-controlled caches in the VMP multiprocessor
ISCA '86 Proceedings of the 13th annual international symposium on Computer architecture
Firefly: a multiprocessor workstation
ASPLOS II Proceedings of the second international conference on Architectual support for programming languages and operating systems
Using objects to design and build radar ESM systems
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
The design and implementation of distributed Smalltalk
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Garbage collection: an exercise in distributed, fault-tolerant programming
Garbage collection: an exercise in distributed, fault-tolerant programming
Distributed smalltalk: inheritance and reactiveness in distributed systems
Distributed smalltalk: inheritance and reactiveness in distributed systems
A real-time garbage collector based on the lifetimes of objects
Communications of the ACM
On-the-fly garbage collection: an exercise in cooperation
Communications of the ACM
Multiprocessing compactifying garbage collection
Communications of the ACM
The Apiary network architecture for knowledgeable systems
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Generation Scavenging: A non-disruptive high performance storage reclamation algorithm
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
SPUR: A VLSI Multiprocessor Workstation
SPUR: A VLSI Multiprocessor Workstation
SPUR Lisp: Design and Implementation
SPUR Lisp: Design and Implementation
Parallel generational garbage collection
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
The design and implementation of HoME
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
A survey of implementations of concurrent, parallel and distributed Smalltalk
ACM SIGPLAN Notices
Hosting an object heap on manycore hardware: an exploration
DLS '09 Proceedings of the 5th symposium on Dynamic languages
Hi-index | 0.00 |
We have adapted an interactive programming system (Smalltalk) to a multiprocessor (the Firefly). The task was not as difficult as might be expected, thanks to the application of three basic strategies: serialization, replication, and reorganization. Serialization of access to resources disallows concurrent access. Replication provides multiple instances of resources when they cannot or should not be serialized. Reorganization allows us to restructure part of the system when the other two strategies cannot be applied.We serialized I/O, memory allocation, garbage collection, and scheduling, we replicated the interpreter process, software caches, and a free-list, and we reorganized portions of the scheduling system to deal with some deep-seated assumptions. Our changes yielded a fairly low static overhead. We attribute our success to the choice of a small, flexible operating system, a set of constraints which simplified the problem, and the versality of the three strategies for dealing with concurrency. The current system has a moderate amount of overhead when parallelism is being used—25% to 65%. It is acceptable, but we believe it can be improved.