Открыть сервис

Режим разделения времени

Режим разделения времени (англ. time-sharing) — это метод организации вычислительного процесса, при котором ресурсы одной вычислительной системы (процессорное время, оперативная память, устройства ввода-вывода) предоставляются одновременно нескольким пользователям или задачам в режиме квантования времени. В отличие от пакетной обработки, где задачи выполняются последовательно, режим разделения времени создаёт иллюзию одновременной работы каждого пользователя с системой за счёт быстрого переключения между сеансами.

Принцип работы

Основой режима разделения времени является механизм прерываний и планирования задач. Операционная система выделяет каждому пользователю (или процессу) небольшой фиксированный интервал времени — квант (обычно от десятков до сотен миллисекунд). По истечении кванта система принудительно приостанавливает текущий процесс, сохраняет его контекст (регистры, счётчик команд, состояние памяти) и передаёт управление следующему процессу в очереди. Циклическое переключение между задачами происходит с частотой, достаточной для того, чтобы пользователь не замечал задержек при вводе команд или работе с интерактивными приложениями.

Планирование процессов

Для реализации режима разделения времени используются алгоритмы планирования, основанные на циклическом обслуживании (round-robin) или приоритетных очередях. В системах с разделением времени приоритет обычно динамически изменяется: чем дольше процесс не получал процессор, тем выше его приоритет. Это предотвращает «голодание» задач и обеспечивает равномерное распределение ресурсов.

Требования к аппаратному обеспечению

Для эффективной работы режима разделения времени необходимы:

  • Аппаратная поддержка защиты памяти (для изоляции процессов друг от друга);
  • Механизм прерываний от таймера (для принудительного переключения);
  • Достаточный объём оперативной памяти для хранения контекстов нескольких активных пользователей;
  • Быстрые каналы ввода-вывода (терминалы, сетевые интерфейсы).

История

Предпосылки и первые разработки

Идея разделения времени возникла в конце 1950-х годов как реакция на недостатки пакетной обработки, при которой пользователи могли часами ждать результатов своих программ. В 1957 году Джон Маккарти из Массачусетского технологического института (MIT) впервые предложил концепцию «интерактивного вычисления» с разделением времени.

Первая экспериментальная система с разделением времениCompatible Time-Sharing System (CTSS) — была разработана в MIT под руководством Фернандо Корбато. CTSS начала работать в 1961 году на компьютере IBM 7090/7094. Система поддерживала до 30 одновременных пользователей, работающих через телетайпы и дисплеи. CTSS стала прототипом для многих последующих разработок, включая проект Multics (1965–1969), который оказал влияние на создание операционной системы Unix.

Коммерциализация

В 1960-х годах режим разделения времени стал коммерчески доступным. Компания IBM выпустила систему TSS/360 для мейнфреймов System/360, однако она страдала от проблем с производительностью. Более успешными оказались системы от компании Digital Equipment Corporation (DEC): RSTS/E для PDP-11 и TOPS-10 для PDP-10, которые широко использовались в университетах и научных учреждениях.

В СССР разработки в области разделения времени велись с середины 1960-х годов. На ЕС ЭВМ (аналог IBM System/360) была создана операционная система ОС ЕС, поддерживающая мультипрограммный режим с разделением времени. В 1970-х годах в Институте точной механики и вычислительной техники (ИТМиВТ) под руководством С. А. Лебедева разрабатывались системы, обеспечивающие одновременную работу нескольких десятков пользователей.

Эпоха персональных компьютеров

С распространением персональных компьютеров в 1980-х годах режим разделения времени утратил доминирующее значение для индивидуальных пользователей, так как каждый получил выделенную машину. Однако он остался ключевым для многопользовательских систем: серверов, мейнфреймов, кластеров. В современных операционных системах (Unix, Linux, Windows, macOS) режим разделения времени реализован на уровне планировщика задач, что позволяет одновременно запускать множество приложений на одном компьютере.

Классификация

По масштабу

  • Локальные системы — обслуживают пользователей в пределах одного учреждения или организации (например, университетские вычислительные центры).
  • Удалённые системы — предоставляют доступ через терминалы или сеть (например, системы разделения времени на мейнфреймах, доступные через телефонные линии).

По типу планирования

  • С фиксированным квантом — каждому процессу выделяется одинаковый интервал времени.
  • С динамическим квантом — длительность кванта может меняться в зависимости от загрузки системы или приоритета задачи.
  • С приоритетами — процессы с более высоким приоритетом получают больше квантов или обслуживаются вне очереди.

По способу взаимодействия

  • Интерактивные — пользователь работает с системой в реальном времени через терминал (командная строка, текстовый интерфейс).
  • Фоновые — задачи выполняются без непосредственного участия пользователя, но с возможностью переключения на интерактивный режим.

Применение

Образование и научные исследования

В 1960–1980-х годах системы разделения времени были основным инструментом для обучения программированию и проведения научных расчётов. Университеты могли предоставлять вычислительные ресурсы десяткам студентов и исследователей, работающих одновременно.

Банковские и коммерческие системы

Мейнфреймы с разделением времени использовались для обработки транзакций, ведения баз данных и управления ресурсами в крупных компаниях. Например, системы IBM System/370 и их советские аналоги ЕС ЭВМ применялись в банках, на предприятиях и в государственных учреждениях.

Современные операционные системы

В современных ОС режим разделения времени реализован на уровне ядра. Планировщик Linux (Completely Fair Scheduler) использует алгоритм, основанный на виртуальном времени, что обеспечивает справедливое распределение процессорного времени между процессами. В Windows NT используется приоритетное планирование с динамическим квантом.

Облачные вычисления

Виртуализация и облачные платформы (например, Amazon Web Services, Яндекс.Облако) используют принципы разделения времени для предоставления вычислительных ресурсов множеству клиентов на одном физическом сервере. Гипервизоры (VMware ESXi, KVM) распределяют процессорное время между виртуальными машинами, аналогично режиму разделения времени.

Преимущества и недостатки

Преимущества

  • Интерактивность — пользователь получает немедленный отклик на свои действия.
  • Эффективное использование ресурсов — процессор не простаивает, пока один пользователь думает или вводит данные.
  • Совместная работа — несколько пользователей могут одновременно работать с общими данными и программами.
  • Снижение стоимости — один мощный компьютер заменяет множество персональных машин.

Недостатки

  • Накладные расходы на переключение — сохранение и восстановление контекста процессов требует времени и памяти.
  • Зависимость от производительности — при большом количестве пользователей время отклика может увеличиваться.
  • Сложность реализации — требуется сложное программное обеспечение для управления памятью, защитой и планированием.
  • Уязвимость к сбоям — выход из строя центрального компьютера приводит к потере доступа для всех пользователей.

Интересные факты

  • Термин «time-sharing» впервые был использован в 1959 году в статье Джона Маккарти «Time-Sharing Computer Systems».
  • Система CTSS (1961) поддерживала работу с телетайпами, которые печатали со скоростью 10 символов в секунду.
  • В 1965 году компания General Electric выпустила систему GE-645, специально спроектированную для режима разделения времени.
  • В СССР одной из первых систем с разделением времени стала «АИСТ-0» (1965), разработанная в Институте кибернетики АН УССР.
  • Современные суперкомпьютеры также используют принципы разделения времени для обслуживания множества параллельных задач.

Источники

  • Корбато Ф. Дж. «CTSS — The Compatible Time-Sharing System» (1962).
  • Таненбаум Э. С. «Современные операционные системы» (4-е издание, 2015).
  • Лебедев С. А. «Электронные вычислительные машины» (1968).
  • История развития операционных систем: материалы Музея вычислительной техники (Москва).
  • Документация по планировщику Linux CFS (Completely Fair Scheduler).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →