Abstract
This paper presents an implementation method of application-specific lightweight processes (threads). The main feature of this method is that the design of lightweight processes is done by using meta-level programming techniques. In this method, lightweight processes are implemented by using the concepts of microprocesses and virtual processors. A microprocess is an application-level (user-level) lightweight process and it is included in a regular (heavy weight) process. Microprocesses are executed by virtual processors which are provided by the operating system kernel. A virtual processor is an entry of a real processor which is assigned to an application process by the kernel. In this method, a virtual processor is regarded as a meta-lightweight process of user-level lightweight processes. Application programmers can describe the behavior of lightweight processes at the meta-level as well as at the base lightweight process level. In other words, application programmers can control lightweight processes by dealing with virtual processors. Each virtual processor has its own private areas of memory. These areas correspond to the lightweight-process-specific data areas, and they are used to store the identifier of the virtual processor, the variables and the stack of the lightweight process scheduler. At the meta-level, events for state transitions of lightweight processes are recorded, and they are used to tune performance.
Original language | English |
---|---|
Pages (from-to) | 1429-1454 |
Number of pages | 26 |
Journal | Parallel Computing |
Volume | 22 |
Issue number | 11 |
Publication status | Published - 1997 Jan 1 |
Keywords
- Lightweight processes
- Meta-level programming
- Operating systems
- Shared-memory multiprocessors
- Threads
- Virtual processors
ASJC Scopus subject areas
- Software
- Theoretical Computer Science
- Hardware and Architecture
- Computer Networks and Communications
- Computer Graphics and Computer-Aided Design
- Artificial Intelligence