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

Concurrent CP/M

Concurrent CP/M — это многозадачная операционная система для микрокомпьютеров на базе процессоров Intel 8080 и Zilog Z80, разработанная компанией Digital Research (США) в начале 1980-х годов. Она представляет собой расширение однопользовательской однозадачной операционной системы CP/M, позволяющее одновременно выполнять несколько программ (задач) в режиме разделения времени на одном компьютере. Concurrent CP/M была одной из первых коммерческих операционных систем, реализовавших многозадачность для персональных компьютеров, и оказала влияние на развитие последующих многозадачных систем, включая MP/M и DOS.

История

Предпосылки создания

В конце 1970-х годов операционная система CP/M (Control Program for Microcomputers) стала фактическим стандартом для 8-битных микрокомпьютеров. Однако её архитектура была однозадачной: в любой момент времени могла выполняться только одна программа. С ростом производительности процессоров и объёмов оперативной памяти возникла потребность в возможности одновременной работы с несколькими приложениями, например, текстовым редактором и электронной таблицей, или в организации многопользовательских терминалов.

Разработка и выпуск

Digital Research, возглавляемая Гэри Килдаллом, начала разработку многозадачного расширения CP/M в 1980 году. Первая версия, получившая название Concurrent CP/M 1.0, была выпущена в 1981 году. Она предназначалась для компьютеров с процессорами Intel 8080 и Z80, оснащённых не менее чем 64 КБ оперативной памяти. В 1982 году вышла версия 2.0, которая поддерживала до 4 задач одновременно, а также включала улучшенную поддержку дисковых накопителей и терминалов. В 1983 году была выпущена версия 3.0, которая могла работать с процессорами Intel 8086 и 80286, что позволило портировать систему на 16-битные платформы.

Распространение и конкуренция

Concurrent CP/M использовалась преимущественно в корпоративном секторе и на специализированных рабочих станциях, где требовалась многозадачность. Она конкурировала с такими системами, как MP/M (многопользовательская версия CP/M) и ранними версиями MS-DOS, которая, однако, была однозадачной. Несмотря на технические преимущества, Concurrent CP/M не получила широкого распространения на массовом рынке персональных компьютеров из-за высокой стоимости аппаратного обеспечения (требовался дополнительный контроллер прерываний и память) и ограниченной поддержки со стороны производителей ПО. К середине 1980-х годов, с появлением более мощных 16-битных систем и операционных систем с графическим интерфейсом (например, GEM от Digital Research), интерес к Concurrent CP/M снизился, и её развитие было прекращено.

Архитектура и особенности

Многозадачность

Concurrent CP/M реализовала вытесняющую многозадачность (preemptive multitasking) с использованием аппаратных прерываний от таймера. Система делила процессорное время между задачами в соответствии с квантами времени (обычно 1/60 секунды). Каждая задача получала свой собственный сегмент памяти (адресное пространство) и набор системных ресурсов. Планировщик задач (scheduler) управлял очередью выполнения, переключая контекст при каждом прерывании.

Управление памятью

Для работы с несколькими задачами требовалось эффективное управление оперативной памятью. В 8-битных версиях (8080/Z80) адресное пространство было ограничено 64 КБ, поэтому система использовала технику банковской переключения памяти (bank switching). Память делилась на логические банки (обычно по 16 КБ), которые могли быть переключены между задачами. Это позволяло каждой задаче иметь до 64 КБ виртуальной памяти, хотя физически использовалось больше. В 16-битных версиях (8086/80286) использовалась сегментация или страничная организация памяти.

Поддержка терминалов

Concurrent CP/M поддерживала многопользовательский режим через последовательные терминалы. К одному компьютеру можно было подключить до 4 терминалов (например, VT100 или аналоги), на каждом из которых работал отдельный пользователь. Система обрабатывала ввод-вывод с каждого терминала через драйверы, управляемые прерываниями. Это позволяло использовать один компьютер как мини-сервер для нескольких пользователей.

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

Файловая система оставалась совместимой с CP/M: использовалась та же структура каталогов (директории с именами до 8 символов) и формат дисков (FAT-подобный). Однако Concurrent CP/M вводила поддержку одновременного доступа к файлам со стороны нескольких задач, что требовало механизмов блокировки (file locking) для предотвращения конфликтов. Система также поддерживала до 16 дисководов (логических дисков) с метками A: до P:.

Совместимость с приложениями

Большинство приложений, написанных для однозадачной CP/M, могли работать в среде Concurrent CP/M без изменений, так как системные вызовы (BIOS) оставались совместимыми. Однако программы, которые напрямую обращались к аппаратному обеспечению (например, к портам ввода-вывода или прерываниям), могли давать сбои в многозадачной среде. Для таких случаев система предоставляла режим эмуляции однозадачности.

Применение

Корпоративные рабочие станции

Concurrent CP/M использовалась в офисах и на предприятиях для организации многопользовательской работы с текстовыми редакторами (например, WordStar), электронными таблицами (SuperCalc) и базами данных (dBase II). Один компьютер с несколькими терминалами заменял несколько отдельных машин, что снижало затраты на оборудование.

Разработка программного обеспечения

Система применялась разработчиками для одновременной компиляции, редактирования и тестирования кода. Многозадачность позволяла запускать компилятор в фоне, не прерывая работу в редакторе.

Системы управления (SCADA)

В промышленности Concurrent CP/M использовалась в системах сбора данных и управления (SCADA), где требовалось одновременно обрабатывать данные с датчиков, вести логи и управлять исполнительными механизмами.

Критика и ограничения

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

Для работы Concurrent CP/M требовался компьютер с не менее чем 64 КБ ОЗУ (рекомендовалось 128 КБ), а также контроллер прерываний и таймер. Это делало систему дороже по сравнению с однозадачной CP/M, которая могла работать на машинах с 16 КБ памяти.

Ограниченная поддержка периферии

Многие периферийные устройства (принтеры, плоттеры, модемы) не имели драйверов для многозадачной среды, что ограничивало их использование. Пользователям часто приходилось писать собственные драйверы.

Сложность настройки

Настройка многопользовательской конфигурации требовала квалифицированного персонала. Необходимо было правильно сконфигурировать терминалы, драйверы и параметры памяти, что было нетривиальной задачей для неподготовленных пользователей.

Влияние на последующие системы

Concurrent CP/M заложила основы для многозадачных операционных систем на платформе x86. Её архитектура (вытесняющая многозадачность, банковская переключение памяти, поддержка терминалов) была использована в MP/M, а затем в более поздних версиях DR-DOS (например, DR-DOS 7.0). Некоторые идеи из Concurrent CP/M, такие как разделение времени и файловые блокировки, были адаптированы в Microsoft Windows 3.x и OS/2. Система также продемонстрировала, что многозадачность возможна на 8-битных процессорах, что стимулировало развитие более мощных аппаратных платформ.

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

  • Concurrent CP/M была одной из первых операционных систем, поддерживающих «горячие клавиши» для переключения между задачами (например, Ctrl+Esc).
  • В версии 3.0 для процессора 8086 была реализована поддержка виртуальной памяти, что было редкостью для того времени.
  • Система могла работать с дисками объёмом до 8 МБ, что было значительным для 8-битных компьютеров.
  • Concurrent CP/M использовалась в некоторых советских клонах компьютеров, например, в «Электронике МС 0511».

Источники

  • Digital Research Inc. (1981). Concurrent CP/M User's Guide. Pacific Grove, CA: Digital Research.
  • Kildall, G. (1982). The CP/M Handbook. Berkeley, CA: Sybex.
  • Duncan, R. (1983). The MS-DOS Encyclopedia. Redmond, WA: Microsoft Press.
  • Byte Magazine (1982). "Concurrent CP/M: A Multitasking Operating System for Microcomputers", Vol. 7, No. 8.
  • InfoWorld (1983). "Digital Research's Concurrent CP/M 3.0: A Technical Overview", Vol. 5, No. 12.

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

На главную BFOmetr →