Historia CP/CMS

W tym artykule omówiono historię CP/CMS — kontekst historyczny, w którym zbudowano system operacyjny maszyny wirtualnej IBM z podziałem czasu .

CP/CMS miał miejsce w złożonym środowisku politycznym i technicznym .

Notatki historyczne poniżej zawierają wspierające cytaty i cytaty od obserwatorów z pierwszej ręki.

Wczesne lata 60.: CTSS, wczesny podział czasu i projekt MAC

podziału czasu pierwszej generacji był CTSS , po raz pierwszy zademonstrowany na MIT w 1961 roku i używany produkcyjnie od 1964 do 1974 roku. Utorował drogę dla Multics , CP/CMS i wszystkich innych środowisk z podziałem czasu. Koncepcje podziału czasu pojawiły się po raz pierwszy pod koniec lat 50., zwłaszcza jako sposób na zaspokojenie potrzeb obliczeń naukowych . W tamtym czasie komputery były używane głównie do przetwarzania wsadowego — gdzie zadania zostały przesłane na kartach perforowanych i uruchomione w kolejności. Podział czasu pozwala użytkownikom na bezpośrednią interakcję z komputerem, dzięki czemu wyniki obliczeń i symulacji można było zobaczyć natychmiast.

Użytkownicy naukowi szybko przyjęli koncepcję podziału czasu i naciskali na dostawców komputerów, takich jak IBM, w celu ulepszenia możliwości podziału czasu. Badacze z MIT przewodzili tym wysiłkom, rozpoczynając projekt MAC , którego celem było opracowanie nowej generacji technologii podziału czasu i który ostatecznie doprowadził do zbudowania Multics, niezwykle bogatego w funkcje systemu podziału czasu, który później zainspirował początkowy rozwój systemu UNIX . Ten wybitny zespół czołowych informatyków sformułował bardzo szczegółowe zalecenia techniczne i wymagania, szukając odpowiedniej platformy sprzętowej dla swojego nowego systemu. Problemy techniczne były niesamowite. Większość wczesnych systemów z podziałem czasu omijała te problemy, udostępniając użytkownikom nowe lub zmodyfikowane języki, takie jak Dartmouth BASIC , do których dostęp uzyskiwano za pośrednictwem tłumaczy lub ograniczonych kontekstów wykonywania. Ale Project MAC dotyczyła współdzielonego, nieograniczonego dostępu do komputerów ogólnego przeznaczenia.

Wraz z innymi dostawcami IBM złożył propozycję do Project MAC. Jednak propozycja IBM nie została dobrze przyjęta: ku zaskoczeniu IBM, MIT wybrał General Electric na dostawcę systemu Multics. Skutki tego zdarzenia doprowadziły bezpośrednio do CP/CMS.

IBM i System/360

Na początku lat 60. IBM miał trudności z określeniem swojego kierunku technicznego. Firma zidentyfikowała problem z jej wcześniejszą ofertą komputerów: niezgodność między wieloma produktami i liniami produktów IBM. Każda nowa rodzina produktów i każda nowa generacja technologii zmuszała klientów do zmagania się z zupełnie nowym zestawem specyfikacji technicznych. Produkty IBM obejmowały szeroką gamę projektów procesorów, architektur pamięci, zestawów instrukcji, strategii wejścia/wyjścia itp. Nie było to oczywiście unikalne dla IBM. Wydawało się, że wszyscy dostawcy komputerów rozpoczynają każdy nowy system od projektu „czystego arkusza”. IBM postrzegał to zarówno jako problem, jak i szansę. Koszt migracji oprogramowania był coraz większą barierą w sprzedaży sprzętu. Klientów nie było stać na modernizację swoich komputerów, a IBM chciał to zmienić.

IBM podjął bardzo ryzykowne przedsięwzięcie: System/360 . Ta linia produktów miała zastąpić różnorodne wcześniejsze oferty IBM, w tym IBM 7000 , anulowaną serię IBM 8000 , serię IBM 1130 i różne inne specjalistyczne maszyny używane do zastosowań naukowych i innych. System/360 obejmowałby bezprecedensowy zakres mocy obliczeniowej, wielkości pamięci, obsługi urządzeń i kosztów; a co ważniejsze, opierało się na zapewnieniu kompatybilności wstecznej , dzięki czemu każdy klient mógł przenieść oprogramowanie do nowego systemu bez modyfikacji. W dzisiejszym świecie standardowych interfejsów i przenośnych systemów może to nie wydawać się tak radykalnym celem; ale w tamtym czasie było to rewolucyjne. Przed Systemem / 360 każdy model komputera często miał własne specyficzne urządzenia i programy, których nie można było używać z innymi systemami. Zakup większego procesora oznaczał również zakup nowych drukarek, czytników kart, napędów taśmowych itp. Ponadto klienci musieliby przepisać swoje programy, aby działały na nowym procesorze, czemu klienci często się sprzeciwiali. Wprowadzając S/360, IBM chciał zaoferować szeroką gamę systemów komputerowych, z których wszystkie miały wspólną architekturę jednego procesora, zestaw instrukcji, interfejs I/O i system operacyjny. Klienci mogliby „mieszać i dopasowywać” w celu zaspokojenia bieżących potrzeb; i mogli śmiało aktualizować swoje systemy w przyszłości, bez konieczności przepisywania wszystkich aplikacji. IBM nadal koncentrował się na swojej tradycyjnej bazie klientów: dużych organizacjach zajmujących się przetwarzaniem danych administracyjnych i biznesowych.

Na początku projektu System/360 firma IBM nie w pełni zdawała sobie sprawę z związanego z nim ryzyka. System/360 ostatecznie zapewnił IBM całkowitą dominację nad przemysłem komputerowym; ale początkowo prawie doprowadziło to IBM do bankructwa. IBM podjął się realizacji jednego z największych i najbardziej ambitnych projektów inżynierskich w historii, odkrywając przy tym niekorzyść skali i mityczny osobo-miesiąc . Obszerna literatura na temat tego okresu, na przykład autorstwa Freda Brooksa , ilustruje pułapki.

To właśnie w okresie paniki na temat Systemu / 360 Project MAC poprosił IBM o dostarczenie komputerom z rozbudowanymi możliwościami podziału czasu. Nie w tym kierunku zmierzał projekt System/360. Podział czasu nie był postrzegany jako ważny dla głównej bazy klientów IBM; przetwarzanie wsadowe było kluczowe. Co więcej, podział czasu był nowym gruntem. Wiele koncepcji, takich jak pamięć wirtualna , pozostało niesprawdzonych. Na przykład: w tamtym czasie nikt nie potrafił wyjaśnić, dlaczego problematyczna pamięć wirtualna Manchester/Ferranti Atlas „nie działała”. Zostało to później wyjaśnione jako spowodowane thrashing , oparty na badaniach CP/CMS i M44/44X . W rezultacie ogłoszenie IBM System / 360 w kwietniu 1964 r. Nie zawierało kluczowych elementów poszukiwanych przez zwolenników podziału czasu, w szczególności możliwości pamięci wirtualnej. Badacze projektu MAC byli zmiażdżeni i rozgniewani tą decyzją. Zespół projektowy System/360 spotkał się z badaczami Projektu MAC i wysłuchał ich zastrzeżeń; ale IBM wybrał inną drogę.

W lutym 1964 roku, u szczytu tych wydarzeń, IBM uruchomił Centrum Naukowe w Cambridge (CSC), kierowane przez Norma Rassmussena. CSC miało służyć jako łącznik między badaczami MIT a laboratoriami IBM i znajdowało się w tym samym budynku co Project MAC. IBM w pełni spodziewał się, że wygra konkurs Project MAC i utrzyma swoją postrzeganą przewagę w obliczeniach naukowych i podziale czasu.

Jednym z pierwszych projektów CSC było złożenie propozycji IBM Project MAC. IBM otrzymał informacje, że MIT skłania się ku propozycji GE, która dotyczyła zmodyfikowanego komputera z serii 600 ze sprzętem pamięci wirtualnej i innymi ulepszeniami; ostatecznie stałoby się to GE 645 . IBM zaproponował zmodyfikowany S/360, który zawierałby pamięć wirtualną urządzenie o nazwie „Blaauw Box” - komponent, który został zaprojektowany dla S / 360, ale nie był w nim zawarty. Zespół MIT odrzucił propozycję IBM. Zmodyfikowany S/360 był postrzegany jako zbyt różny od reszty linii S/360; MIT nie chciał używać niestandardowego lub specjalnego komputera dla MULTICS , ale poszukiwał szeroko dostępnego sprzętu. GE był przygotowany na duże zaangażowanie w podział czasu, podczas gdy IBM był postrzegany jako przeszkoda. Bell Laboratories, inny ważny klient IBM, wkrótce podjął tę samą decyzję i odrzucił S/360 ze względu na podział czasu.

1964–67: CP-40, S / 360-67 i TSS

Utrata Projektu MAC była druzgocąca dla CSC, które zasadniczo straciło rację bytu. Rasmussen pozostał zaangażowany w podział czasu i chciał odzyskać zaufanie MIT i innych badaczy. Aby to zrobić, podjął odważną decyzję: obecnie bezczynny zespół CSC zbuduje system operacyjny z podziałem czasu dla S/360. Robert Creasy opuścił Project MAC, aby kierować zespołem CSC, który szybko rozpoczął pracę nad tym, co miało stać się CP-40 , pierwszym odnoszącym sukcesy systemem operacyjnym maszyny wirtualnej opartym na w pełni zwirtualizowanym sprzęcie.

Utrata IBM Project MAC i Bell Laboratories spowodowała reperkusje w innych miejscach w IBM.

  • IBM stworzył korporacyjną grupę zadaniową, aby znaleźć zadowalający sposób spełnienia wymagań klientów dotyczących podziału czasu. Zespół, w skład którego wchodzili kluczowi pracownicy CSC, zaprojektował nowy model S/360, który był bliższy celom badaczy z MIT. Miał to być IBM System / 360-67 , ogłoszony w sierpniu 1965 r. I dostarczony w lipcu 1966 r. Ogłoszenie IBM obejmowało również nowy system operacyjny z podziałem czasu, TSS / 360 , optymistycznie zaplanowany na czerwiec 1967 r.
  • IBM zreorganizował swoje działy rozwoju i produkcji, aby naprawić dostrzegane problemy i być może ukarać osoby odpowiedzialne za utratę twarzy przez IBM.

Lincoln Laboratory MIT na S / 360-67, co oznacza poprawę wiarygodności IBM w MIT. Zobowiązując się do „prawdziwego” produktu z podziałem czasu, zamiast dostosowanego RPQ , IBM pokazał rodzaj zaangażowania, jakie MIT znalazł w GE.

CSC kontynuowało również prace nad CP-40, rzekomo w celu zapewnienia wkładu badawczego zespołowi S/360-67 — ale także dlatego, że zespół CSC nabrał sceptycyzmu wobec projektu TSS, który miał bardzo napięty harmonogram i wysokie cele. Ponieważ S/360-67 nie będzie dostępny dla CSC przez jakiś czas, zespół wymyślił pomysłowy środek zaradczy: zbudowanie własnej pamięci wirtualnej S/360. Zaprojektowali zestaw niestandardowych zmian sprzętowych i mikrokodu, które można było zaimplementować w S/360-40, zapewniając porównywalną platformę zdolną do obsługi architektury maszyny wirtualnej CP-40. Rzeczywisty rozwój CP-40 i CMS rozpoczął się w połowie 1965 roku, jeszcze przed pojawieniem się zmodyfikowanego S/360-40. Pierwsze użycie produkcyjne CP-40 miało miejsce w styczniu 1967 roku.

W międzyczasie projekt TSS był opóźniony i borykał się z problemami. Personel CSC był coraz bardziej przekonany, że CP/CMS jest właściwą architekturą do współdzielenia czasu S/360.

1967–68: CP-67

We wrześniu 1966 roku personel CSC rozpoczął konwersję CP-40 i CMS do pracy na S / 360-67. CP-67 był znaczącą reimplementacją CP-40; Varian informuje, że projekt został „znacząco uogólniony, aby umożliwić zmienną liczbę maszyn wirtualnych z większą pamięcią wirtualną”, że nowe struktury danych zastąpiły „bloki kontrolne opisujące maszyny wirtualne [które] były zakodowaną na stałe częścią jądro ”, że CP-67 dodał „koncepcję bezpłatnej pamięci, aby bloki kontrolne mogły być przydzielane dynamicznie” i że „połączenia między modułami zostały również przerobione, a kod został ponownie wprowadzony”. nie pojawi się przez jakiś czas, CSC dodatkowo zmodyfikowało mikrokod na własnym dostosowanym S/360-40, aby symulować S/360-67 – w szczególności jego inne podejście do pamięci wirtualnej.CSC wielokrotnie i z powodzeniem wykorzystywało symulację do obejścia braku sprzętu: w oczekiwaniu na zmodyfikowany S/360-40, S/360-67, a później na pierwsze prototypy S/370. Można to postrzegać jako logiczną konsekwencję myślenia o „maszynie wirtualnej”. W tym okresie wczesne testy CP-67 przeprowadzono również w miejscach, w których dostępny był sprzęt S / 360-67 - zwłaszcza w laboratorium IBM Yorktown Heights i MIT Laboratorium Lincolna .

Obserwatorzy CP-67 w Lincoln Labs, już sfrustrowani poważnymi problemami z TSS, byli pod wrażeniem CP-67. Nalegali, aby IBM dostarczył im kopię CP/CMS. Według Variana popyt ten „wstrząsnął całą firmą”, która tak dużo zainwestowała w TSS. Ponieważ jednak witryna była tak krytyczna, IBM zastosował się do niej. Varian i inni spekulują, że ten łańcuch wydarzeń mógł zostać „zaprojektowany” przez Rasmussena jako „wybieg” mający zmotywować IBM do dalszego finansowania prac CSC nad „kontrstrategicznym” CP/CMS, który „kilkakrotnie kazano mu zabić ".

W kwietniu 1967 roku – zaledwie kilka miesięcy po rozpoczęciu produkcji CP-40 – CP/CMS był już w codziennym użyciu w Lincoln Labs. Personel Lincoln Lab ściśle współpracował z CSC nad ulepszeniem CP/CMS. „Zaczęli ulepszać CP i CMS, gdy tylko zostały dostarczone. Ludzie z Lincoln i Cambridge ściśle ze sobą współpracowali i regularnie wymieniali kod”, rozpoczynając tradycję udostępniania kodu i wzajemnego wsparcia, która będzie trwała przez lata. Mniej więcej w tym samym czasie Union Carbide , inny wpływowy klient IBM, poszedł tą samą drogą – decydując się na uruchomienie CP/CMS, wysłanie personelu do pracy z CSC i wniesienie wkładu w rozwój CP/CMS.

CP-40, CP-67 i CMS były wówczas zasadniczo systemami badawczymi, zbudowanymi z dala od głównych organizacji produktowych IBM, przy aktywnym zaangażowaniu zewnętrznych badaczy. Eksperymentowanie było zarówno ważnym celem, jak i stałą czynnością. Robert Creasy , lider projektu CP-40, napisał później:

Projekt CP / CMS [był] przez małą i zróżnicowaną grupę badawczo-rozwojową oprogramowania do własnego użytku i wsparcia… [oraz] do eksperymentowania z projektowaniem systemu z podziałem czasu… Harmonogramy i budżety, plany i cele wydajnościowe nie nie muszą być spełnione.… Spodziewaliśmy się również, że po uruchomieniu systemu co najmniej raz przerobimy go. Dla większości grupy miało to być pouczające doświadczenie. Wydajność została wyraźnie wykluczona jako cel projektowania oprogramowania, chociaż zawsze była brana pod uwagę. Nie wiedzieliśmy, czy system będzie miał praktyczne zastosowanie… W styczniu 1965 r., po rozpoczęciu prac nad systemem, z prezentacji dla grup zewnętrznych stało się jasne, że system będzie budził kontrowersje.

W międzyczasie TSS, opisany przez Varian jako „elegancki i bardzo ambitny system”, wykazywał „poważne problemy ze stabilnością i wydajnością, ponieważ został wyrwany z gniazda zbyt wcześnie”. W lutym 1968 r., w czasie SHARE 30, osiemnaście witryn S/360-67 próbowało uruchomić TSS. Podczas konferencji IBM ogłosił „niebieskim listem”, że TSS jest likwidowany – wielki cios dla społeczności dzielącej czas. Decyzja ta zostałaby tymczasowo cofnięta, a TSS zostałby złomowany dopiero w 1971 roku. Jednak CP / CMS wkrótce zaczął zyskiwać uwagę jako realna alternatywa.

1968–72: wydania CP / CMS

  • Maj 1968: Wersja 1 CP/CMS została udostępniona ośmiu instalacjom. Został udostępniony jako część biblioteki IBM Type-III Library w czerwcu. Wkrótce potem uruchomiono dwie firmy typu time-sharing oparte na odsprzedaży CP/CMS: National CSS i IDC . Przedsięwzięcia te wymagały kluczowego personelu z CSC, Lincoln Labs i Union Carbide; i zwrócili uwagę na żywotność CP/CMS, S/360-67 i pamięci wirtualnej.
  • Kwiecień 1969: CP/CMS został zainstalowany w piętnastu lokalizacjach.
  • Czerwiec 1969: Wydano wersję 2 CP/CMS.
  • Listopad 1971: Wydano wersję 3.1 CP/CMS, zdolną obsłużyć sześćdziesięciu użytkowników CMS przy -67 – imponująca wydajność.
  • Początek 1972: Wydano CP/CMS w wersji 3.2, wydanie konserwacyjne bez nowych funkcji. CP-67 działał teraz na 44 procesorach, z których jedna czwarta znajdowała się wewnątrz IBM.

W czasach S / 360-67 oprogramowanie było „dołączane” do zakupów sprzętu komputerowego; patrz „Rozdzielanie oprogramowania i usług IBM” . W szczególności systemy operacyjne IBM były dostępne bez dodatkowych opłat dla klientów IBM. CP/CMS był niezwykły, ponieważ był dostarczany jako nieobsługiwane oprogramowanie typu III w postaci kodu źródłowego – co oznacza, że ​​strony CP/CMS działały na nieobsługiwanym systemie operacyjnym. Potrzeba samoobsługi i wsparcia społeczności doprowadziła do powstania silnych społeczności użytkowników S/360-67 i CP/CMS, prekursorów open source ruch.

Latem 1970 roku zespół CP/CMS rozpoczął pracę nad wersją CP/CMS dla Systemu/370 ; stałoby się to VM/370 . CP-370 okazał się kluczowy dla projektu S/370, zapewniając użyteczną symulację S/370 na sprzęcie S/360-67 – powtórkę wcześniejszych strategii symulacji sprzętu CSC. Takie podejście umożliwiło rozwój i testowanie S/370, zanim sprzęt S/370 był dostępny. Niedobór prototypów S/370 powodował krytyczne opóźnienia, w szczególności w przypadku projektu MVS. To niezwykłe osiągnięcie techniczne zmieniło rozwój MVS, zdobyło nagrodę dla twórców CP-370 i prawdopodobnie uratowało projekt CP przed wyginięciem, pomimo agresywnych wysiłków zmierzających do anulowania projektu.

Sierpień 1972 oznaczał koniec CP / CMS wraz z ogłoszeniem przez IBM „System / 370 Advanced Function”. Obejmowało to: nowe S / 370-158 i -168; sprzęt do relokacji adresów we wszystkich S/370; oraz cztery nowe systemy operacyjne: DOS/VS (DOS z wirtualną pamięcią masową), OS/VS1 (OS/MFT z wirtualną pamięcią masową), OS/VS2 (OS/MVT z wirtualną pamięcią masową, która rozwinie się w SVS i MVS) oraz VM /370 — ponownie zaimplementowany CP/CMS. W tym czasie zespół programistów VM i CP/CMS powiększył się do 110 osób, w tym dokumentalistów. VM/370 był teraz prawdziwym systemem IBM, nie będącym już częścią Biblioteki IBM Type-III. Jednak dystrybucja kodu źródłowego była kontynuowana przez kilka wydań; Widzieć CP/CMS jako bezpłatne oprogramowanie, aby uzyskać szczegółowe informacje.

1968–86?: wiceprezes / CSS

W 1968 roku szefowie małej firmy konsultingowej w Connecticut o nazwie Computer Software Systems wpadli na śmiały pomysł wydzierżawienia IBM System/360-67 do obsługi CP/CMS i odsprzedaży czasu pracy komputera. Było to zuchwałe rozwiązanie, ponieważ IBM zwykle nie dzierżawiłby swoich systemów za 50–100 000 USD miesięcznie dwuosobowemu startupowi. Trzecim i czwartym pracownikiem byli Dick Orenstein, jeden z autorów CTSS , oraz Dick Bayles z CSC – główny architekt CP-67. Inni kluczowi pracownicy ze świata CP/CMS to Harold Feinleib, Mike Field i Robert Jesurum (Bob Jay).

Pod koniec listopada 1968 roku, po przekonaniu IBM do przyjęcia zamówienia (niemały wyczyn) i zabezpieczeniu początkowego finansowania, CSS odebrał swój pierwszy S/360-67. Zaczęli sprzedawać czas w grudniu 1968 roku.

Firma CSS szybko odkryła, że ​​sprzedając każdą dostępną minutę maszyny wirtualnej po opublikowanych cenach, ledwo uzyskiwała przychody wystarczające na opłacenie dzierżawy maszyny. Nastąpił gwałtowny program rozwoju, zwiększający wydajność CP/CMS do punktu, w którym można go było odsprzedać z zyskiem. To zapoczątkowało rozwidlenie kodu źródłowego CP/CMS, które ewoluowało niezależnie przez około piętnaście lat. Ten system operacyjny został wkrótce przemianowany na VP/CSS ; firma weszła na giełdę i została przemianowana na National CSS .

Chociaż VP/CSS miał wiele wspólnego ze swoim rodzicem CP/CMS i bratem VM/370, różnił się od nich na wiele ważnych sposobów. Ze względów biznesowych system musiał działać z zyskiem; a jego użytkownicy, jeśli są sfrustrowani, mogą w każdej chwili przestać płacić, po prostu odkładając słuchawkę. Siły te nadały wysoki priorytet czynnikom wpływającym na wydajność, użyteczność i obsługę klienta. VP/CSS szybko stało się znane z rutynowego wspierania od dwóch do trzech razy większej liczby interaktywnych użytkowników niż w porównywalnych systemach VM.

Wczesne ulepszenia NCSS obejmowały takie obszary, jak migracja stron, wysyłanie, system plików, obsługa urządzeń i wydajne funkcje hiperwizora szybkiej ścieżki , do których dostęp można uzyskać za pomocą instrukcji diagnostycznej (DIAG). Późniejsze funkcje obejmowały sieć z przełączaniem pakietów , komunikację międzyprocesową / międzymaszynową na poziomie FILEDEF ( potok ) oraz integrację z bazą danych. Podobne funkcjonalności pojawiły się również w VM . Ostatecznie zespół programistów NCSS dorównywał wielkością IBM, wdrażając szeroki wachlarz funkcji. Platforma VP/CSS była używana co najmniej do połowy lat 80. NCSS zostało przejęte przez Dun & Bradstreet w 1979 roku; zmieniono nazwę na DBCS (Dun & Bradstreet Computer Services); zwiększył swoją koncentrację na NOMAD ; zmienił swoją strategię biznesową, aby objąć VM i inne platformy; iw trakcie tego procesu zaprzestano wsparcia i rozwoju VP/CSS, prawdopodobnie ostatniego rozwidlenia CP/CMS innego niż VM.

1964? –72?: Wykorzystanie CP/CMS przez firmę IDC

Interactive Data Corporation (IDC) realizowała plan podobny do planu National CSS , sprzedając usługi z podziałem czasu w oparciu o platformę CP/CMS. W tamtym czasie skupiała się na usługach finansowych. Varian donosi, że IDC miał „kilka” systemów S / 360-67 z systemem CP / CMS i jeden z „pierwszych przenoszących S / 370 IBM”, prawdopodobnie odnoszący się do S / 370-145 z 1971 r., Z pierwszym urządzeniem DAT; ale być może do systemów ogłoszonych w 1972 r. wraz z ogłoszeniem „System / 370 Advanced Function”, w tym S / 370-158 i -168.

[Szuka się dalszych szczegółów i cytatów na temat historii podziału czasu IDC i CP/CMS.]

Notatki historyczne

Poniższe notatki zawierają krótkie cytaty, głównie z Pugh i Variana [patrz odnośniki], ilustrujące kontekst rozwoju CP/CMS. Podano tu bezpośrednie cytaty, a nie parafrazy, ponieważ perspektywy autorów zabarwiają ich interpretacje.

  • Wczesny podział czasu i CTSS: Christopher Strachey złożył wniosek patentowy dotyczący „podziału czasu” w lutym 1959 r. Wygłosił referat „Podział czasu w dużych szybkich komputerach” na pierwszej konferencji UNESCO dotyczącej przetwarzania informacji w Paryżu w czerwcu tego roku, gdzie przekazał koncepcję JCR Lickliderowi . CTSS był przełomowym systemem, który „nauczył świat, jak dzielić czas”. Po raz pierwszy został zademonstrowany w MIT w 1961 roku na IBM 709 i był używany produkcyjnie od 1964 do 1974 roku. Programistami byli Marjorie Merwin-Daggett, Robert Daley , Robert Creasy , Jessica Hellwig, Richard Orenstein (później współzałożyciel National CSS ) i Lyndalee Korn, wszyscy pracujący pod kierunkiem profesora Fernando Corbató . Deweloperzy z MIT poprosili IBM i otrzymali znaczną pomoc w dokonywaniu modyfikacji sprzętowych w celu ułatwienia przetwarzania CTSS. Creasy opisuje ważny wpływ CTSS na CP/CMS: „CTSS… najsilniej wpłynął na projekt systemu CP/CMS.… [To] dostarczyło podzbiór maszyny do użytku przez normalne programy wsadowe… uruchamiane bez modyfikacji, jak w normalnym systemie Nadzorca dzielący czas kradłby i przywracał maszynę bez ich wiedzy. Technika ta została w pełni rozszerzona w CP/CMS. Wiele innych elementów projektu CTSS i udogodnień systemowych, takich jak interfejs użytkownika, sterowanie terminalem, dyskowy system plików i dołączenie innych komputerów, służyło jako prototypy operacyjne.… Konieczność kompatybilności dla ewolucyjnego rozwoju oprogramowania została wykazana przez CTSS; dla sprzętu, przez rodzinę IBM System / 360 ”.
  • Rola Johna McCarthy'ego (znanego z LISP ) w dzieleniu czasu: „Mniej więcej w tym czasie [kwiecień 1961] John McCarthy… wygłosił specjalny wieczorny wykład [podkreślając przyszłe znaczenie podziału czasu, który] zakończył się spekulatywną uwagą, że obliczenia mogą ostatecznie „ być zorganizowany jako obiekt użyteczności publicznej, tak jak system telefoniczny jest obiektem użyteczności publicznej”. Ta wnikliwa prognoza może być postrzegana jako antycypacja roli Internetu. Podobne opinie zostały później z mocą wyrażone przez Alana Kay'a i innych. Kierownictwo IBM miało zupełnie inny pogląd na obliczenia.
  • IBM i MIT: prezes IBM, TJ Watson, „bardzo sprytnie przekazał” MIT IBM 704 do użytku przez MIT i inne szkoły w Nowej Anglii, rozpoczynając to, co miało być bardzo bliskimi stosunkami. IBM założył biuro łącznikowe MIT, mieszczące się w Centrum obliczeniowym MIT, zatrudniając wykwalifikowanych techników. Watson wspomina, że ​​„poszedł do MIT w 1955 roku i namawiał ich, aby zaczęli szkolić informatyków… [z] bardzo agresywnym programem zniżek na studia… [tak, że] w ciągu pięciu lat pojawiło się zupełnie nowe pokolenie informatyków, którzy to zrobili możliwy boom na rynku”. Varian dodaje następujący interesujący przypis: „Wygląda na to, że (bez jasnej dyrektywy kierownictwa korporacyjnego) oddział IBM w Cambridge postanowił zinterpretować pierwotną dotację udzieloną MIT przez Watsona jako upoważnienie do aktualizacji systemu w MIT, ilekroć IBM wyprodukuje mocniejszy komputer. "
  • Projekt MAC i MULTICS: Projekt MAC MIT został uruchomiony w 1963 roku w celu zbudowania nowego systemu podziału czasu, podążającego śladami CTSS. IBM złożył ofertę dostarczenia zmodyfikowanego S / 360 z translacją adresów („Blaauw Box”), która została również złożona do Bell Labs mniej więcej w tym samym czasie. MIT i Bell Labs wybrały innego dostawcę. Miało to „ważne konsekwencje dla IBM. Rzadko kiedy procesory IBM były wybieranymi maszynami do wiodących akademickich badań informatycznych”. MULTICS i UNIX (oraz różne inne platformy minikomputerowe) stały się de facto systemami badawczymi.
  • Wkład MIT do S / 360: Personel IBM blisko powiązany z MIT stał się „silnymi zwolennikami podziału czasu” i informował projektantów Systemu / 360 o pracy w MIT, w tym o celu ulepszeń sprzętowych CTSS. Architekci System/360 odwiedzili MIT i rozmawiali z profesorem Corbató. Niemniej jednak IBM wierzył teraz, że „podział czasu nigdy nie będzie miał znaczenia, a świat potrzebuje szybszego przetwarzania wsadowego”. Kiedy w 1964 roku ogłoszono System/360 bez zmiany adresu, MIT i inni zwolennicy podziału czasu poczuli się zdradzeni.
  • Pamięć wirtualna i współdzielenie czasu: „W czerwcu [1964]… [MIT był] nieugięty, że wspomagana sprzętowo dynamiczna translacja adresów (DAT) była niezbędna” do podziału czasu, „wciąż eksperymentalnego trybu działania, w którym użytkownicy na kilku konsolach mógł dzielić funkcje komputera… Najbardziej podstawowym problemem… było dynamiczne przydzielanie obszarów pamięci programom użytkownika. MIT nie wycofał się z tego stanowiska, poczuł się zdradzony przez IBM i ostatecznie odwrócił się od IBM do GE w sprawie platformy MULTICS .
  • Cambridge Scientific Centre (CSC): Założone w 1964 roku przez Norma Rasmussena, w tym samym budynku co Project MAC (lokalizacja z „dziesięcioma lub piętnastoma systemami podziału czasu, które były kodowane, testowane lub dostępne” w połowie lat 60.), CSC opracowało i utrzymuje bliskie związki z naukowcami z MIT. „Wszystkie stosunki umowne IBM z MIT zostały przekazane nowemu Centrum Naukowemu do administrowania”. Po przegranej Project MAC zespół nieoczekiwanie nie miał nic do roboty. To było środowisko, w którym CP-40 ożył.
  • Dwie konkurencyjne strategie w IBM w 1964 roku: Inżynierowie IBM byli podzieleni co do właściwej ścieżki technicznej dla firmy:
    • „Ujednolicenie architektury i programów kontrolnych komputerów biznesowych i naukowych, zarówno dużych, jak i małych” (promowany przez Brooksa / Amdahla; ta grupa odrzuciła dynamiczną translację adresów, obawiając się „nieocenionych technik lub technologii” jako podstawy całej linii produktów), kontra
    • Zmiana „sposobu, w jaki moc obliczeniowa była rozdzielana na uniwersytetach iw laboratoriach” (tj. podział czasu, popierany przez naukowców z MIT ściśle współpracujących z IBM).
  • Podzielona opinia na temat S/360: Pracownicy CSC stali się mistrzami architektury System/360 , w obliczu głębokiego sceptycyzmu środowiska naukowego. Creasy zauważa: „Koncepcja rodzinna systemu IBM System/360… była najbardziej niesamowitym punktem zwrotnym w rozwoju komputerów, który nie został powszechnie przyjęty z entuzjazmem. Wierzyliśmy [w CSC], że architektura Systemu/360, łącząca elementy naukowe i komercyjne zestawy instrukcji, będą dostępne przez znaczny okres czasu. [Wyeliminowanie] traumy związanej z powszechnym przekodowywaniem programów [poprzez obietnicę kompatybilności wstecznej S / 360] również wskazywało na długą żywotność. Ponadto spekulowaliśmy, że wiele systemy operacyjne i duża liczba programów aplikacyjnych byłyby produkowane przez cały okres eksploatacji tej konstrukcji maszyny”. Okazało się, że były to dobre prognozy.
  • Reorganizacja IBM w 1965 r.: dwa działy produktów IBM realizujące rozwój z podziałem czasu - Advanced Systems Development Division (ASDD) i Data Systems Division (DSD) - zostały „wycofane; ich… zasoby zostały przydzielone do nowego Działu Rozwoju Systemów (SDD)… oraz nowy Dział Produkcji Systemów [(SMD)]”. Rozwiązanie dużych organizacji wcześniej odpowiedzialnych za podział czasu wskazuje na działanie sił politycznych.
  • 360/67 i TSS: Rasmussen poczuł się zdradzony decyzją IBM o zignorowaniu podziału czasu i zdecydował, że „Centrum Naukowe Cambridge napisze system z podziałem czasu dla Systemu / 360”. Utrata projektu MAC w końcu przyciągnęła uwagę IBM i udostępniono zasoby, aby pomóc „wygrać przetargi na systemy z podziałem czasu”. S/360-67 przygotowano wstępne specyfikacje , który zawierałby translację adresów (poprzez „DAT Box”, który w przeciwieństwie do „Blaauw Box” obsługiwał zarówno tablice segmentów, jak i stron) oraz nowy system operacyjny: TSS. „Grupa sześciu witryn… miała umowę o zachowaniu poufności” podczas opracowywania systemu (prawdopodobnie Lincoln Lab, University of Michigan, Carnegie University, Bell Labs, General Motors i Union Carbide). University of Michigan i Lincoln Laboratory na MIT były dwoma z pierwszych sprzedaży i odegrały rolę w projektowaniu sprzętu. TSS został ogłoszony w sierpniu 1965 roku jako „elegancki i bardzo ambitny system”, ale „zbyt młody wyrwany z gniazda” z „poważnymi problemami ze stabilnością i wydajnością”.
  • Zasoby finansowe CSC: Rasmussen wykorzystał kreatywną księgowość do sfinansowania stworzenia CP-40. Varian: „Kiedy IBM przekazał 7094 Centrum Obliczeniowemu MIT, zachował nocną zmianę na tej maszynie do własnego użytku. Tak więc, ponieważ Centrum Naukowe odziedziczyło kontrakty IBM z MIT, Rasmussen „posiadał” osiem godzin 7094 czasu na dnia. Część tego czasu sprzedał Centrum Obliczeniowemu [MIT] za czas CTSS, aby jego programiści mogli go wykorzystać do pracy rozwojowej. „Sprzedał” pozostałą część [czasu 7094] programistom sprzętu IBM w Poughkeepsie, którzy źle potrzebował 7094 czasu na uruchomienie programu do automatyzacji projektowania, który był dla niego krytyczny System/360 rozwój sprzętu. Z pozyskanych w ten sposób środków wewnętrznych opłacił modyfikacje Modelu 40… [i] pracowników zatrudnionych w niepełnym wymiarze godzin, głównie studentów MIT, oraz opłacił [tymczasowe] pensje IBMerów, którzy przybyli do Cambridge, aby pracować nad system… [wykorzystując] „nieprzewidziane w budżecie przychody”… aby zachować bardzo niski profil”. Rasmussen sprzedawał także wolny czas na innym, tymczasowym S / 360-40, dostarczonym przez IBM firmie CSC, podczas gdy oni czekali na zmodyfikowany system pamięci wirtualnej. Jeśli na MIT panowało przekonanie, że fundusze MIT szły na CP/CMS, mogło to pochodzić z tych skomplikowanych transakcji.Oczywiście, niezależnie od kwestii finansowania, badacze spoza IBM, zwłaszcza z MIT i Union Carbide, wyraźnie dokonali bezpośrednich i pośrednich To również zaburzyłoby postrzeganie autorstwa.
  • Decyzje przeciwko timesharingowi: „W latach 1961 i 1962 współdzielenie czasu [wysiłki wymagały] bliskiego kontaktu z Centrum Obliczeniowym MIT poprzez sprzedaż i specjalny personel inżynieryjny”. Po krytyce MIT i ostatecznym wyborze GE dla MULTICS, grupa zadaniowa IBM „złożyła przydatne sugestie, ale skutecznie poparła pracę projektantów 360, informując, że zbyt mało wiadomo o trybie działania z podziałem czasu, aby uzasadnić [jego dążenie do ]… W 1967 roku obserwator branży naliczył około czterdziestu instalacji ogólnego przeznaczenia z podziałem czasu w Stanach Zjednoczonych – w porównaniu z dziesięcioma w 1965 i jedną (demonstracja MIT) w 1961. Część kosztów rozwoju była rekompensowana przez agencję badawczą w Departamencie Obrony, która sponsorowała sześć z pierwszego tuzina”.
  • Nieformalne wydanie CP/CMS: CP-67/CMS „zostało ogłoszone nieformalnie, ponieważ zostało opracowane poza organizacjami zajmującymi się rozwojem produktów w działach produktów i marketingu. Zobacz biuletyn instalacyjny IBM 68-10, 31 maja 1968 r., „Nowe programy typu III” , s. 13–5”. Należy zauważyć, że ten opis nie wspomina o polityce firmy, możliwym wykorzystaniu środków publicznych, roli Lincoln Labs itp.
  • Związek wczesnego podziału czasu z wprowadzeniem HP-35: Przed udostępnieniem potężnych ręcznych kalkulatorów w 1972 r., podczas „pierwszej dekady podziału czasu, jednym z zastosowań terminala było żądanie drobnych obliczeń, które musiały zostać przeniesione do bardziej miejsc dziesiętnych niż to możliwe przy pomocy suwaka logarytmicznego”. To był jeden z powodów, dla których podział czasu był tak ważny dla użytkowników naukowych i akademickich.
  • Pamięć wirtualna i strach IBM przed ryzykiem: „W następstwie traumy System/360”, co jest odniesieniem do problemów związanych z dużymi projektami, takich jak te opisane przez Freda Brooksa , kierownictwo IBM „podjęło kroki, aby firma nigdy więcej nie stała się zaangażowany w tak ryzykowny program”. U szczytu tego przepasania lędźwiowego IBM odrzucił podział czasu i pamięć wirtualną na rzecz głównego nurtu komercyjnego przetwarzania wsadowego. To ironiczne, że w latach 1970-71 inne siły w IBM „rozpoczęły wysiłki na rzecz stworzenia Systemu Przyszłości (FS) [projekt z] celami technologicznymi co najmniej tak samo ryzykownymi jak System/360.… Trzy i pół roku później projekt został porzucony”. Powszechnie wiadomo, że Gene Amdahl , kluczowy gracz FS, nadal realizował cele FS i technologii po odejściu z IBM.
  • Przeznaczenie i wykorzystanie CP/CMS: Creasy zapewnia następujący wgląd: „CMS został opracowany… w celu wspierania własnego rozwoju i utrzymania… [i] utrzymania innych komponentów VM/370.… W większości przypadków wybrano podzbiór funkcji [ wdrożyć,] z oczekiwaniem na przyszłe prace. Spodziewaliśmy się, że wiele systemów operacyjnych rozkwitnie w środowisku maszyny wirtualnej. Czy jest lepsze miejsce do eksperymentowania z nowymi pomysłami na system? Tak się nie stało. Zamiast tego do CMS dodano wiele funkcji, aby rozszerzyć jego zastosowanie na obszary lepiej obsługiwane przez nowe systemy”. Pokolenie później, gdy mamy do czynienia z różnorodnością platform zbudowanych w ramach otwartego oprogramowania do współpracy świecie, łatwo zrozumieć nadzieje Creasy'ego związane z CP/CMS jako inkubatorem rozwoju oraz jego rozczarowanie tym, co musiało się wydawać straconymi szansami. Taki los spotkał wiele systemów badawczych, ale niewiele z nich podziela ponad 40-letni łuk koncepcji wprowadzonych wraz z CP-40.

Zobacz też

Notatki

Podstawowe źródła CP/CMS


  • RJ Creasy, „ Pochodzenie systemu podziału czasu VM/370 ”, IBM Journal of Research & Development , tom. 25, nr 5 (wrzesień 1981), s. 483–90, PDF ― spojrzenie na historię CP/CMS i VM przez kierownika projektu CP-40 , także autora CTSS
  •  
    EW Pugh, LR Johnson i John H. Palmer, systemy IBM 360 i wczesne 370, MIT Press, Cambridge MA i Londyn, ISBN 0-262-16123-0 ― obszerne (819 s. ) omówienie oferty IBM w tym okresie; ograniczone omówienie CP/CMS w tak ostatecznej pracy jest wymowne

  • Melinda Varian, VM i społeczność VM, przeszłość, teraźniejszość i przyszłość , SHARE 89 Sesje 9059–61, 1997; ― znakomite źródło historii CP/CMS i VM

Dodatkowe źródła CP/CMS


  • RJ Adair, RU Bayles, LW Comeau i RJ Creasy, A Virtual Machine System for the 360/40, IBM Corporation, Cambridge Scientific Center Report No. 320‐2007 (maj 1966) — przełomowy artykuł opisujący implementację koncepcji maszyny wirtualnej, z opisami niestandardowego CSC S / 360-40 i projektu CP-40

  • International Business Machines Corporation, CP-67/CMS , Program 360D-05.2.005, IBM Program Information Department (czerwiec 1969) — podręcznik IBM

  • RA Meyer i LH Seawright, „System podziału czasu maszyny wirtualnej”, IBM Systems Journal, tom. 9, nr 3, s. 199–218 (wrzesień 1970) ― opisuje system CP-67/CMS, nakreślając funkcje i zastosowania
  • RP Parmelee, TI Peterson, CC Tillman i DJ Hatfield, „Koncepcje pamięci wirtualnej i maszyn wirtualnych”, IBM Systems Journal, tom. 11, nr 2 (czerwiec 1972)

Źródła CP/CMS w tle

  • FJ Corbató i in., Kompatybilny system podziału czasu, Przewodnik programisty, MIT Press, 1963
  • FJ Corbató, M. Merwin-Daggett i RC Daley, "Eksperymentalny system podziału czasu", Proc. Spring Joint Computer Conference (AFIPS) 21, s. 335–44 (1962) — opis CTSS
  • FJ Corbató i VA Vyssotsky, „Wprowadzenie i przegląd systemu MULTICS”, Proc. Jesienna wspólna konferencja komputerowa (AFIPS) 27, s. 185–96 (1965)
  • PJ Denning, „Pamięć wirtualna”, Computing Surveys , tom. 2, s. 153–89 (1970)

  • JB Dennis, „Segmentacja i projektowanie wieloprogramowych systemów komputerowych”, JACM tom. 12, s. 589–602 (1965) ― wymagania dotyczące pamięci wirtualnej dla Project MAC, przeznaczonej dla GE 645
  • CAR Hoare i RH Perrott, red., Techniki systemów operacyjnych , Academic Press, Inc., Nowy Jork (1972)

  • T. Kilburn, DBG Edwards, MJ Lanigan i FH Sumner, „One-Level Storage System”, IRE Trans. Elektron. Komputery EC-11, s. 223–35 (1962) ― Manchester/Ferranti Atlas

  • RA Nelson, „Mapping Devices and the M44 Data Processing System”, Research Report RC 1303 , IBM Thomas J. Watson Research Center (1964) — o IBM M44/44X
  • RP Parmelee, TI Peterson, CC Tillman i DJ Hatfield, „Koncepcje pamięci wirtualnej i maszyn wirtualnych”, IBM Systems Journal , tom. 11, s. 99–130 (1972)

Dodatkowe zasoby CP/CMS on-line

Informacje podstawowe


  • Peter J. Denning, „Performance Modeling: Experimental Computer Science at its Best”, Communications of the ACM , President's Letter (listopad 1981) — cytuje następujące artykuły dotyczące IBM M44/44X :
  • L. Belady, „A study of replacement algorytmy dla wirtualnych komputerów pamięci masowej”, IBM Systems Journal Vol. 5, nr 2 (1966), s. 78–101.
  • L. Belady i CJ Kuehner, „Dynamiczne udostępnianie przestrzeni w systemach komputerowych”, Communications of ACM Vol. 12 nr 5 (maj 1969), s. 282–88.
  • L. Belady, RA Nelson i GS Shedler, „Anomalia w charakterystyce czasoprzestrzennej niektórych programów działających w maszynach przywoławczych”, Communications of ACM Vol. 12, nr 6 (czerwiec 1969), s. 349–53.

  • LW Comeau, "CP-40, the Origin of VM/370," Proceedings of SEAS AM82 (wrzesień 1982) ― opis CP-40, cytowany w Varian [powyżej]
  • Harold Feinleib, „ Historia techniczna Narodowego CSS ”, Muzeum Historii Komputerów (marzec 2005). PDF .

  • W. O'Neill, „Doświadczenie korzystania z systemu wieloprogramowego z podziałem czasu ze sprzętem do dynamicznej relokacji adresów”, Proc. AFIPS Computer Conference 30 (Spring Joint Computer Conference, 1967), s. 611–21 ― [Opisuje eksperymentalny IBM M44 / 44X, podaje pomiary wydajności związane z pamięcią i stronicowaniem oraz omawia wpływ wieloprogramowania i współdzielenia czasu na wydajność.]

  • Dick Orenstein, „ Od samego początku… z mojego punktu widzenia ”, Muzeum Historii Komputerów (styczeń 2005). PDF ― wczesna historia National CSS

  • D. Sayre, On Virtual Systems, IBM Thomas J. Watson Research Center (15 kwietnia 1966) — artykuł o wczesnej maszynie wirtualnej, opisujący multiprogramowanie z IBM M44/44X, eksperymentalnym systemem stronicowania.

Cytaty

Drzewo rodzinne

pochodzenie >> silny wpływ > pewien wpływ/pierwszeństwo
  CTSS  
> IBM M44/44X
>> CP-40/CMS CP[-67]/CMS   VM/370 → Wersje VM/SE → Wersje VM/SP → Wersje VM/XA → VM/ESA z/VM
VP/CSS
> TSS/360
> TSO dla MVT → dla OS/VS2 → dla MVS → ... → dla z/OS
>> MULTICS i większość innych platform współdzielenia czasu