Compatible Time-Sharing System — Вікіпедія

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

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

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 с.