|
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. 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.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
|
| |
3
|
|
 |
4
|
|
| |
5
|
|
| |
6
|
Dahl, O-J., and Hoare, C.A.R., "Hierarchical Program Structures," in Dahl, O-J., Dijkstra, E.W., and Hoare, C.A.R., Structured Programming, Academic Press, London, 1972, pp. 175-220.
|
 |
7
|
|
 |
8
|
|
| |
9
|
|
| |
10
|
Hewitt, C.E., "Viewing Control Structures as Patterns of Passing Messages," Artificial Intelligence 8 (1977), 323-364.
|
 |
11
|
|
| |
12
|
Holloway, J., Steele, G.L., Sussman, G.J., and Bell, A., "The SCHEME-79 Chip," MIT Art. Intell. Memo. No. 559 (Dec. 1979).
|
 |
13
|
|
 |
14
|
|
 |
15
|
|
| |
16
|
|
| |
17
|
|
 |
18
|
|
 |
19
|
|
 |
20
|
|
 |
21
|
|
| |
22
|
|
| |
23
|
|
| |
24
|
Steele, G.L., and Sussman, G.J., "The Revised Report on SCHEME," MIT Art. Intell. Memo No. 452 (January, 1978).
|
| |
25
|
|
| |
26
|
Wand, M., "SCHEME Version 3.1 Reference Manual," Indiana University Computer Science Department, Technical Report No. 93, June, 1980.
|
| |
27
|
Wirth, N., "Modula: a Language for Modular Multiprogramming," Software - Practice and Experience 7 (1977), 3-35.
|
 |
28
|
|
CITED BY 43
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Christopher T. Haynes , Daniel P. Friedman , Mitchell Wand, Continuations and coroutines, Proceedings of the 1984 ACM Symposium on LISP and functional programming, p.293-298, August 06-08, 1984, Austin, Texas, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Matthias Felleisen , Mitch Wand , Daniel Friedman , Bruce Duba, Abstract continuations: a mathematical semantics for handling full jumps, Proceedings of the 1988 ACM conference on LISP and functional programming, p.52-62, July 25-27, 1988, Snowbird, Utah, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bruce Duba , Robert Harper , David MacQueen, Typing first-class continuations in ML, Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.163-173, January 21-23, 1991, Orlando, Florida, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Matthew Fluet , Mike Rainey , John Reppy , Adam Shaw , Yingqi Xiao, Manticore: a heterogeneous parallel language, Proceedings of the 2007 workshop on Declarative aspects of multicore programming, p.37-44, January 16-16, 2007, Nice, France
|
|
|
|
|
|
|
|
|
|
|
|
H. Abelson , R. K. Dybvig , C. T. Haynes , G. J. Rozas , N. I. Adams, IV , D. P. Friedman , E. Kohlbecker , G. L. Steele, Jr. , D. H. Bartley , R. Halstead , D. Oxley , G. J. Sussman , G. Brooks , C. Hanson , K. M. Pitman , M. Wand , William Clinger , Jonathan Rees, Revised report on the algorithmic language scheme, ACM SIGPLAN Lisp Pointers, v.IV n.3, p.1-55, July, 1991
|
|
|
|
|
|
|
|
|
|
|
|
Matthew Fluet , Nic Ford , Mike Rainey , John Reppy , Adam Shaw , Yingqi Xiao, Status report: the manticore project, Proceedings of the 2007 workshop on Workshop on ML, October 05-05, 2007, Freiburg, Germany
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Shigeo Sugimoto , Koichi Tabata , Kiyoshi Agusa , Yutaka Ohno, Concurrent LISP on a multi-micro-processor system, Proceedings of the 7th international joint conference on Artificial intelligence, p.949-954, August 24-28, 1981, Vancouver, BC, Canada
|
|