To address the problems of multitasking understanding and portability within the small systems world, I propose a series of three short articles in which the reader actually builds his or her own portable multitasking environment.
The articles, each which could stand alone, will address two important needs of the mini- and micro-computer world:
My series, then, will explain the programming concepts and constructs of a multitasking environment, and construct a general-purpose multitasking environment which is portable to most stack-based languages and computers.
Build A Portable Multitasking Environment in ``C'' will be divided into three articles: Switching Contexts, Organizing a Task Force, and Managing Resources. The code for the multitasking environment is already designed and suitable for distribution on BIX. To date, the code for the first article runs successfully on both MS-DOS and UNIX operating systems (see the UNIX ``man'' page (enclosed) for a brief synopsis of what it does). With it alone, the reader can write programs which have multiple threads of execution and are portable between MS-DOS and UNIX. Though this in itself is a major achievement, the code also serves as an important addition to both operating systems (MS-DOS provides no concurrency mechanisms and UNIX provides no or little shared memory).
(See the outline and sample text (enclosed) for more information about the first article.)
I have come to write this package for the same reason I expect your readers will be interested in it. I am one of your regular subscribers and an undergraduate at MIT. Funded by a competitive research grant from the Institute, I am developing a distributed operating system for heterogeneous small-systems environments. The operating system requires a solid but portable multitasking basis.
If you decide to go with this article (or perhaps the series), I look forward to working with you so that I can tailor the article to your requirements.
Sincerely,