Re: [Staff] [Ideas] Primitive Multithreading
Posted: Sat 30 May, 2009 2:43 am
As long as nobody minds terribly, I'm going to take a moment to plug my own project and ponder the possiblity of threading it.
I'm sure some of you have seen LIFOS at some point. In short, I seem to have a nice dynamic memory allocation scheme in the works.
The bonus here is that it could easily be extended to allocate stack segments for threads- programs can specify the amount of safe RAM they need at launch time, which is allocated accordingly. The loader then goes through, finding any references to this 'Data Segment', and modifying the references so they point to the newly allocated memory. It would be trivial to add support for allocating a stack segment at runtime.
The use of this? No worries about programs screwing with saferam for other threads, and the threading implementation is a facet of IM 1, saving memory (for the LUT) and just simplifying the programmer's effort (yes, it's incredibly difficult to call Multithread.Init).
I'm sure some of you have seen LIFOS at some point. In short, I seem to have a nice dynamic memory allocation scheme in the works.
The bonus here is that it could easily be extended to allocate stack segments for threads- programs can specify the amount of safe RAM they need at launch time, which is allocated accordingly. The loader then goes through, finding any references to this 'Data Segment', and modifying the references so they point to the newly allocated memory. It would be trivial to add support for allocating a stack segment at runtime.
The use of this? No worries about programs screwing with saferam for other threads, and the threading implementation is a facet of IM 1, saving memory (for the LUT) and just simplifying the programmer's effort (yes, it's incredibly difficult to call Multithread.Init).