POSIX programmer's guide: writing portable UNIX programs with the POSIX.1 standard
POSIX programmer's guide: writing portable UNIX programs with the POSIX.1 standard
Advanced programming in the UNIX environment
Advanced programming in the UNIX environment
Threads primer: a guide to multithreaded programming
Threads primer: a guide to multithreaded programming
Programming with threads
Programming with UNIX threads
Pthreads programming
Programming with POSIX threads
Programming with POSIX threads
Design of a separable transition-diagram compiler
Communications of the ACM
Multithreading Programming Techniques
Multithreading Programming Techniques
Thread Time: A Multi-Threaded Programming Guide with Cdrom
Thread Time: A Multi-Threaded Programming Guide with Cdrom
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
Converging CSP specifications and C++ programming via selective formalism
ACM Transactions on Embedded Computing Systems (TECS)
Java JNI Bridge: A Framework for Mixed Native ISA Execution
Proceedings of the International Symposium on Code Generation and Optimization
Abstractions for safe concurrent programming in networked embedded systems
Proceedings of the 4th international conference on Embedded networked sensor systems
Tasks: language support for event-driven programming
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Multi-threading and one-sided communication in parallel LU factorization
Proceedings of the 2007 ACM/IEEE conference on Supercomputing
ATC'07 2007 USENIX Annual Technical Conference on Proceedings of the USENIX Annual Technical Conference
ViPER: a lightweight approach to the simulation of distributed and embedded software
Proceedings of the 3rd International ICST Conference on Simulation Tools and Techniques
An OpenCL framework for heterogeneous multicores with local memory
Proceedings of the 19th international conference on Parallel architectures and compilation techniques
Fairness in shared invocation servicing
Computer Languages, Systems and Structures
MegaPipe: a new programming interface for scalable network I/O
OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation
Compiler support for lightweight context switching
ACM Transactions on Architecture and Code Optimization (TACO) - Special Issue on High-Performance Embedded Architectures and Compilers
RIOS: a lightweight task scheduler for embedded systems
Proceedings of the Workshop on Embedded and Cyber-Physical Systems Education
Hi-index | 0.00 |
This paper describes a pragmatic but portable fallback approach for creating and dispatching between the machine contexts of multiple threads of execution on Unix systems that lack a dedicated user-space context switching facility. Such a fallback approach for implementing machine contexts is a vital part of a user-space multithreading environment, if it has to achieve maximum portability across a wide range of Unix flavors. The approach is entirely based on standard Unix system facilities and ANSI-C language features and especially does not require any assembly code or platform specific tricks at all. The most interesting issue is the technique of creating the machine context for threads, which this paper explains in detail. The described approach closely follows the algorithm as implemented by the author for the popular user-space multithreading library GNU Portable Threads (GNU Pth, [25]) which this way quickly gained the status of one of the most portable user-space multithreading libraries.