TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Craig Swanson
from: Mike Bilow
date: 1996-01-26 13:55:08
subject: thread safe

Craig Swanson wrote in a message to Phil Crown:

 CS> It is possible that OS/2 applications will sometimes execute
 CS> on SMP (symmetric multiprocessing) systems.  In this case,
 CS> it is entirely possible that "same time" will be literally
 CS> true as one thread can be running on each CPU, meaning
 CS> multiple threads are literally running simultaneously.

OS/2 SMP never actually does this.  Any given page of code can only run in
one of the processors at a time, even if it is being called from multiple
threads. The main reason for this is that device driver code would get
extremely confused otherwise, since OS/2 internally uses the caller's
address to flag its blocking and return state.

 CS> Making code SMP-safe takes it one step further as you must
 CS> then consider that some practices that would be safe on a
 CS> single CPU system will not be safe on a multiple CPU system.
 CS>  For instance, a simple Intel x86 INC instruction used to
 CS> update a counter being handled by multiple threads would
 CS> need to have a LOCK prefix before it to make it SMP-safe.

The LOCK instruction has nothing to do with the other processor in SMP, but
simply reserves the bus.  It dates back to the 8086, which certainly had no
SMP support!  Rather, locks in SMP are exchanged logically within the
operating system.
 
-- Mike


--- 
* Origin: N1BEE BBS +1 401 944 8498 V.34/V.FC/V.32bis/HST16.8 (1:323/107)
SEEN-BY: 50/99 270/101 620/243 711/401 409 410 413 430 808 809 934 955
SEEN-BY: 712/407 515 517 628 713/888 800/1 7877/2809
@PATH: 323/107 170/400 396/1 270/101 712/515 711/808 809 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.