| Mark Weiser, Alan Demers, and Carl Hauser. The Portable Common Runtime approach to interoperability. In Twelfth ACM Symposium on Operating Systems Principles, pages 114--122, December 1989. |
.... often precludes the use of memory leak detection tools like Purify [21] Use of custom allocators also precludes the option of later substituting a parallel allocator to provide SMP scalability [3] a garbage collector to protect against memory leaks [29] or a shared multi language heap [42]. However, custom memory allocators can provide some important software engineering benefits. The use of region based custom allocators in parsers and compilers (e.g. 176.gcc, lcc, and mudlle) simplifies memory management [20] Regions provide separate memory areas that a single call deletes in ....
Mark Weiser, Alan Demers, and Carl Hauser. The Portable Common Runtime approach to interoperability. In Twelfth ACM Symposium on Operating Systems Principles, pages 114--122, December 1989.
.... benefits of limiting the parallel execution demanded by applications to the available hardware parallelism suggests that a multiprocessor operating system like Mach can expect to spend much of its time in a condition where the number of threads and the number of processors roughly correspond [51, 54]. This makes the performance of the run queue per processor solution unacceptable for a multiprocessor operating system. This and the performance benefits of the idle processor queue (when there are fewer threads than processors) suggest that the global run queue plus idle queue alternative used ....
....library[12] and the Topaz system developed at Digital Equipment s System Research Center [4] Finally, the relatively new class of dual concurrency models introduces concurrency at both the system and user levels. One example of this is the Portable Common Runtime for Cedar developed at Xerox PARC[54]. The Unix implementation of this runtime limits the number of active virtual processors while allowing large numbers of multiroutines. The runtime converts most blocking operating system operations to their non blocking equivalents and blocks the multiroutine in the runtime system. Additional ....
Mark Weiser, Alan Demers, and Carl Hauser. The Portable Common Runtime Approach to Interoperability. In Proceedings of the 12th ACM Symposium on Operating System Principles, pages 114--122, December 1989.
....we believe that in most cases the best choice of multiprogramming policy for multiprocessors is dynamic hardware partitions. 3 Thread Scheduling Threads are a popular structuring method for parallel applications [Bershad et al. 1988; Doeppner Jr. 1987; Sun Microsystems, Inc. 1990; Weiser et al. 1989] and most man ufacturers of multiprocessors provide a lightweight thread package as part of the standard programming environment. There are several reasons for the popularity of threads including: Many applications decompose naturally into fine grain units of computation. Using a kernel process ....
M. Weiser, A. Demers, and C. Hauser, "The Portable Common Run- time Approach to Interoperability," In Proceedings of the 12th Sumposium on Operating Systems Principles, pages 114-122, December 1989.
....for all parallel programs. In response to the costs of kernel level threads, programmers have turned to lightweight threads that execute in the context of middleweight or heavyweight threads provided by the kernel, but are managed at the user level by a library linked in with each application [9, 38]. Lightweight thread management implies two level scheduling, since the application library schedules lightweight threads on top of weightier threads, which are themselves being scheduled by the kernel. Two level schedulers attack both the direct and indirect costs of kernel threads. Directly, it ....
WEISER, M. DEMERS, A., AND HAUSER, C. The portable common runtime approach to interoperability In Proceedirgs of the 12th ACM symposium on Operatrg Systerns PrncL ples. (Dec. 1989), 114-122. Received July 1990; revised February 1991; accepted February 1991
....and have most garbage collection work accomplished on the second processor. Similarly, collection activity can proceed while the mutator is inactive, for example, while performing I O. Boehm et al. also employ a garbage collector thread, implemented using the Portable Common Runtime (PCR) system [29]. This system supports userlevel threads multiplexed onto kernel threads created by federating one or more UNIX r # processes sharing a common address space to implement the PCR process abstraction. They report successful testing of the system with several such kernel threads , but their ....
Mark Weiser, Allan Demers, and Carl Hauser. The Portable Common Runtime approach to interoperability. In Proceedings of the 13th ACM Symposium on Operating Systems Principle, pages 114--122, December 1989. Published in ACM Operating Systems Review Vol.23, No.5.
....by running 2 to 8 times faster using foreign thread libraries instead of built in threading. Safe memory (de)allocation in a pre emptive multi threaded run time environment is assured by using a conservative memory management system that is designed to work with the thread libraries in question [BW88, WDH89]. Futhremore it is worth mentioning that it is easy for the user to switch between the co operative, built in threads and the foreign threads when writing a program. By importing the fthread module and linking the corresponding library, the standard classes thread and lock are simply redefined ....
M. Weiser, A. Demers, and C. Hauser. The portable common runtime approach to interoperability. In Proceedings of the ACM Symposium on Operating Systems Principles, pages 114--122, December 1989. Also published in ACM Operating Systems Review 23(5).
....cannot move reachable objects and patch the corresponding pointers because, a non pointer might be considered to be a pointer and would be mistakenly patched. However, in spite of these problems, there are cases for which a conservative approach is adequate, and sometimes the only that is feasible [124]. 2.3 Distributed GC Algorithms In this section we present the most interesting GC algorithms found in the literature for RPC based distributed systems 1 (i.e. with no support for persistence or DSM) These algorithms are extensions of the basic reference counting and tracing. 2.3.1 ....
Mark Weiser, Alan Demers, and Carl Hauser. The portable common runtime approach to interoperability. In Proceedings of the Twelfth Symposium on Operating Systems Principles, Litchfield Park, AZ (USA), December 1989. ACM Press.
....user level or in the kernel. Neither approach has been fully satisfactory. User level threads are managed by runtime library routines linked into each application so that thread management operations require no kernel intervention. The result can be excellent performance: in systems such as PCR [25] and FastThreads [2] the cost of user level thread operations is within an order of magnitude of the cost of a procedure call. User level threads are also flexible; they can be customized to the needs of the language or user without kernel modification. User level threads execute within the ....
....Our kernel eliminates the need for timeslicing by notifying the application thread system of the event while keeping the number of contexts constant. Some systems provide asynchronous kernel I O as a mechanism to solve some of the problems with user level thread management on multiprocessors [9, 25]. Indeed, our work has the flavor of an asynchronous I O system: when an I O request is made, the processor is returned to the application, and later, when the I O completes, the application is notified. There are two major differences between our work and traditional asynchronous I O systems, ....
WEISER, M., DEMERS, A., AND HAUSER, C. The portable common runtime approach to interoperability. In Proceedings of the 12th ACM Symposium on Operating Systems Principles (Litchfield Park, Ariz., Dec. 1989), pp. 114--122.
.... systems [17, 40] to represent asynchronous events that can be mapped onto single or multiple processors; they are used in language implementations to provide support for coroutines [39] Ada tasks [32] and parallel C method invocations [31] and they are used in generic runtime systems [15, 20, 46] to support fine grain parallelism, multithreading, and language interoperability. In light of their increasing use, the IEEE committee for Portable Operating System Interfaces for Computer Environments (POSIX) has adopted a standard interface for lightweight threads within a Unix process [25] ....
Mark Weiser, Alan Demers, and Carl Hauser. The portable common runtime approach to interoperability. ACM Symposium on Operating Systems Principles, pages 114--122, December 1989.
....for the thread and communication model is hard wired into the Poly ML runtime system, and is not designed for easy porting to different thread models or hardware platforms. Some existing concurrent systems do stress portability at the runtime system level. The Portable Common Runtime system (PCR) [37] offers portable and languageindependent facilities for threads, storage management, and other runtime system features. PCR s implementation of threads is similar to ours: user level threads are multiplexed on top of kernel threads. However, PCR does not allow the thread package or its scheduling ....
M. Weiser, A. Demers, and C. Hauser. The portable common runtime approach to interoperability. In Proceedings of the 12th ACM Symposium on Operating Systems Principles, pages 114--122, Dec. 1989.
....approach is the lack of closely coupled interoperation between programs written in di#erent languages. Closely coupled means that an application which is as real time or sophisticated as a device driver or a database management system might have di#erent parts written in di#erent languages [ Weiser et al. 1989 ] The parts could share data structures, an address space, and threads of control. RPC, even when local but across address spaces, is usually much more expensive than calls within the same address space. Another approach for supporting interoperability is the use of a common base language to ....
M. Weiser, A. Demers, and C. Hauser: "The Portable Common Runtime Approach to Interoperability," in Proceedings of the Twelfth Symposium on Operating Systems Principles, pp. 114--122, December 1989.
.... programming language, and in particular, of the primitives for parallelism and distribution, and of the memory model (central, distributed, with or without coherence) In order to prove this claim, we have built a library that implements the primitives of Quantum on top of the thread library PPCR [52] and the message passing library Nexus [13] Quantum is also integrated with Nexeme [32] a distributed implementation of Scheme [47] Internally, Quantum energy is modelled by counters that are decremented every time a thread is scheduled; asynchronous notifications inform the user of energy ....
....memory [42] are memory models that may be adopted with Quantum. 3 Implementation Description This section outlines the current implementation. First, it presents a solution in a non distributed setting, and then describes specific problems encountered when modifying the thread library PPCR [52]. Second, it covers the distributed aspects, and then specific problems encounteredwhen using the library for distribution Nexus [13] 3.1 Single Space Model The single space parallel model is rather simple. Although tasks may not be first class values in the adopted language (for instance, with ....
[Article contains additional citation context not shown here]
M. Weiser, A. Demers, and C. Hauser. The Portable Common Runtime Approach to Interoperability. In ACM Symposium on Operating System Principles, pages 114--122, December 1989.
....for the thread and communication model is hard wired into the Poly ML runtime system, and is not designed for easy porting to di erent thread models or hardware platforms. Some existing concurrent systems do stress portability at the runtime system level. The Portable Common Runtime system (PCR) [36] o ers portable and languageindependent facilities for threads, storage management, and other runtime system features. PCR s implementation of threads is similar to ours: user level threads are multiplexed on top of kernel threads. However, PCR does not allow the thread package or its scheduling ....
M. Weiser, A. Demers, and C. Hauser. The portable common runtime approach to interoperability. In Proceedings of the 12th ACM Symposium on Operating Systems Principles, pages 114-122, Dec. 1989.
.... is the concept of virtual PEs the difference being that the different code fragments can interact with each other with the mapping to physical PEs hidden in the runtime system [581] Examples include the multiprocessor implementation of concurrent C [124, 224] and various thread packages [130, 612, 59, 192, 87, 105, 55, 529]. The Psyche operating system on the BBN Butterfly provides a similar notion of virtual PEs at the operating system interface [510] Scheduling in Mach can also be interpreted in this light, with threads as virtual PEs that are executed by whatever number of physical PEs are assigned to the ....
....to duplicate the address space. Threads are not unique to Mach. The same abstractions are available in the OSF 1 operating system, which is based on Mach [437, 634] A similar notion of threads exists in Topaz [569] in PEACE [505, 506] in Panda [61] and in the Portable Common Runtime interface [612]. Variable weight threads, where some of the resources are allocated per thread rather then being shared, have also been proposed [27] This is used in the plan 9 system from AT T Bell Labs. Finally, threads have been included in the IEEE POSIX standard and implemented in the DCE framework from ....
[Article contains additional citation context not shown here]
M. Weiser, A. Demers, and C. Hauser, "The portable common runtime approach to interoperability ". In 12th Symp. Operating Systems Principles, pp. 114--122, Dec 1989.
....constant factor. In terms of policy, this search order means that smaller blocks are used in preference to larger ones, 74 This invariant can be useful in some kinds of systems, especially systems that provide persistence [SKW92] and or garbage collection for languages such as C or C [BW88, WDH89, WJ93] where pointers may point into the interior parts of objects, and it is important to be able to find the object headers quickly. In garbage collected systems, it is common to segregated objects by type, or by implementation level characteristics, to facilitate optimizations of type ....
Mark Weiser, Alan Demers, and Carl Hauser. The portable common runtime approach to interoperability. In Proceedings of the Twelfth Symposium on Operating Systems Principles, December 1989.
....have insufficient control over the hardware. Language runtime system (RTS) implementations are necessary because operating system abstractions are generally too low level for direct use by a language. The requirements on the operating system abstractions vary with the richness of the language (Weiser et al. 1989), so that it is difficult for a single set of abstractions to support all languages. In general, an RTS specialises the operating system abstract machine for use by a language. Most existing parallel language implementations multiplex their own process structure onto a smaller set of operating ....
....due to expense of process creation; overheads of operating system process context switching; blocking of all language runtime system tasks if one such task blocks in the operating system (Pierson, 1989; Halstead, 1989) Such language specific runtime environments inhibit language interaction. Weiser et al. 1989) listed the principal prerequisites for language interoperation as: a shared address space; symbolic name binding; shared I O; shared data representation. Their solution was to implement a language independent and operating system independent runtime system, which was designed to run on top of ....
Weiser, M., A. Demers, and C. Hauser (1989) The Portable Common Runtime Approach to Interoperability. Proc. 12th ACM Symp. on Operating System Principles, 114-122.
....provisions of the copyright laws protecting it. events that can be mapped onto single or multiple processors) they are used in language implementations [17, 19] to provide support for coroutines, Ada tasks, and C method invocations) and they are used in runtime systems for interoperability [4, 9, 27]. In light of their increasing use, many independent lightweight thread libraries have been designed and implemented for workstations and shared memory multiprocessors [1, 3, 19, 20, 24] In addition, the Portable Operating System Interfaces (POSIX) committee has adopted a standard interface ....
Mark Weiser, Alan Demers, and Carl Hauser. The portable common runtime approach to interoperability. ACM Symposium on Operating Systems Principles, pages 114--122, December 1989.
....more ingenious ways to a wider array of services. Look, for example, at recent advances in thread management. A number of researchers begin with the premise that kernel thread operations are necessarily expensive, and go on to describe the implementation of a user level threads package [17] 5] [33] [3] Since much of the work is now done at the user level by subscheduling one or more kernelsupplied threads, they can avoid many kernel invocations and their associated overhead. But there is a tradeoff: increased performance for operations at the user level come with increased overhead and ....
Mark Weiser, Alan Demers, and Carl Hauser. The Portable Common Runtime Approach to Interoperability. 140 In Proceedings of the 12th ACM Symposium on Operating Systems Principles, pages 114--122, Litchfield Park AZ (USA), December 1989. ACM.
....communicating activities. Rejuvenation use occurs in situations of exceptions; in such a case a corrupted thread can be discarded and a new one can be created in its place. User Level and Kernel Level Threads: Several thread management libraries such as FastThreads [Anderson et al. 1989] and PCR [Weiser et al. 1989] were developed in the late 1980s to support user level threads above traditional OS kernels that did not support threads. All scheduling and synchronization mechanisms were implemented at the user level, without involving the kernel. In contrast to kernel implemented threads, user level threads ....
Mark Weiser, Alan Demers, and Carl Hauser. The Portable Common Runtime Approach to Interoperability. In Proceedings of the 12'th ACM Symposium on Operating System Principles, pages 114--122, 1989.
....to protection in our environment. 3 Implementation The basic strategy we have adopted towards supporting multiple programming languages, each with extensions but in its own philosophy and religion, has been to identify a common layer above which language specific runtime features are built [22]. The common layer is generally called the generic runtime , although internally it is itself partitioned into a runtime layer and core services. The core services include support for the concurrency model and communication. Each supported language above the generic runtime requires interfacing ....
M. Weiser, A. Demers and C. Hauser "The Portable Common Runtime Approach to Interoperability ", Xerox PARC , March 1989.
....library and a Threads programming interface. Development began on a 12 processor SM Encore Multimax, first under Encore UMAX 4.3 with EPT Threads, and later under Mach with C Threads. It has since been ported to multiprocessor Solbourne SPARC servers under Solbourne OS MP 4. 1 and PCR Threads [WDH89] and most recently to multiprocessor Sun SPARCstations under Solaris 2.x and Solaris Threads. For a recent overview see [Kuc95] Parallel System Environment: S threads In the shared memory case, main requirements upon the system environment are to provide (logically) unrestricted parallelism, ....
Mark Weiser, Alan Demers, and Carl Hauser. The portable common runtime approach to interoperability. In 12th ACM SOSP, pages 114--122, 1989.
No context found.
Mark Weiser, Alan Demers, and Carl Hauser. The Portable Common Runtime approach to interoperability. In Twelfth ACM Symposium on Operating Systems Principles, pages 114--122, December 1989.
No context found.
Mark Weiser, Alan Demers, and Carl Hauser. The Portable Common Runtime approach to interoperability. In Twelfth ACM Symposium on Operating Systems Principles, December 1989.
No context found.
Mark Weiser, Alan Demers, and Carl Hauser. The Portable Common Runtime approach to interoperability. In Twelfth ACM Symposium on Operating Systems Principles. ACM Press, December 1989.
No context found.
Weiser, M., Demers, A., and Hauser, C. The Portable Common Runtime Approach to Interoperability. In Proceedings of the lth ACM Symposium on Operating Systems Principles, pages 114-122, December 1989.
First 50 documents
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC