[squeak-dev] [Update] New scheduler (Was: [ANN] A new scheduler + VM changes alpha-release)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[squeak-dev] [Update] New scheduler (Was: [ANN] A new scheduler + VM changes alpha-release)

Igor Stasenko
A new version is available on Mantis:
http://bugs.squeak.org/view.php?id=7345

- added an image boot sequence. Now its cleverly picks an appropriate
scheduler depending on VM.
- a process termination is rewritten,
- added a TerminateProcess exception , which could be used to perform
additional actions during process termination
  [ .... ] on: TerminateProcess do: [:ex | .... ]
- a process which is being terminated runs as active process. This is
to ensure, that any #ensure: / #on:do: / #ifCurtailed: blocks will run
in same environment as during normal execution.

Please evaluate :)

2009/5/1 Igor Stasenko <[hidden email]>:

> 2009/5/1 Andreas Raab <[hidden email]>:
>> Igor Stasenko wrote:
>>>
>>> I have built a new VM with closure support (VMMaker.dtl.120).
>>> A changeset can be loaded to VMMaker w/o changes, except changing the
>>> Interpreter class redefinition.
>>> All is needed is to add 3 class vars to Interpreter manually:
>>> ProcessActionIndex InterruptedProcessIndex InterruptProcessIndex
>>
>> Hm ... I compiled a VM with your changes but I can't recreate your results.
>> My results are more in the range of 15:1 to 20:1 in a before-after
>> comparison. Are you using the code from
>> http://bugs.squeak.org/view.php?id=7345 or something more elaborate by now?
>>
> Well, i made some shortcuts, like removing fallback handler and it
> improved a bit.
> I checked everything thoughoutly, and since performance degrades
> linearly with each introduced message send,
> i don't think its because of bogus code.
> The overhead is because we using interpreter to switch processes:
>  -removing process from a list
>  - adding process to a list
> etc etc.
>
> Of course, i could make an additional prims to speed things up for a
> little, like doing
>  LinkedList>>removeFirst:
>  LinkedList>>addLast:
> primitively.
> But i wouldn't care about it now. I want to explore the real benefits
> of having scheduling logic at language side - like reimplementing
> Delays, adding nicer process termination procedure (see my other
> thread) etc.
>
>> Cheers,
>>  - Andreas
>>
>>
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>



--
Best regards,
Igor Stasenko AKA sig.