OS/360, plným názvem IBM System/360 Operating System, je operační systém pro dávkové zpracování společnosti IBM pro tehdejší sálové počítače IBM System/360, který byl ohlášen v roce 1964 a vyvíjen do roku 1972. Byl to jeden z prvních operačních systémů, které vyžadovaly, aby hardware počítače zahrnoval alespoň jedno úložné zařízení s přímým přístupem.
Vývoj systému OS/360 skončil v roce 1972 vydáním verze 21.8, navazují však na něj další operační systémy, včetně systému MVS s virtuální pamětí a 64bitového systému z/OS, které jsou provozované i po roce 2020, a zachovávají kompatibilitu s OS/360 na aplikační úrovni.
Druhým hlavním operačním systémem pro počítače IBM System/360 byl DOS/360.
Úvod Společnost IBM ohlásila tři různé úrovně systému OS/360, které byly generované ze stejné pásky a sdílely většinu kódu. IBM nakonec tyto varianty přejmenovala a provedla některé významné změny návrhu:
Single Sequential Scheduler (SSS) Option 1 Primary Control Program (PCP) Multiple Sequential Schedulers (MSS) Option 2 Multiprogramming with a Fixed number of Tasks (MFT) MFT II Multiple Priority Schedulers (MPS) Option 4 VMS Multiprogramming with a Variable number of Tasks (MVT) Model 65 Multiprocessing (M65MP)
Uživatelé systém často nazývali různými přezdívkami, například „Big OS“, „OS/MFT“, které nebyly společností IBM oficiálně uznány.
IBM poskytovala OS/360 jako sadu knihoven na pásce, které se při instalaci musely rozbalit na zařízení s přímým přístupem (DASD), aby bylo možné provést generování systému. IBM také volitelně nabízela sadu pásek se zdrojovými texty, které bylo možné použít k úpravě a sestavení modulů, které IBM normálně poskytovala ve formě cílového kódu. IBM navíc nabízela mikrofiše s výpisy zdrojových textů základních programů v jazyce symbolických adres a následné služby. Distribuce zdrojových kódů trvala, dokud IBM pro licencovaný software nezavedla politiku Object Code Only (OCO, pouze cílové kódy).
V současnosti je OS/360 volným dílem a lze si jej volně stáhnout. Je možné jej provozovat na skutečném hardwaru System/360, nebo na emulátoru Hercules, který je k dispozici pro většinu unixových systémů včetně Linuxu, Solarisu a MacOSu, i pro Microsoft Windows. Existují hotová CD se systémem OS/360, obsahující předgenerované verze OS/360 21.8 připravené pro spuštění v emulátoru Hercules.
Původ OS/360 byl ovlivněn dřívějšími softwarovými sestavami IBM 7090/94 IBSYS a Input/Output Control System (IOCS) pro IBM 7090/7094 a především operačním systémem PR155 pro procesory IBM 1410/7010. IBM původně zamýšlela, že System/360 bude mít pouze jeden dávkově orientovaný operační systém, OS/360, schopný běhu na strojích s pouhými 32 KiB paměti. Pro nejsilnější System/360 Model 67 měla v úmyslu dodávat zvláštní operační systém se sdílením času nazvaný TSS/360. IBM se nakonec rozhodla dodávat jiné, jednodušší dávkově orientované operační systémy, pro což existují nejméně dvě vysvětlení:
IBM zjistila, že „přibližně 1,5 milionu instrukcí, které umožní, aby systém pracoval prakticky bez ručního zásahu“ a které tvoří OS/360, by se nevešlo do omezené paměti dostupné na menších modelech System/360; nebo protože si uvědomila, že vývoj systému OS/360 bude trvat mnohem déle než se předpokládalo.
Aby IBM zabránila propadu prodeje hardwaru System/360, vytvořila řadu mezistupňů: nejdříve IBM Basic Programming Support (BPS) a BOS/360 (Basic Operating System, pro nejmenší stroje s 8 Kbyte paměti), pak TOS/360 (Tape Operating System, pro stroje s nejméně 16 Kbyte paměti bez diskových jednotek, pouze s magnetopáskovými jednotkami), a nakonec DOS/360 (Disk Operating System), který se stal mainstreamovým operačním systémem a předchůdcem široce používaného systému z/VSE.
Společnost IBM vydala tři varianty systému OS/360: v roce 1966 PCP (Primary Control Program), základní variantu, která neumožňovala běh více úloh současně; současný běh více úloh umožňovala varianta MFT (Multiprogramming with a Fixed number of Tasks) určená pro středně velké stroje a varianta MVT (Multiprogramming with a Variable number of Tasks) pro nejvýkonnější stroje.Introduction, op. cit., page 50 MFT a MVT se používaly nejméně do roku 1981, tedy deset let po uvedení jejich následníků. Dělení mezi MFT a MVT vzniklo kvůli omezením úložného prostoru a plánování. Zpočátku IBM tvrdila, že MFT a MVT jsou jednoduše „dvě konfigurace řídicího programu OS/360“, ale později je uváděla jako „zvláštní verze OS/360“.
OS/360 byl původně napsán v jazyce symbolických adres. Později byla část kódu OS/360 napsána v Basic Systems Language (BSL), novém jazyce, odvozeném z PL/I. V BSL byla napsána velká část kódu pro TSO ve verzi 20.
Vývoj systému TSS/360 trval tak dlouho a systém byl zpočátku tak nespolehlivý, že byl dodáván až ve verzi TSS/370 PRPQ až pro počítače IBM System/370. Náhradou byl hypervizor CP-67, který v té době fungoval natolik dobře, že jej IBM poskytovala bez záruky několika velkým zákazníkům pro systémy se sdílením času.The IBM 360/67 and CP/CMS
Varianty OS/360 Tyto tři varianty poskytovaly tak podobné nástroje, že portování aplikací mezi nimi obvykle vyžadovalo minimální úsilí; stejná verze většiny programových produktů společnosti IBM, aplikací a utilit běžela na obou. Následující text většinou považuje za PCP, MFT a MVT za používanější nová jména pro původní produkty SSS, MSS a MPS, i když se od nich v některých detailech návrhu lišily. Tento text také nerozlišuje mezi M65MP a MVT.
Oficiálně nejsou PCP, MFT a MVT zvláštní operační systémy ze skupiny OS/360, ale pouze volbou při instalaci systému, třemi různými variantami jádra OS a plánovače. Kvůli odlišnému použití a paměťovým požadavkům je však uživatelé obvykle považují za de facto různé operační systémy a odkazují se na ně jako na „časný OS/360“, „OS/MFT“, „OS/MVT“. MFT se odlišuje od MVT především způsobem, jakým spravuje paměť: při instalaci MFT musí zákazník při generování systému (SysGen) určit pevný počet oblastí paměti s pevnými hranicemi, přičemž při provozu mohl být v každé oblasti zaveden jiný program, a tyto programy běžely „současně“(pseudoparalelismus).
PCP Primary Control Program (PCP) byl určen pro stroje s malou pamětí. Podobá se MFT s jedním oddílem. Zkušenosti ukázaly, že není vhodné instalovat OS/360 na systémy s méně než 128 KiB paměti, i když omezené produkční použití bylo možné i na mnohem menších strojích, např. se 48 KiB paměti. V posledním vydání OS/360 již PCP nebylo, bylo k dispozici pouze MFT II a MVT, které obě vyžadovaly více paměti.
Ve voláních některých systémově závislých maker se pro PCP používalo SYS=MIN.
MFT Multiprogramming with a Fixed number of Tasks (MFT) byl navržen jako mezistupeň, dokud nebyla (od roku 1967) dostupná varianta Multiprogramming with a Variable number of Tasks (MVT). První verze MVT měly mnoho problémů, takže jednodušší MFT se používalo ještě mnoho let. Po uvedení nových strojů IBM System/370 s virtuální pamětí v roce 1972, IBM dodávala MFT 2 pod názvem OS/VS1, což byla poslední verze této varianty systému.
První verze MFT sdílely většinu kódu a architekturu s PCP, a byly omezené na čtyři oddíly. Spustit několik oddílů bylo velmi obtížné. Mnoho instalací používalo pro zjednodušení Houston Automatic Spooling Priority (HASP).
MFT Verze II (MFT-II) sdílela většinu kódu řídicího programu a plánovače s MVT, a byla mnohem flexibilnější. Maximální počet oddílů byl zvětšena na 52.
Pozdější úpravy MFT-II přidaly sub-tasking, takže počet úloh už nebyl pevný, i když počet oddílů zůstával omezen.
Zkušenosti ukazovaly, že není vhodné instalovat MFT na systémy s méně než 256 KiB paměti, což bylo v 60. letech 20. století dosti velké množství.
Ve voláních systémově závislých maker se pro MFT používalo SYS=INT.
MVT Multiprogramming with a Variable number of Tasks (MVT) byla nejpropracovanější ze všech tří dostupných variant řídicího programu OS/360, a jednou ze dvou dostupných konfigurací v posledním vydání. MVT bylo určeno pro největší stroje rodiny System/360. Bylo ohlášeno v roce 1964, ale dostupné bylo až od roku 1967. První verze měly mnoho problémů a proto se jednodušší MFT používalo ještě mnoho let. Zkušenosti ukázaly, že není dobré instalovat MVT na systémy s méně než 512 KiB paměti.
MVT pracuje s veškerou pamětí nepoužitou operačním systémem jako s fondem, ze kterého přiděluje souvislé oblasti podle potřeb libovolného množství současně spuštěných aplikací a systémových programů. Toto schéma je flexibilnější než MFT a z principu používalo paměť efektivněji, jeho problémem však byla fragmentace paměti – po určité době se mohlo stát, že ačkoli existovalo dostatečné množství volné paměti pro spuštění určitého programu, tato volná paměť byla rozdělena na několik částí, z nichž žádná nemá dostatečnou velikost. System/360 neměl hardware pro relokaci paměti, který by umožňoval přesouvat úlohy v paměti a tak omezovat fragmentaci. Systém poskytoval nástroj nazývaný Rollout/Rollin, který umožňoval odsunout běžící úlohu do sekundární paměti, a tak umožnit jiným úlohám použít zabranou paměť. Odsunutá úloha však musela být později načtena na původní umístění.
V roce 1971 bylo ve verzi 20.1 do MVT doplněno Time Sharing Option (TSO), které se stalo nejpoužívanějším prostředím pro vývoj programů, protože poskytovalo editor, možnost zadávat dávkové úlohy, být informován o jejich dokončení, a prohlížet výsledky bez čekání na vytištěné zprávy, a ladicí programy pro některé programovací jazyky používané na System/360. TSO v OS/360 využívalo pro komunikaci s terminály Telecommunications Access Method (TCAM). Název TCAM naznačoval, že IBM doufala, že se stane standardní přístupovou metodou pro datové komunikace, ale ve skutečnosti se TCAM v OS/VS2 používala téměř výhradně pro TSO a ve druhé polovině 70. let 20. století byla z větší části nahrazena novější verzí Virtual Telecommunications Access Method (VTAM).
Ve voláních některých systémově závislých maker bylo MVT označováno SYS=VMS.
M65MP Model 65 Multiprocessing (M65MP) je variantou MVT. Byl určen pro 360/65 v režimu Multisystem. M65MP hlídá použití instrukce Set System Mask (SSM) pro serializaci chráněného kódu mezi dvěma procesory. Jinak je chování a rozhraní M65MP z větší části stejné jako v jiných systémech MVT.
Pro M65MP se ve voláních systémově závislých maker používalo SYS=VMS stejně jako pro jednoprocesorové MVT.
Společné vlastnosti Z pohledu aplikačních programů poskytují PCP, MFT a MVT podobné nástroje:
Stejné aplikační programové rozhraní (API) a ABI (ABI), takže aplikační programy mohly být přenášeny mezi MFT a MVT aniž by bylo třeba je měnit, znovu sestavovat nebo znovu překládat. Stejný JCL (Jazyk pro řízení úloh, pro zadávání dávkových úloh), který byl flexibilnější a snáze použitelný, i když složitější než JCL v DOS/360. Stejné nástroje (přístupové metody) pro čtení a zápis souborů a pro datové komunikace: Sekvenční datové soubory jsou normálně čteny nebo zapisovány po záznamech od začátku do konce s použitím BSAM nebo QSAM. Tyto techniky byly jediné možné pro magnetopáskové jednotky, čtečky a děrovače děrných štítků a tiskárny. V indexovaných (Indexed Sequential Access Method) souborech určená část každého záznamu představuje klíč, který lze použít pro vyhledání určitých záznamů. V souborech s přímým přístupem (BDAM) musí aplikační program zadat relativní číslo bloku, relativní stopu a záznam (TTR) nebo skutečné fyzické umístění (MBBCCHHR) na Zařízení s přímým přístupem (DASD) dat, ke kterým chce přistupovat nebo výchozí bod pro vyhledávání podle klíče. Programování BDAM nebylo snadné a většina institucí jej sama nikdy nepoužívala; byl to však nejrychlejší způsob přístupu k datům na discích a mnoho softwarových společností jej používalo ve svých produktech, především v systémech pro správu databází např. ADABAS, IDMS a DL/I společnosti IBM. BDAM je také dostupný ve Fortranu pro OS/360. Datové soubory používající BDAM nesdružují záznamy do bloků, tj. jeden logický záznam odpovídá jednomu fyzickému záznamu.