280:(MTBF) of one processor was 24 hours, then the overall system reliability was 16/24 hours, or about 40 minutes. Overall, the system usually ran for between two and six hours. Many of these failures were due to timing glitches in the many custom circuits added to the processors. Great effort was expended to improve hardware reliability, and when a processor was noticeably failing, it was partitioned out, and would run diagnostics for several hours. When it had passed a first set of diagnostics, it was partitioned back in as an
1859:
1849:
284:
and would not run application code (but its peripheral devices were now available); it continued to run diagnostics. If it passed these after several more hours, it was reinstated as a full member of the processor set. Similarly, if a block of memory (one page) was detected as faulty, it was removed
17:
186:
board was designed that intercepted certain instructions and implemented the protected operating system requirements. For example, it was necessary, for operating system integrity, that the stack pointer register never be odd. On the 11/20, this was done by clipping the lead to the low-order bit of
128:
on the other. If all 16 processors were accessing different banks of memory, the memory accesses would all be concurrent. If two or more processors were trying to access the same bank of memory, one of them would be granted access on one cycle and the remainder would be negotiated on subsequent
167:
The original processors were PDP-11/20 processors, but in the final system, only five of these were used; the remaining 11 were PDP-11/40 processors, which were modified by having extra writeable microcode space. All modifications to these machines were designed and built at CMU.
145:, and the two high-order bits were used to select one of four relocation registers which selected a bank of memory. Properly managing these registers was one of the challenges of programming the
99:(I/O) system (designed by Roy Levin) hid the connectivity of the devices and routed the requests to the hosting processor. If a processor went down, the devices connected to its
469:
920:
1853:
462:
374:
91:
minicomputers were used as the processing elements, named
Compute Modules (CMs) in the system. Each CM had a local memory of 8K and a local set of
276:
Because overall system reliability depended on having all 16 CPUs running, there were serious problems with overall hardware reliability. If the
753:
285:
from the pool of available pages, and until otherwise notified, the OS would ignore this page. Thus, the OS became an early example of a
455:
33:
1629:
436:
322:
187:
the stack register. On the 11/40, any access to the stack was intercepted by the proc-mod board and generated an illegal data access
417:
1654:
137:
of 16-bits, another address translation unit was added to expand the address space to 25 bits for the shared memory space. The
1538:
1512:
1506:
1500:
1494:
1890:
1693:
85:
1185:
661:
493:
405:
1895:
1885:
1107:
529:
212:
117:
An
Interprocessor bus – used to distribute system-wide clock, interrupt, and process control messaging among the CMs
1834:
1681:
1431:
566:
514:
277:
95:
devices. One of the challenges was that a device was only available through its unique connected processor, so the
41:
1721:
1699:
1596:
1338:
1269:
1224:
1203:
1142:
976:
774:
746:
603:
553:
524:
224:
208:
150:
1714:
1675:
1550:
1256:
1135:
651:
593:
346:
204:
1667:
1462:
1209:
519:
499:
478:
61:
1052:
1012:
1863:
1378:
1309:
1262:
993:
804:
783:
613:
1842:
1687:
1349:
969:
739:
638:
235:
231:
161:
157:
1801:
534:
216:
20:
The C.mmp memory unit, with three racks visible, including the front panel of the crossbar switch.
1710:
1245:
928:
720:
584:
261:
1786:
1771:
1751:
831:
504:
432:
413:
328:
318:
250:
1072:
1023:
810:
549:
200:
188:
146:
142:
394:
C.mmp: The CMU Multiminiprocessor
Computer: Requirements and Overview of the Initial Design
103:
became unavailable, which became a problem in overall system reliability. Processor 0 (the
1756:
1454:
849:
561:
509:
287:
121:
37:
1796:
1781:
1761:
1283:
899:
799:
715:
622:
242:
1879:
1806:
1776:
947:
710:
134:
125:
1811:
1581:
1561:
1191:
892:
886:
705:
700:
646:
393:
389:
96:
57:
45:
76:. As of 2020, the machine is on display at CMU, in Wean Hall, on the ninth floor.
1641:
1291:
1287:
766:
762:
671:
385:
370:
308:
220:
53:
1743:
1647:
1611:
963:
679:
628:
92:
447:
332:
1791:
1766:
1530:
1400:
1390:
1298:
1084:
1044:
821:
618:
179:
175:
172:
731:
406:"Reflections in a Pool of Processors: An Experience Report on C.mmp/Hydra"
1617:
1574:
1438:
1370:
1178:
1058:
986:
954:
838:
598:
265:
257:
1733:
1660:
1623:
1543:
1520:
1489:
1468:
1443:
1416:
1409:
1318:
1099:
1090:
1005:
999:
539:
105:
1727:
1604:
1364:
1358:
1331:
1324:
1250:
1239:
1233:
1154:
1123:
905:
588:
580:
576:
571:
312:
291:
system, able to deal with hardware problems which arose, inevitably.
246:
138:
100:
88:
427:
Wulf, Wm. A.; Harbison, Samuel P. III; Levin, Roy (1 January 1981).
1480:
1276:
1197:
1148:
1078:
1065:
1034:
876:
793:
656:
608:
238:
15:
113:
Each of the
Compute Modules shared these communication pathways:
1161:
864:
858:
695:
735:
451:
256:
Among the programming languages available on the system was an
16:
1635:
1129:
936:
171:
Most of the 11/20 modifications were custom changes to the
124:– used to connect the 16 CMs on one side and 16 banks of
160:, but during its lifetime, higher performance dynamic
164:(RAM) became available and the system was upgraded.
1742:
1709:
1560:
1529:
1479:
1453:
1399:
1389:
1348:
1308:
1223:
1170:
1043:
1033:
1022:
875:
848:
820:
782:
773:
688:
670:
637:
548:
486:
412:. Gulf Professional Publishing. pp. 561–573.
178:, but because the PDP-11/40 was implemented in
68:, a variant was noted by the dot notation, and
1854:Category: Microkernel-based operating systems
747:
463:
260:variant which included extensions supporting
8:
429:HYDRA/C.mmp: An Experimental Computer System
399:(Report). Carnegie Mellon University (CMU).
380:(Report). Carnegie Mellon University (CMU).
264:, to make good use of the C.mmp. The ALGOL
1396:
1040:
1030:
779:
754:
740:
732:
470:
456:
448:
404:Wulf, Wm. A.; Harbison, S. P. III (2000).
314:Computer structures: readings and examples
300:
223:. System resources were represented as
7:
227:and protected through capabilities.
30:multiple instruction, multiple data
14:
410:Readings in Computer Architecture
347:"Loosely Coupled Multiprocessors"
141:architecture provided 18 bits of
1858:
1857:
1848:
1847:
110:) had the disk drives attached.
156:The original C.mmp design used
133:Since the PDP-11 had a logical
52:came from the PMS notation of
1:
388:; Broadley, W.; Wulf, W. A.;
375:C.mmp: A multi-mini-processor
86:Digital Equipment Corporation
494:Principle of least privilege
191:if the low-order bit was 1.
1108:Multi-Environment Real-Time
530:Capability-based addressing
1912:
278:mean time between failures
249:. The OS used very little
42:Carnegie Mellon University
1820:
525:Capability-based security
268:ran native on Hydra OS.
64:(CPU) was designated as
520:Object-capability model
500:Confused deputy problem
62:central processing unit
1864:Category: Microkernels
392:; Pierson, C. (1971).
373:; Bell, C. G. (1972).
351:www.edwardbosworth.com
21:
639:Programming languages
48:(1971). The notation
19:
1891:History of computing
1843:Open-source software
1350:Java virtual machine
689:Specialised hardware
241:-11, which required
236:programming language
232:application software
162:random-access memory
158:magnetic-core memory
74:Multi-Mini-Processor
40:system developed at
1802:Andrew S. Tanenbaum
234:was written in the
1896:Parallel computing
1886:Capability systems
721:Plessey System 250
262:parallel computing
22:
1873:
1872:
1787:James G. Mitchell
1772:Per Brinch Hansen
1591:
1590:
1426:
1425:
1219:
1218:
915:
914:
832:Mac OS nanokernel
729:
728:
550:Operating systems
505:Ambient authority
479:Object-capability
251:assembly language
1903:
1861:
1860:
1851:
1850:
1397:
1225:Capability-based
1041:
1031:
780:
756:
749:
742:
733:
535:Zooko's triangle
472:
465:
458:
449:
442:
423:
400:
398:
381:
379:
361:
360:
358:
357:
343:
337:
336:
305:
230:The OS and most
201:operating system
195:Operating system
147:operating system
143:physical address
1911:
1910:
1906:
1905:
1904:
1902:
1901:
1900:
1876:
1875:
1874:
1869:
1846:
1816:
1757:Thomas Bushnell
1738:
1705:
1587:
1556:
1525:
1475:
1449:
1422:
1385:
1344:
1304:
1215:
1166:
1025:
1018:
911:
871:
844:
816:
769:
760:
730:
725:
684:
666:
633:
544:
510:File descriptor
482:
476:
446:
439:
431:. McGraw-Hill.
426:
420:
403:
396:
384:
377:
369:
365:
364:
355:
353:
345:
344:
340:
325:
317:. McGraw-Hill.
309:Bell, C. Gordon
307:
306:
302:
297:
274:
243:cross-compiling
213:object-oriented
203:(OS) was named
197:
122:crossbar switch
82:
12:
11:
5:
1909:
1907:
1899:
1898:
1893:
1888:
1878:
1877:
1871:
1870:
1868:
1867:
1838:
1830:
1828:= discontinued
1821:
1818:
1817:
1815:
1814:
1809:
1804:
1799:
1797:Richard Rashid
1794:
1789:
1784:
1782:Jochen Liedtke
1779:
1774:
1769:
1764:
1762:David Cheriton
1759:
1754:
1748:
1746:
1740:
1739:
1737:
1731:
1725:
1719:
1717:
1707:
1706:
1704:
1703:
1697:
1691:
1672:
1664:
1658:
1651:
1645:
1639:
1633:
1627:
1621:
1615:
1609:
1601:
1592:
1589:
1588:
1586:
1585:
1566:
1564:
1558:
1557:
1555:
1554:
1547:
1541:
1535:
1533:
1527:
1526:
1524:
1523:
1518:
1517:
1516:
1513:Icaros Desktop
1510:
1504:
1492:
1486:
1484:
1477:
1476:
1474:
1459:
1457:
1451:
1450:
1448:
1447:
1439:Classic Mac OS
1435:
1427:
1424:
1423:
1421:
1420:
1413:
1405:
1403:
1394:
1387:
1386:
1384:
1383:
1375:
1354:
1352:
1346:
1345:
1343:
1342:
1336:
1328:
1322:
1315:
1313:
1306:
1305:
1303:
1302:
1284:HarmonyOS NEXT
1280:
1273:
1266:
1260:
1253:
1229:
1227:
1221:
1220:
1217:
1216:
1214:
1213:
1207:
1201:
1195:
1189:
1183:
1174:
1172:
1168:
1167:
1165:
1158:
1151:
1146:
1139:
1133:
1127:
1120:
1104:
1096:
1095:
1094:
1088:
1076:
1069:
1062:
1056:
1049:
1047:
1038:
1028:
1020:
1019:
1017:
1016:
1009:
1006:TI-RTOS kernel
1003:
997:
990:
983:
982:Off++ → Plan B
980:
973:
967:
960:
959:
958:
944:
941:
933:
925:
916:
913:
912:
910:
909:
902:
897:
896:
895:
882:
880:
873:
872:
870:
869:
854:
852:
846:
845:
843:
842:
835:
827:
825:
818:
817:
815:
814:
808:
789:
787:
777:
771:
770:
761:
759:
758:
751:
744:
736:
727:
726:
724:
723:
718:
716:Intel iAPX 432
713:
708:
703:
698:
692:
690:
686:
685:
683:
682:
676:
674:
668:
667:
665:
664:
659:
654:
649:
643:
641:
635:
634:
632:
631:
626:
623:HarmonyOS NEXT
616:
611:
606:
601:
596:
591:
574:
569:
564:
558:
556:
546:
545:
543:
542:
537:
532:
527:
522:
517:
512:
507:
502:
497:
490:
488:
484:
483:
477:
475:
474:
467:
460:
452:
445:
444:
438:978-0070721203
437:
424:
418:
401:
382:
366:
363:
362:
338:
324:978-0070043572
323:
299:
298:
296:
293:
288:fault-tolerant
273:
270:
196:
193:
131:
130:
129:memory cycles.
118:
81:
78:
38:multiprocessor
13:
10:
9:
6:
4:
3:
2:
1908:
1897:
1894:
1892:
1889:
1887:
1884:
1883:
1881:
1866:
1865:
1856:
1855:
1845:
1844:
1839:
1837:
1836:
1831:
1829:
1826:
1823:
1822:
1819:
1813:
1810:
1808:
1807:Avie Tevanian
1805:
1803:
1800:
1798:
1795:
1793:
1790:
1788:
1785:
1783:
1780:
1778:
1777:Gernot Heiser
1775:
1773:
1770:
1768:
1765:
1763:
1760:
1758:
1755:
1753:
1750:
1749:
1747:
1745:
1741:
1735:
1732:
1729:
1726:
1723:
1720:
1718:
1716:
1712:
1708:
1701:
1698:
1695:
1692:
1690:
1689:
1684:
1683:
1678:
1677:
1673:
1670:
1669:
1665:
1662:
1659:
1657:
1656:
1652:
1649:
1646:
1643:
1640:
1637:
1634:
1631:
1628:
1625:
1622:
1619:
1616:
1613:
1610:
1607:
1606:
1602:
1599:
1598:
1594:
1593:
1584:
1583:
1578:
1576:
1571:
1568:
1567:
1565:
1563:
1559:
1553:
1552:
1548:
1545:
1542:
1540:
1537:
1536:
1534:
1532:
1528:
1522:
1519:
1514:
1511:
1508:
1505:
1502:
1499:
1498:
1496:
1493:
1491:
1488:
1487:
1485:
1482:
1478:
1472:
1470:
1465:
1464:
1460:
1458:
1456:
1452:
1445:
1441:
1440:
1436:
1434:
1433:
1429:
1428:
1419:
1418:
1414:
1412:
1411:
1407:
1406:
1404:
1402:
1398:
1395:
1392:
1388:
1381:
1380:
1376:
1373:
1372:
1368:^ integrates
1367:
1366:
1361:
1360:
1356:
1355:
1353:
1351:
1347:
1340:
1337:
1334:
1333:
1329:
1326:
1323:
1320:
1317:
1316:
1314:
1311:
1307:
1301:
1300:
1295:
1293:
1289:
1285:
1281:
1279:
1278:
1274:
1272:
1271:
1267:
1264:
1261:
1259:
1258:
1254:
1252:
1248:
1247:
1242:
1241:
1236:
1235:
1231:
1230:
1228:
1226:
1222:
1211:
1208:
1205:
1202:
1199:
1196:
1193:
1190:
1187:
1184:
1182:
1180:
1176:
1175:
1173:
1169:
1164:
1163:
1159:
1157:
1156:
1152:
1150:
1147:
1145:
1144:
1140:
1137:
1134:
1131:
1128:
1126:
1125:
1121:
1118:
1114:
1110:
1109:
1105:
1102:
1101:
1097:
1092:
1089:
1086:
1083:
1082:
1080:
1077:
1075:
1074:
1070:
1068:
1067:
1063:
1060:
1057:
1055:
1054:
1050:
1048:
1046:
1042:
1039:
1036:
1032:
1029:
1027:
1021:
1015:
1014:
1010:
1007:
1004:
1001:
998:
996:
995:
991:
989:
988:
984:
981:
979:
978:
974:
971:
968:
966:
965:
961:
956:
953:
952:
950:
949:
945:
943:Little Kernel
942:
939:
938:
934:
931:
930:
926:
923:
922:
918:
917:
908:
907:
903:
901:
898:
894:
891:
890:
889:
888:
884:
883:
881:
878:
874:
867:
866:
861:
860:
856:
855:
853:
851:
847:
841:
840:
836:
834:
833:
829:
828:
826:
823:
819:
812:
809:
806:
802:
801:
796:
795:
791:
790:
788:
785:
781:
778:
776:
772:
768:
764:
757:
752:
750:
745:
743:
738:
737:
734:
722:
719:
717:
714:
712:
711:IBM System/38
709:
707:
704:
702:
701:Cambridge CAP
699:
697:
694:
693:
691:
687:
681:
678:
677:
675:
673:
669:
663:
660:
658:
655:
653:
650:
648:
645:
644:
642:
640:
636:
630:
627:
624:
620:
617:
615:
612:
610:
607:
605:
602:
600:
597:
595:
592:
590:
586:
582:
578:
575:
573:
570:
568:
565:
563:
560:
559:
557:
555:
551:
547:
541:
538:
536:
533:
531:
528:
526:
523:
521:
518:
516:
513:
511:
508:
506:
503:
501:
498:
495:
492:
491:
489:
485:
480:
473:
468:
466:
461:
459:
454:
453:
450:
440:
434:
430:
425:
421:
419:9781558605398
415:
411:
407:
402:
395:
391:
387:
383:
376:
372:
368:
367:
352:
348:
342:
339:
334:
330:
326:
320:
316:
315:
310:
304:
301:
294:
292:
290:
289:
283:
282:I/O processor
279:
271:
269:
267:
263:
259:
254:
252:
248:
244:
240:
237:
233:
228:
226:
222:
218:
214:
210:
206:
202:
194:
192:
190:
185:
182:, a separate
181:
177:
174:
169:
165:
163:
159:
154:
152:
148:
144:
140:
136:
135:address space
127:
126:shared memory
123:
119:
116:
115:
114:
111:
109:
107:
102:
98:
94:
90:
87:
79:
77:
75:
71:
67:
63:
59:
55:
51:
47:
43:
39:
35:
31:
28:was an early
27:
18:
1862:
1852:
1840:
1832:
1827:
1824:
1812:William Wulf
1686:
1680:
1674:
1666:
1653:
1603:
1595:
1582:Workplace OS
1580:
1573:
1569:
1562:AIM alliance
1549:
1467:
1461:
1437:
1430:
1415:
1408:
1377:
1369:
1363:
1357:
1330:
1297:
1282:
1275:
1268:
1255:
1244:
1238:
1232:
1192:Nucleus RTOS
1177:
1160:
1153:
1141:
1122:
1116:
1112:
1106:
1098:
1071:
1064:
1051:
1011:
992:
985:
975:
962:
946:
935:
927:
919:
904:
885:
863:
857:
837:
830:
798:
792:
763:Microkernels
672:File systems
428:
409:
354:. Retrieved
350:
341:
313:
303:
286:
281:
275:
255:
229:
198:
183:
173:wire-wrapped
170:
166:
155:
132:
112:
104:
97:input/output
83:
73:
69:
65:
58:Allen Newell
49:
46:William Wulf
29:
25:
23:
1752:Gordon Bell
1642:OpenComRTOS
1539:Singularity
1365:Chorus/Jazz
1288:OpenHarmony
767:nanokernels
386:Bell, C. G.
371:Wulf, W. A.
272:Reliability
221:microkernel
54:Gordon Bell
1880:Categories
1744:Developers
1711:Frameworks
1648:Phantom OS
1612:ChibiOS/RT
970:µ-velOSity
964:MicroEmpix
680:Tahoe-LAFS
629:Phantom OS
390:Newell, A.
356:2018-09-11
295:References
217:multi-user
209:capability
93:peripheral
72:stood for
60:, where a
1835:Real-time
1792:Ike Nassi
1767:Dan Dodge
1531:Microsoft
1401:Unix-like
1391:Macintosh
1299:HarmonyOS
1186:Integrity
1085:Minix-vmd
1045:Unix-like
1024:Operating
822:Macintosh
619:HarmonyOS
333:633760282
207:. It was
180:microcode
176:backplane
108:processor
80:Structure
44:(CMU) by
1618:FreeRTOS
1575:Taligent
1507:Broadway
1501:AspireOS
1371:ChorusOS
1292:Oniro OS
1179:ChorusOS
1059:GNU Hurd
1013:Vanguard
955:GNU Mach
839:NuKernel
599:iMAX 432
562:Capsicum
540:Petnames
487:Concepts
481:security
311:(1981).
266:compiler
258:ALGOL 68
219:, and a
211:-based,
184:proc-mod
120:A 16x16
84:Sixteen
1825:Italics
1734:TI-RTOS
1682:Harmony
1661:SharpOS
1655:RC 4000
1624:HelenOS
1544:ThreadX
1521:MorphOS
1490:AmigaOS
1469:Symbian
1446:kernel)
1444:PowerPC
1432:Copland
1417:MacMach
1410:MachTen
1171:Partial
1117:Unix-RT
1100:MkLinux
1091:Minix 3
1037:support
1026:systems
1000:RTLinux
994:PowerUP
977:nucleus
775:Kernels
567:Fuchsia
554:kernels
225:objects
1728:Genode
1722:Cosmos
1700:Zephyr
1605:BeRTOS
1597:Amoeba
1393:hosted
1359:JavaOS
1339:Wombat
1332:REX OS
1325:PikeOS
1319:LLinux
1312:kernel
1270:Midori
1251:CapROS
1240:KeyKOS
1234:GNOSIS
1155:UNICOS
1143:Spring
1124:OS2000
1073:MeikOS
906:WarpOS
893:ExecSG
824:hosted
786:family
647:Cajita
604:Midori
589:CapROS
581:KeyKOS
577:GNOSIS
572:Genode
515:C-list
496:(PoLP)
435:
416:
331:
321:
247:PDP-10
151:kernel
139:Unibus
101:Unibus
89:PDP-11
1676:Thoth
1630:µC/OS
1551:Verve
1483:-type
1481:Amiga
1455:Psion
1277:NLTSS
1257:Hydra
1198:NuttX
1149:Tinix
1136:Redox
1079:Minix
1066:Lites
1035:POSIX
921:ADEOS
900:Quark
879:-type
877:Amiga
850:Psion
794:Eumel
662:Joule
657:Joe-E
609:NLTSS
594:Hydra
397:(PDF)
378:(PDF)
245:on a
239:BLISS
205:Hydra
149:(OS)
50:C.mmp
26:C.mmp
1841:° =
1833:^ =
1715:kits
1694:VRTX
1685:^ →
1679:^ →
1668:SPIN
1570:Pink
1495:AROS
1463:EPOC
1263:seL4
1246:EROS
1210:RIOT
1162:VSTa
1113:MERT
987:Opus
948:Mach
929:EROS
887:Exec
865:EKA2
859:EKA1
811:OKL4
706:Flex
696:BiiN
614:seL4
585:EROS
433:ISBN
414:ISBN
329:OCLC
319:ISBN
199:The
189:trap
106:boot
56:and
34:MIMD
24:The
1636:MQX
1204:OSE
1130:QNX
1111:^ (
1053:ARX
937:K42
70:mmp
1882::
1736:^°
1713:,
1702:^°
1650:^°
1632:^°
1620:^°
1614:^°
1608:^°
1579:→
1577:OS
1572:→
1497:°
1473:^°
1471:OS
1466:→
1379:JX
1374:^)
1341:^°
1321:^°
1310:L4
1296:→
1290:,
1265:^°
1249:→
1243:→
1237:→
1212:^°
1200:^°
1115:–
1081:°
1008:^°
951:°
932:^°
868:^°
862:→
805:L4
803:→
800:L3
797:→
784:L4
587:→
583:→
579:→
552:,
408:.
349:.
327:.
253:.
215:,
153:.
36:)
1730:°
1724:°
1696:^
1688:V
1671:°
1663:°
1644:^
1638:^
1626:°
1600:°
1546:^
1515:°
1509:°
1503:°
1442:(
1382:°
1362:(
1335:^
1327:^
1294:)
1286:(
1206:^
1194:^
1188:^
1181:^
1138:°
1132:^
1119:)
1103:°
1093:°
1087:°
1061:°
1002:°
972:^
957:°
940:°
924:°
813:°
807:°
765:-
755:e
748:t
741:v
652:E
625:)
621:(
471:e
464:t
457:v
443:)
441:.
422:.
359:.
335:.
66:C
32:(
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.