We have designed and implemented a light-weight process (thread) library ca
lled 'Lesser Bear' for SNIP computers. Lesser Bear has high portability and
thread-level parallelism. Creating UNIX processes as virtual processors an
d a memory-mapped file as a huge shared-memory space enables Lesser Bear to
execute threads in parallel. Lesser Bear requires exclusive operation betw
een peer virtual processors, and treats a shared-memory space as a critical
section for synchronization of threads. Therefore, thread functions of the
previous Lesser Bear are serialized. In this paper, we present a schedulin
g mechanism to execute thread functions in parallel. In the design of the p
roposed mechanism, we divide the entire shared-memory space into partial sp
aces for virtual processors, and prepare two queues (Protect Queue and Waiv
er Queue) for each partial space. We adopt an algorithm in which lock opera
tions are not necessary for enqueueing. This algorithm allows us to propose
a scheduling mechanism that can reduce the scheduling overhead. The mechan
ism is applied to Lesser Bear and evaluated by experimental results. Copyri
ght (C) 2001 John Wiley & Sons, Ltd.