A plan for 3.8/4.0... (insert drumroll here)

Alan Grimes alangrimes at starpower.net
Mon Apr 5 17:51:01 UTC 2004


Chris Muller wrote:

>>The major improvment that I'm trying to work towards is SMP/SMT support. 
>>Squeak today is strictly single threaded...
>>    
>>

>Could this be done in a platform independent way?  I'm no expert with
>concurrent thread programming, but my impression is that instances of Process
>in Smalltalk are copmletely identical across platforms because they're just
>internal objects, not OS threads.  This is nice for portability, so OS-Thread
>support would be a different, *additional* thing available for use.  Is that right?
>  
>

It would be invisable to the user. It may require some relatively minor 
changes to the image, I don't know.

The actual thread implementation will depend on the threading library 
available on the platform.

Currently Squeak uses a Many:1 scheduler. It manages "many" processes 
and schedules them onto one interpreter. I propose to implement a 
Many:Many scheduler. There would be N interpreters for the number of 
available computing elements. In addition to these there would be 
"helper" threads that would be dedicated to IO tasks.

It is generally a bad idea to rely on the OS to be your primary 
scheduler because it may not always be available and because it is 
probably cleaner to implement scheduling within Squeak.

This will, ofcourse, require many improvments to the scheduler...



More information about the Squeak-dev mailing list