MULTILISP: a language for concurrent symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Actors: a model of concurrent computation in distributed systems
Actors: a model of concurrent computation in distributed systems
Concurrency features for the Trellis/Owl language
European conference on object-oriented programming on ECOOP '87
Synchronization primitives for a multiprocessor: a formal specification
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
Communications of the ACM
Firefly: A Multiprocessor Workstation
IEEE Transactions on Computers - Special issue on architectural support for programming languages and operating systems
Workcrews: an abstraction for controlling parallelism
International Journal of Parallel Programming
Experience with topaz telebugging
PADD '88 Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging
The portable common runtime approach to interoperability
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
The Amber system: parallel programming on a network of multiprocessors
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
Process control and scheduling issues for multiprogrammed shared-memory multiprocessors
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
The Performance Implications of Thread Management Alternatives for Shared-Memory Multiprocessors
IEEE Transactions on Computers
Performance of the Firefly RPC
ACM Transactions on Computer Systems (TOCS)
Processor scheduling in shared memory multiprocessors
SIGMETRICS '90 Proceedings of the 1990 ACM SIGMETRICS conference on Measurement and modeling of computer systems
Multi-model parallel programming in psyche
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
A methodology for implementing highly concurrent data structures
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
Empirical studies of competitve spinning for a shared-memory multiprocessor
SOSP '91 Proceedings of the thirteenth ACM symposium on Operating systems principles
First-class user-level threads
SOSP '91 Proceedings of the thirteenth ACM symposium on Operating systems principles
Experience with processes and monitors in Mesa
Communications of the ACM
The Effect of Scheduling Discipline on Spin Overhead in Shared Memory Parallel Systems
IEEE Transactions on Parallel and Distributed Systems
Making effective use of shared-memory multiprocessors: the process control approach
Making effective use of shared-memory multiprocessors: the process control approach
Performance issues in non-blocking synchronization on shared-memory multiprocessors
PODC '92 Proceedings of the eleventh annual ACM symposium on Principles of distributed computing
Application-controlled physical memory using external page-cache management
ASPLOS V Proceedings of the fifth international conference on Architectural support for programming languages and operating systems
Fast mutual exclusion for uniprocessors
ASPLOS V Proceedings of the fifth international conference on Architectural support for programming languages and operating systems
A dynamic processor allocation policy for multiprogrammed shared-memory multiprocessors
ACM Transactions on Computer Systems (TOCS)
Chores: enhanced run-time support for shared-memory parallel computing
ACM Transactions on Computer Systems (TOCS)
Using scheduler information to achieve optimal barrier synchronization performance
PPOPP '93 Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming
Recent trends in experimental operating systems research
PODC '93 Proceedings of the twelfth annual ACM symposium on Principles of distributed computing
A machine independent interface for lightweight threads
ACM SIGOPS Operating Systems Review
Tools for the development of application-specific virtual memory management
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Sharing and protection in a single-address-space operating system
ACM Transactions on Computer Systems (TOCS) - Special issue on computer architecture
Developing a reflective model of collaborative systems
ACM Transactions on Computer-Human Interaction (TOCHI)
SPIN—an extensible microkernel for application-specific operating system services
ACM SIGOPS Operating Systems Review
High performance synchronization algorithms for multiprogrammed multiprocessors
PPOPP '95 Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming
User-level threads on a general hardware interface
ACM SIGOPS Operating Systems Review
Extensibility safety and performance in the SPIN operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Optimistic incremental specialization: streamlining a commercial operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
ACM Transactions on Computer Systems (TOCS)
KDB: a multi-threaded debugger for multi-threaded applications
SPDT '96 Proceedings of the SIGMETRICS symposium on Parallel and distributed tools
Scheduler-conscious synchronization
ACM Transactions on Computer Systems (TOCS)
An efficient recovery-based spin lock protocol for preemptive shared-memory multiprocessors
PODC '96 Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing
Open implementation design guidelines
ICSE '97 Proceedings of the 19th international conference on Software engineering
An open implementation analysis and design for lightweight threads
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Dependence driven execution for multiprogrammed multiprocessor
ICS '98 Proceedings of the 12th international conference on Supercomputing
Interface and execution models in the Fluke kernel
OSDI '99 Proceedings of the third symposium on Operating systems design and implementation
Adaptive two-level thread management for fast MPI execution on shared memory machines
SC '99 Proceedings of the 1999 ACM/IEEE conference on Supercomputing
SAC '97 Proceedings of the 1997 ACM symposium on Applied computing
A programming model for active documents
UIST '00 Proceedings of the 13th annual ACM symposium on User interface software and technology
SEDA: an architecture for well-conditioned, scalable internet services
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
SPIN: an extensible microkernel for application-specific operating system services
EW 6 Proceedings of the 6th workshop on ACM SIGOPS European workshop: Matching operating systems to application needs
Meeting the application in user space
EW 6 Proceedings of the 6th workshop on ACM SIGOPS European workshop: Matching operating systems to application needs
Operating system performance and large servers
EW 6 Proceedings of the 6th workshop on ACM SIGOPS European workshop: Matching operating systems to application needs
Language- and application-oriented resource management for parallel architectures
EW 6 Proceedings of the 6th workshop on ACM SIGOPS European workshop: Matching operating systems to application needs
Proceedings of the 3rd international symposium on Memory management
Non-blocking timeout in scalable queue-based spin locks
Proceedings of the twenty-first annual symposium on Principles of distributed computing
Characterizing the Performance of Algorithms for Lock-Free Objects
IEEE Transactions on Computers
An Effective Processor Allocation Strategy for Multiprogrammed Shared-Memory Multiprocessors
IEEE Transactions on Parallel and Distributed Systems
Runtime support for collaborative air pollution models
Systems Analysis Modelling Simulation - Special issue: Applications of information systems in environmental modelling
Back to the future: a retroactive study of aspect evolution in operating system code
Proceedings of the 2nd international conference on Aspect-oriented software development
Implementation of Scalable Blocking Locks Using an Adaptive Thread Scheduler
IPPS '96 Proceedings of the 10th International Parallel Processing Symposium
IPPS '97 Proceedings of the 11th International Symposium on Parallel Processing
Integrating Kernel Activations in a Multithreaded Runtime System on Top of LINUX
IPDPS '00 Proceedings of the 15 IPDPS 2000 Workshops on Parallel and Distributed Processing
PANDA - Supporting Distributed Programming in C++
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
A Framework for Specializing Threads in Concurrent Run-Time Systems
LCR '98 Selected Papers from the 4th International Workshop on Languages, Compilers, and Run-Time Systems for Scalable Computers
Block Asynchronous I/O: A Flexible Infrastructure for User-Level Filesystems
HiPC '01 Proceedings of the 8th International Conference on High Performance Computing
Improving server software support for simultaneous multithreaded processors
Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming
Dynamic Processor Allocation with the Solaris Operating System
IPPS '98 Proceedings of the 12th. International Parallel Processing Symposium on International Parallel Processing Symposium
Capriccio: scalable threads for internet services
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects
IEEE Transactions on Parallel and Distributed Systems
Extending the Haskell foreign function interface with concurrency
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
ChucK: a programming language for on-the-fly, real-time audio synthesis and multimedia
Proceedings of the 12th annual ACM international conference on Multimedia
Using Phase Behavior in Scientific Application to Guide Linux Operating System Customization
IPDPS '05 Proceedings of the 19th IEEE International Parallel and Distributed Processing Symposium (IPDPS'05) - Workshop 10 - Volume 11
Thread coloring: a scheduler proposal from user to hardware threads
ACM SIGOPS Operating Systems Review
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
Multithreading in the Kylin Operating System for High End Computing
HPCASIA '05 Proceedings of the Eighth International Conference on High-Performance Computing in Asia-Pacific Region
Optimization aspects in network simulation
Proceedings of the 5th international conference on Aspect-oriented software development
K42: an infrastructure for operating system research
ACM SIGOPS Operating Systems Review
Signals, timers, and continuations for multithreaded user-level protocols
Software—Practice & Experience - Research Articles
Brittle systems will break - not bend: can aspect-oriented programming help?
EW 10 Proceedings of the 10th workshop on ACM SIGOPS European workshop
Selective early request termination for busy internet services
Proceedings of the 15th international conference on World Wide Web
Deferred locking with shadow transaction for client-server DBMSs
Journal of Systems Architecture: the EUROMICRO Journal
Hardware support for spin management in overcommitted virtual machines
Proceedings of the 15th international conference on Parallel architectures and compilation techniques
Making the "box" transparent: system call performance as a first-class result
ATEC '04 Proceedings of the annual conference on USENIX Annual Technical Conference
Lazy asynchronous I/O for event-driven servers
ATEC '04 Proceedings of the annual conference on USENIX Annual Technical Conference
Manticore: a heterogeneous parallel language
Proceedings of the 2007 workshop on Declarative aspects of multicore programming
The emergence of networking abstractions and techniques in TinyOS
NSDI'04 Proceedings of the 1st conference on Symposium on Networked Systems Design and Implementation - Volume 1
NSDI'05 Proceedings of the 2nd conference on Symposium on Networked Systems Design & Implementation - Volume 2
Evolving mach 3.0 to a migrating thread model
WTEC'94 Proceedings of the USENIX Winter 1994 Technical Conference on USENIX Winter 1994 Technical Conference
Towards scalable multiprocessor virtual machines
VM'04 Proceedings of the 3rd conference on Virtual Machine Research And Technology Symposium - Volume 3
Enabling scalability and performance in a large scale CMP environment
Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007
Kernel support for the Wisconsin wind tunnel
moas'93 USENIX Symposium on USENIX Microkernels and Other Kernel Architectures Symposium - Volume 4
AADL modeling and analysis of hierarchical schedulers
Proceedings of the 2007 ACM international conference on SIGAda annual international conference
30 seconds is not enough!: a study of operating system timer usage
Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008
Improving performance by embedding HPC applications in lightweight Xen domains
Proceedings of the 2nd workshop on System-level virtualization for high performance computing
Fair and timely scheduling via cooperative polling
Proceedings of the 4th ACM European conference on Computer systems
LFTHREADS: a lock-free thread library
ACM SIGARCH Computer Architecture News
The multikernel: a new OS architecture for scalable multicore systems
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Supporting per-processor local-allocation buffers using multi-processor restartable critical sections
Decoupling contention management from scheduling
Proceedings of the fifteenth edition of ASPLOS on Architectural support for programming languages and operating systems
LFTHREADS: a lock-free thread library
OPODIS'07 Proceedings of the 11th international conference on Principles of distributed systems
Janus: a cross-layer soft real-time architecture for virtualization
Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing
Proceedings of the 19th international conference on Parallel architectures and compilation techniques
FlexSC: flexible system call scheduling with exception-less system calls
OSDI'10 Proceedings of the 9th USENIX conference on Operating systems design and implementation
Exception-less system calls for event-driven servers
USENIXATC'11 Proceedings of the 2011 USENIX conference on USENIX annual technical conference
Preemption adaptivity in time-published queue-based spin locks
HiPC'05 Proceedings of the 12th international conference on High Performance Computing
BWS: balanced work stealing for time-sharing multicores
Proceedings of the 7th ACM european conference on Computer Systems
A case for coordinated resource management in heterogeneous multicore platforms
ISCA'10 Proceedings of the 2010 international conference on Computer Architecture
Operating system support for multimedia systems
Computer Communications
Application-specific thread schedulers for internet server applications
Concurrency and Computation: Practice & Experience
Molecule: using monadic and streaming I/O to compose process networks on the JVM
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Fair cooperative multithreading: typing termination in a higher-order concurrent imperative language
CONCUR'07 Proceedings of the 18th international conference on Concurrency Theory
Improving reactivity and communication overlap in MPI using a generic I/O manager
PVM/MPI'07 Proceedings of the 14th European conference on Recent Advances in Parallel Virtual Machine and Message Passing Interface
Arrakis: a case for the end of the empire
HotOS'13 Proceedings of the 14th USENIX conference on Hot Topics in Operating Systems
Proceedings of the 4th Asia-Pacific Workshop on Systems
A performance-aware quality of service-driven scheduler for multicore processors
ACM SIGBED Review - Special Issue on the 3rd Embedded Operating System Workshop (EWiLi 2013)
Hi-index | 0.00 |
Threads are the vehicle for concurrency in many approaches to parallel programming. Threads can be supported either by the operating system kernel or by user-level library code in the application address space, but neither approach has been fully satisfactory.This paper addresses this dilemma. First, we argue that the performance of kernel threads is inherently worse than that of user-level threads, rather than this being an artifact of existing implementations; managing parallelism at the user level is essential to high-performance parallel computing. Next, we argue that the problems encountered in integrating user-level threads with other system services is a consequence of the lack of kernel support for user-level threads provided by contemporary multiprocessor operating systems; kernel threads are the wrong abstraction on which to support user-level management of parallelism. Finally, we describe the design, implementation, and performance of a new kernel interface and user-level thread package that together provide the same functionality as kernel threads without compromising the performance and flexibility advantages of user-level management of parallelism.