| Eric C. Cooper. C threads. Technical Report CMU-CS-88-154, School of Computer Science, Carnegie Mellon University, 1988. |
....entities are referred to as multiroutines; they may be thought of as multiprocessor generalizations of coroutines. Special cases of multiroutines include coroutines (only one VP) and the common programming notion of multiple threads (one VP per multiroutine) as found in the Mach Cthreads library[12]. Multiroutines and virtual processors can be identified in any parallel programming language implementation or environment. An Ada runtime on Unix would employ Unix processes as its virtual processors and Ada tasks as its multiroutines. The Mach Cthreads library [12] employs Mach threads as ....
....in the Mach Cthreads library[12] Multiroutines and virtual processors can be identified in any parallel programming language implementation or environment. An Ada runtime on Unix would employ Unix processes as its virtual processors and Ada tasks as its multiroutines. The Mach Cthreads library [12] employs Mach threads as its virtual processors and Cthreads as its multiroutines. Programming models for parallel and concurrent programming can be classified based on the relationships among the numbers of multiroutines (MR) virtual processors (VP) and physical processors (PP) supported by ....
[Article contains additional citation context not shown here]
Eric C. Cooper and Richard P. Draves. C Threads. Technical Report CMU-CS-88-154, School of Computer Science, Carnegie Mellon University, June 1988. 107
.... [17] While this idea has caught on in sequential languages, and the use of goto has all but disappeared, most parallel languages still supply fork and join primitives instead of closed constructs; examples include Ada [30] and Concurrent C [32] In many cases, such as the C threads package [56] and MPC [14] the support for parallelism is limited to a direct interface to the run time system. Many other systems have no direct support for expressing parallelism within the language they assume a copy of the program is executed on each processor (the SPMD paradigm) 57] For example, ....
E. C. Cooper and R. P. Draves, C Threads. Technical Report CMU-CS-88-154, Dept. Computer Science, Carnegie-Mellon University, Jun 1988.
....space. Threads offered by the microkernel are much lighter than traditional Unix processes, so their use results in efficiency improvement. Several libraries provide lightweight user level threads and synchronization primitives on top of the microkernel abstractions (we have been using CThreads [COOP88]) 4 Tools: microkernel, user level libraries and PARMACS The implementation of PARMACS macros is based on a run time user level library that provides primitives for manipulating threads of control in support for multithreaded programming. This kind of libraries provide the possibility of having ....
"CThreads", E.C. Cooper and Richard P. Draves. Technical Report CMU-CS-88-154, School of Computer Science, Carnegie Mellon University, February 1988.
....high level abstractions can be profitably applied to such performance critical domains. The free use of these abstractions also leads to smaller and simpler systems and data structures. Besides providing an efficient multi threaded programming system similar to other lightweight thread systems[8, 9, 24], the liberal use of procedural and control abstractions provide added flexibility. First, advanced memory management techniques are facilitated. Second, Sting s pervasive use of continuation objects in implementing thread storage permits a variety of other storage optimizations not available ....
Eric Cooper and Richard Draves. C Threads. Technical Report CMU-CS-88-154, CarnegieMellon University, June.
....performed, grobner using the garbage collecting allocator exhibits speedups similar, but not quite as good, as the original version of the program. The difference is probably explained by the fact that norm grobner uses the default multi threaded allocator provided by the Mach Cthreads package [Cooper Draves 88] in which only threads competing for the same power of two free list must be synchronized, while all allocating threads compete for the same allocation lock in the garbage collecting allocator used by grobner. Section 12.2.1 suggests a possible method of avoiding allocation contention. The ....
Cooper, Eric C. and Draves, Richard P. C Threads. Technical Report CMU-CS-88-154, CMU, June, 1988.
....calls among facets, whether in the same or different processes. The implementation of inter facet communication is based on threads. There are many notions of thread, running a spectrum from light weight as in Mach s raw threads [Rashid 87] to medium weight as in Mach s C thread package [Cooper 88] to heavy weight as in a full Unix process [Bach 86] The common concept is that a thread has a single locus of control. What distinguishes the variety of threads is the degrees of ownership of context (registers, stack) data resources (address space) computation resources (processor time) and ....
Eric C. Cooper and Richard P. Draves. C Threads. Technical Report CMU-CS-88-154, Carnegie Mellon University Department of Computer Science, June, 1988.
.... 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 ....
....the underlying kernel threads are either each mapped onto a separate PE, or they are scheduled preemptively by the operating system. In turn, these threads sometimes referred to as virtual PEs execute the user threads. Examples of thread packages based on this approach include Cthreads [130], Presto [59, 192] FastThreads [21, 20] WorkCrews [597] Chant [252] Distributed Filaments [218] the Portable Common Runtime [612] the DIA thread library [105] some implementations of Concurrent C [124, 224] and the XERO system [286] It should be noted that this list is by no means ....
E. C. Cooper and R. P. Draves, C Threads. Technical Report CMU-CS-88-154, Dept. Computer Science, Carnegie-Mellon University, Jun 1988.
....parallel or distributed system can be elegantly defined. However, there has been little effort to investigate the role of these languages and their implementations within such contexts. One obvious way of integrating concurrency into a high level symbolic language is to use generic thread packages[4, 34] or operating system defined library routines. At first glance, such an approach appears to offer greater extensibility and generality than available within a high level language optimized for a particular paradigm. Efficiency and expressivity are compromised in several significant respects, ....
....benchmark indicates processor times when virtual topologies were used; the second row indicates times using a default round robin scheduler with no topology information. 6 Related Work Besides providing an efficient multi threaded programming system similar to other lightweight thread systems[4, 5, 24], Sting s liberal use of procedural and control abstractions provide added flexibility and important efficiency gains through improved temporal locality. Advanced memory management techniques are facilitated as a consequence of this design; TCB reuse, thread absorption, per thread garabage ....
Eric Cooper and Richard Draves. C Threads. Technical Report CMU-CS-88-154, Carnegie-Mellon University, June.
....among object fragments, thereby exploiting their application level knowledge about the semantics of object invocations and the communication patterns among object fragments. DSA support is implemented as a runtime library layered on top of a Mach compatible Cthreads package developed by our group[7, 33]. As a result, a parallel program written with the DSA library consists of a set of independent threads interacting via DSA objects. Implementation of a DSA object itself involves (1) the storage of object fragments (state and code) at participating processors and (2) communication between these ....
E. Cooper and R. Draves. C threads. Technical Report CMU-CS-88-154, Dept. of Computer Science, Carnegie Mellon University, June 1988.
....Here we assume that no two items are equal. ffl enqueue(H) fx j Both enq(x) and eok(x) are in Hg. Note, this is a partially ordered set with the relation r (see below) and we define the concept of chain as usual. 1 We implemented these instructions using mutex locks from the C threads package [1]. The informal specifications of the atomic instructions follow the style of Larch C interfaces. typedef struct elts elt item; an element in the queue struct elts next; pointer to the next element slotpt; typedef slotpt slot; typedef struct slot head, tail; first and last ....
Eric C. Cooper. C threads. Technical Report CMU-CS-88-154, School of Computer Science, Carnegie Mellon University, 1988.
....can be in the same domain, so the kernel will route processes of one architecture to the appropriate site, which supports the required architecture. 3. 4 Tasks and Threads A modern operating system manages the execution environments for the programs by providing multiple tasks and threads [CD88, Dea93, DBRD91] In 1 one or more processors, central memory, and attached I O devices 2 e.g. Ethernet, token rings, transputer links, hypercubes, or high speed busses earlier operating systems the unit of execution (threads) and the unit of resource allocation (tasks) were combined into a ....
Eric C. Cooper and Richard P. Draves. C Threads. Technical Report CMU-CS-88-154, School of Computer Science, Carnegie Mellon University, 1988.
....the granularity of complete operations. L2 states that this apparent sequential interleaving respects the real time precedence ordering of operations. 3. Structure of the Package 3.1. The Simulator The simulation package consists of several C functions stored in separate files. It uses C Threads [3] to create a user specifiable number of threads to simulate a MIMD system. C Threads is a run time library that provides a C language interface to a set of low level, language independent primitives for manipulating threads of control. We use these primitives to implement various atomic ....
Eric C. Cooper. C threads. Technical Report CMU-CS-88-154, School of Computer Science, Carnegie Mellon University, 1988.
....by blocking interrupts by calling spl functions. The primary means the Lites server threads synchronize by and protect global data from other threads is through locking. The locking primitives are mutex lock and mutex unlock which implement a binary semaphore together with condition variables [10]. 4.1. CONCURRENCY CONTROL 28 4.1.1 The Master Lock Nonparallelized parts of the server are protected by a master lock. The lock is always taken when a part of the server that is not known to handle finer level parallelism is entered. Currently this means almost all BSD derived code. As the ....
....handled all the way by a single server thread. Thus it is natural to make the proc invocation structure thread local. The structure is allocated on a cthread s stack when the thread is created. The pointer is stored and can be retrieved through the cthread set data cthread get data mechanism [10]. The retrieval of this pointer is highly optimized by the cthreads library and amounts only to a few machine instructions. While a server thread is not active the proc invocation is not in use but remains allocated. When a system call is started the invocation is linked to the corresponding ....
Eric C. Cooper and Richard P. Draves. C Threads. Technical Report CMU-CS-88-154, Carnegie Mellon University, February 1988.
....accesses. The limitations of the simulation motivated us to conduct a full implementation and further evaluations. 4 Implementation We have implemented our mechanism in UX42 [8] a BSD UNIX server running on Mach 3. 0 [1] UX42 resides in user space and is organized as a collection of C threads [5]. Most threads handle BSD system calls. Among the others are NFS [23] async daemons, which handle asynchronous NFS block I O requests. Since we expect that network file accesses would be the performance bottleneck in a client server architecture, we prefetch only NFS files opened for read. 0 10 ....
E. C. Cooper and R. P. Draves. C Threads. Technical Report CMU-CS-88-154, Carnegie Mellon University, June 1988.
....process switches because they need not involve virtual memory context switches. Similarly, local communication is reduced to accessing memory locations in the same address space. Some packages implement Copyright 1994 IEEE 0 8186 5680 8 94 03.00 the thread abstraction above the OS at user level [7, 8]. These user level thread packages further reduce the cost of thread operations by avoiding the need to enter the OS for thread scheduling and management. The lower cost of local communication and context switching for both user and OS level threads means that OD can be implemented efficiently. ....
Eric C. Cooper and Richard P. Draves. C Threads. Technical Report CMU-CS-88-154, School of Computer Science, Carnegie Mellon University, February 1988.
....user level threads build on top of kernel threads, which are considered as virtual processors. In this model, scheduling is done at user level, in a lighter and more efficient way. Nowadays, we can choose several libraries offering user level threads. In our system, we use the Cthreads library [COOP88], widely extended among mach users. With the arrival of user level threads emerge a new problem: the communication (or better, the lack of it) between the kernel and the user levels. Scheduling decisions taken at both levels can be conflicting and the so called two level scheduling problem ....
....application behavior through a greater control of the execution flow. 4. 3 Using an extended cthreads library In order to augment the application control over the way its cthreads execute, we use an extended version of the Cthreads library (which we call Cthreads ) The original Cthreads library [COOP88] offered a very simple FIFO mechanism to schedule user threads on top of virtual processors (i.e. kernel threads) This mechanism has very low overhead, but it also gives very low flexibility when scheduling user threads. To solve this problem, our group has extended the original library, adding ....
"CThreads", E.C. Cooper and Richard P. Draves. Technical Report CMU-CS-88-154, School of Computer Science, Carnegie Mellon University, February 1988.
....distribution of light in a scene using the iterative hierarchical diffuse radiosity method. TABLE 1. Some SPLASH 2 programs processes, so their use results in efficiency improvement [OSF93] The CThreads library for Mach 3. 0 provides lightweight user level threads and synchronization primitives [COOP88]. The SGI Power Challenge runs Irix 64 6.2, a Unix like operating system[SGI95] As Mach 3.0, Irix also supports multithreading, using sprocs. The sproc system allows the creation of processes which can share the same address space and file descriptors. Creation of sprocs is not so expensive as ....
E.C. Cooper and Richard P. Draves. "CThreads", Technical Report CMU-CS-88-154, School of Computer Science, Carnegie Mellon University, February 1988.
....in fine grained parallel programs. Unlike kernel level threads, user level threads are managed by runtime library routines linked to each application. Thread libraries enable application programs to use the thread management system which is most appropriate to the problem domain. Mach Cthreads [10], the University of Washington threads [11] SunOS LWP threads [8] C DAC PARAS CORE threads [6] and POSIX Pthreads [9] are a few popular thread models. Microkernel The microkernel is aimed at migrating traditional operating system services out of the monolithic kernel into the user level ....
E. Cooper and R. Draves, C Threads, Technical Report CMU-CS, Department of CSE, Carnegie Mellon University, June 1988.
No context found.
E. C. Cooper and R. P. Draves. C Threads. Technical Report CMU-CS-88-154, School of Computer Science, Carnegie Mellon University, February 1988.
....of mechanisms for the dynamic management. It is very easy to add new features to a user level scheduler. 5 Current Status We are currently implementing user level real time threads on RT Mach [11] As our first implementation of user level thread packages, we decided to modify C Threads package [3]. Since our implementation is upper compatible with the original C Threads package, applications using C Threads can also benefit from high performance of first class userlevel threads. Table 1 shows the performance of signal wait primitives RTC Threads C Threads RT Threads (user level) ....
E.C. Cooper and R.P. Draves. C Threads. Technical Report CMU-CS-88-154, School of Computer Science, Carnegie Mellon University, February 1988.
....by PA = minfP; 8 Gamma PA (cycler)g. Again, we find that one number, the normalized number of processes, predicts the utilization behavior. Moreover, it does so even when the program runs on a set of processors that grows and shrinks over time. 6 Related Work Though numerous threads libraries [11, 19, 24, 29] and multithreaded languages [3, 15, 17] have been developed, we are not aware of any besides Hood that do not suffer from the performance cliff. Like Hood, some of these libraries and languages are based on the two level scheduling model, with user level threads scheduled onto a pool of ....
Eric C. Cooper and Richard P. Draves. C Threads. Technical Report CMU-CS-88-154, School of Computer Science, Carnegie-Mellon University, June 1988.
No context found.
Eric C. Cooper. C threads. Technical Report CMU-CS-88-154, School of Computer Science, Carnegie Mellon University, 1988.
No context found.
Eric C. Cooper. C threads. Technical Report CMU-CS-88-154, School of Computer Science, Carnegie Mellon University, 1988.
No context found.
E. Cooper and R. Rashid. C Threads. Technical Report CMU-CS-88-154, Carnegie Mellon University, June 1988.
No context found.
E.C. Cooper and R.P. Draves. C threads. Technical Report CMU-CS-88--154, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, June 1988.
First 50 documents Next 50
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