Compatible Time-Sharing System, CTSS (Сумісна система спільного часу) — одна з перших або перша операційна система з поділом часу. Була розроблена в Массачусетському технологічному інституті (MIT) і вперше продемонстрована в 1961 році. Проіснувала в MIT до 1973 року.

Compatible Time-Sharing System
РозробникМассачусетський технологічний інститут
Випущено у
виробництво
1961

CTSS була описана в документі, представленому на Spring Joint Computer Conference в 1962 році, і значною мірою вплинула на дизайн інших систем раннього поділу часу.

Огляд

ред.

Термін Compatible в назві визначав зворотну сумісність з системою пакетної обробки ОС FORTRAN Monitor System (FMS) для IBM 7094, який був спеціально доопрацьований для цієї системи. CTSS виконував незмінену копію FMS, обробляючи стандартний пакетний потік, а псевдо-віртуальна 7094 забезпечувала виконання фонових задач (більш докладно про віртуалізацію апаратного забезпечення див VM).

Досвід використання CTSS показав життєздатність ідей поділу часу і мав значний вплив на наступні покоління систем поділу часу, зокрема ОС CP/CMS. Подальший розвиток цих ідей відбувся після того, як ЕОМ отримали технічні засоби обмеження доступу до обчислювальних ресурсів системи для забезпечення захисту ядра ОС, файлів та пам'яті процесів.

Ідеї CTSS також отримали розвиток в проекті Multics, який ініціював багато основних концепцій сучасних багатозадачних операційних систем.

Особливості реалізації

ред.

Через малий обсяг оперативної пам'яті IBM 7094 розробники були змушені зберігати в оперативній пам'яті лише ядро системи та один процес, пам'ять інших процесів в цей час зберігалась на жорсткому диску. Як наслідок, CTSS мала значний час відгуку, обумовлений необхідністю перенесення даних між оперативною та зовнішньою пам'яттю. Тим не менше, це рішення виявилось кращим, ніж послідовне виконання задач, оскільки дозволяло більш ефективно використовувати обчислювальні ресурси системи (наприклад, в той час, як одна задача очікувала встановлення оператором магнітної стрічки, інша продовжувала розрахунки).

Ядро

ред.

Підпрограми супервізора

ред.
  • RDFLXA – Читання вводу з консолі
  • WRFLX – Вивід на консоль
  • DEAD – Встановлення стану користувача у «непрацюючий» без жодної програми у пам'яті
  • DORMNT – Встановлення стану користувача у «сплячий» (англ. dormant), з програмою у пам'яті
  • GETMEM – Отримання розміру блоку виділення пам'яті
  • SETMEM – Встановлення розміру блоку виділення пам'яті
  • TSSFIL – Отримання доступу до системних файлів на диску
  • USRFIL – Повернення до власного каталога користувача
  • GETBRK – Отримання лічильника інструкцій

Мови програмування

ред.

Спочатку CTSS мала лише асемблер FAP і компілятор MAD. Код Fortran II можна було транслювати у код MAD. Пізніше[коли?] близько половини системи було переписано на MAD, а також з'явилися транслятори з LISP і одного з варіантів Алголу.

Файлова система

ред.

Кожен користувач мав свій власний каталог, також були каталоги для груп користувачів, які мали спільний «номер проблеми» (англ. problem number). Кожен файл мав два імені, призначення другого імені було схоже на розширення (суфікс) файлу у сучасних ОС. Спочатку кожен файл міг мати один з чотирьох режимів: тимчасовий, постійний, «лише для читання клас 1» і «лише для читання клас 2» (останній відрізнявся від передостаннього тим, що користувачі не могли змінювати права даних файлів). Можна було також робити «посилання» на файли з інших каталогів. Нижче наведено приклад виводу вмісту каталогу командою listf:

	10 FILES	20 TRACKS USED
DATE		NAME		MODE	NO. TRACKS
5/20/63		MAIN	MAD	P	15
5/17/63 	DPFA	SYMTB	P	1
5/17/63 	DPFA	BSS	P	1
5/17/63 	DPFA	FAP	P	2

Посилання

ред.
  • Таненбаум Эндрю С, ‎Бос Херберт. Современные операционные системы. 4-е изд. СПб: 2015. 1200 с.