Charlotte (operativsystem)

Charlotte var et distribuert operativsystem som ble utviklet av Raphael A. Finkel og hans medhjelpere ved University of Wisconsin-Madison i 1983. Charlotte var den direkte etterfølgeren av det distribuerte operativsystemet Arachne.
Charlotte egnet seg for svært intensive beregninger, under massiv parallell utførelse. Oppstartskoden var skrevet i assembler, deler av interprosess-kommunikasjonen var skrevet i programmeringsspråket C, mens den øvrige koden var skrevet i en lokal variant av Modula.
Charlotte ble konstruert i et 80 Mbps token ring nettverk («Pronet»), bestående av 20 stk Vax-11/750 og VAX-11/780 datamaskiner, som hver enkelt kjørte BSD UNIX 4.2. Hver enkelt maskin («node») kjørte en grunnleggende prosess, kalt en «klump» («nugget»), som sørget for kommunikasjon mellom maskinene ved hjelp av UDP/IP (datagrammer).
Hver enkelt maskin hadde en kopi av operativsystem-kjernen, som kommuniserte med de andre kopiene ved hjelp av de såkalte «klumpene». Charlotte-kjernen utførte mekanismer: Interprosess-kommunikasjon, prosess-kontroll (multiprosessering), tildeling av ressurser til prosesser, lagring av data og flytting av data.
Kjernens mekanismer var adskilt fra operativsystemets «politikk» eller «nytteprogrammer» (utility processes), som bestod (i 1984) av en kommandotolk, en filserver, en program-starter, en server som opprettet kommunikasjon mellom maskinene (Connector) og en katalog-server (Switchboard).
Denne oppdelingen i to moduler − mekanisme og politikk, var en del av designfilosofien bak Charlotte. Nytteprogrammene kommuniserte med kjernen gjennom subrutine-kall, til subrutiner skrevet i Modula. To andre viktige momenter i designfilosofien, var Charlottes evne til å kjøre et bredt spekter av applikasjoner, og også å kunne kjøre på datamaskiner med mer enn én mikroprosessor.


== Litteratur ==
Raphael A. Finkel, Marvin H. Solomon, David J. DeWitt og Lawrence  Landweber: The Charlotte Distributed Operating System, Computer Science Technical Report #502, 1983, Computer Science Department, University of Wisconsin-Madison
Raphael A. Finkel, Yeshayahu Artsy og Hung-Yang Chang: Charlotte: Design and implementation of a distributed kernel, Department of Compututer Science, University of Wisconsin-Madison, Technical Report #554, august 1984
Raphael A. Finkel et al: The Charlotte Distributed Operating System, Computer Science Technical Report #653, 1986, Computer Science Department, University of Wisconsin-Madison
Raphael A. Finkel, Yeshayahu Artsy og Hung-Yang Chang: Processes migrate in Charlotte, Department of Computer Science, University of Wisconsin--Madison, Technical Report #655, august 1986
Raphael A. Finkel, Michael L. Scott, William K. Kalsow, Yeshayahu Artsy og Hung-Yang Chang: Experience with Charlotte: Simplicity and Function in a Distributed Operating System, IEEE Transactions on Software Engineering, SE-15(6), 1986, s. 676-685
Raphael A. Finkel, Yeshayahu Artsy og Hung-Yang Chang: Interprocess communication in Charlotte, IEEE Software, vol. 4, no. 1, s. 22-28, januar 1987
Raphael A. Finkel og Yeshayahu Artsy: Simplicity, efficiency, and functionality in designing a process migration facility, inProc. Second Israel Conference on Computer Systems and Software Engineering, IEEE, mai 1987
Raphael A. Finkel og Yeshayahu Artsy: The Process Migration Mechanism in Charlotte, Operating Systems Technical Committee Newsletter, 3(1), 1989, s. 11-14