Continuation-Based Multiprocessing. Wand, M. Higher-Order and Symbolic Computation, 12(3):285-299, October, 1999. Originally appeared in the 1980 Lisp ConferencePaper abstract bibtex Any multiprocessing facility must include three features: elementary exclusion, data protection, and process saving. While elementary exclusion must rest on some hardware facility (e.g. a test-and-set instruction), the other two requirements are fulfilled by features already present in applicative languages. Data protection may be obtained through the use of procedures (closures or funargs), and process saving may be obtained through the use of the CATCH operator. The use of CATCH, in particular, allows an elegant treatment of process saving.
We demonstrate these techniques by writing the kernel and some modules for a multiprocessing system. The kernel is very small. Many functions which one would normally expect to find inside the kernel are completely decentralized. We consider the implementation of other schedulers, interrupts, and the implications of these ideas for language design.
This paper originally appeared in the 1980 Lisp Conference.
@Article{Wand99b,
author = {Mitchell Wand},
title = {Continuation-Based Multiprocessing},
journal = {Higher-Order and Symbolic Computation},
year = 1999,
volume = 12,
number = 3,
month = oct,
pages = {285-299},
note = {Originally appeared in the 1980 Lisp Conference},
URL = ftpdir # {hosc-99.ps},
abstract = {Any multiprocessing facility must include three features:
elementary exclusion, data protection, and process saving.
While elementary exclusion must rest on some hardware
facility (e.g. a test-and-set instruction), the other two
requirements are fulfilled by features already present
in applicative languages. Data protection may be obtained through
the use of procedures (closures or funargs), and process
saving may be obtained through the use of the CATCH operator.
The use of CATCH, in particular, allows an elegant
treatment of process saving.
<p> We demonstrate these techniques by writing the kernel and
some modules for a multiprocessing system. The kernel is very
small. Many functions which one would normally expect to find
inside the kernel are completely decentralized. We consider
the implementation of other schedulers, interrupts, and the
implications of these ideas for language design.
<p>This paper originally appeared in the 1980 Lisp Conference.},
source = {papers/lfp-80/revised/kmulti.tex}
}
Downloads: 0
{"_id":"EEihtcBzkGAszXPYL","bibbaseid":"wand-continuationbasedmultiprocessing-1999","downloads":0,"creationDate":"2017-04-23T20:31:12.596Z","title":"Continuation-Based Multiprocessing","author_short":["Wand, M."],"year":1999,"bibtype":"article","biburl":"http://www.ccs.neu.edu/home/wand/Bibliography.bib","bibdata":{"bibtype":"article","type":"article","author":[{"firstnames":["Mitchell"],"propositions":[],"lastnames":["Wand"],"suffixes":[]}],"title":"Continuation-Based Multiprocessing","journal":"Higher-Order and Symbolic Computation","year":"1999","volume":"12","number":"3","month":"October","pages":"285-299","note":"Originally appeared in the 1980 Lisp Conference","url":"ftp://ftp.ccs.neu.edu/pub/people/wand/papers/hosc-99.ps","abstract":"Any multiprocessing facility must include three features: elementary exclusion, data protection, and process saving. While elementary exclusion must rest on some hardware facility (e.g. a test-and-set instruction), the other two requirements are fulfilled by features already present in applicative languages. Data protection may be obtained through the use of procedures (closures or funargs), and process saving may be obtained through the use of the CATCH operator. The use of CATCH, in particular, allows an elegant treatment of process saving. <p> We demonstrate these techniques by writing the kernel and some modules for a multiprocessing system. The kernel is very small. Many functions which one would normally expect to find inside the kernel are completely decentralized. We consider the implementation of other schedulers, interrupts, and the implications of these ideas for language design. <p>This paper originally appeared in the 1980 Lisp Conference.","source":"papers/lfp-80/revised/kmulti.tex","bibtex":"@Article{Wand99b,\n author = \t {Mitchell Wand},\n title = \t {Continuation-Based Multiprocessing},\n journal = \t {Higher-Order and Symbolic Computation},\n year = \t 1999,\n volume =\t 12,\n number =\t 3,\n month =\t oct,\n pages =\t {285-299},\n note =\t {Originally appeared in the 1980 Lisp Conference},\n URL =\t\t ftpdir # {hosc-99.ps},\n abstract =\t {Any multiprocessing facility must include three features: \nelementary exclusion, data protection, and process saving. \nWhile elementary exclusion must rest on some hardware \nfacility (e.g. a test-and-set instruction), the other two\nrequirements are fulfilled by features already present \nin applicative languages. Data protection may be obtained through\nthe use of procedures (closures or funargs), and process \nsaving may be obtained through the use of the CATCH operator. \nThe use of CATCH, in particular, allows an elegant\ntreatment of process saving.\n \n<p> We demonstrate these techniques by writing the kernel and \nsome modules for a multiprocessing system. The kernel is very\nsmall. Many functions which one would normally expect to find \ninside the kernel are completely decentralized. We consider\nthe implementation of other schedulers, interrupts, and the \nimplications of these ideas for language design.\n\n<p>This paper originally appeared in the 1980 Lisp Conference.},\n source =\t {papers/lfp-80/revised/kmulti.tex}\n}\n\n","author_short":["Wand, M."],"key":"Wand99b","id":"Wand99b","bibbaseid":"wand-continuationbasedmultiprocessing-1999","role":"author","urls":{"Paper":"ftp://ftp.ccs.neu.edu/pub/people/wand/papers/hosc-99.ps"},"downloads":0,"html":""},"search_terms":["continuation","based","multiprocessing","wand"],"keywords":[],"authorIDs":[],"dataSources":["zM8mNPR4ZkAHKtvDs"]}