Разделение времени (Операционные Системы)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 16:54, 24 августа 2017.

Операционные системы общего назначения

Различают три типа операционных систем (ОС) общего назначения: поддерживающие однопрограммный режим работы и диалоговый способ общения, обеспечивающие пакетную обработку задач в режиме мультипрограммирования и операционные системы разделения времени.

  1. Операционные системы общего назначения, поддерживающие однопрограммный режим работы и диалоговый способ общения включают в себя средства, обеспечивающие ввод и вывод информации, управляют работой системных обрабатывающих программ - трансляторов, редакторов, предоставляют пользователю сведения о ходе выполнения задач, обеспечивают работу с библиотеками. Обычно такие операционные системы называют мониторными. Они не повышают производительности ЭВМ, но позволяют программисту вмешиваться в ход выполнения задания, что резко повышает производительность его работы, особенно на этапе отладки программ.
  2. Операционные системы общего назначения, обеспечивающие пакетную обработку задач в режиме мультипрограммирования применяются в ВС средней и большой производительности. В RAM ЭВМ одновременно находится несколько системных и пользовательских задач, и когда одна из них обрабатывается процессором, то для остальных осуществляются необходимые обмены с внешним устройством (ВУ).
    Эффективность использования ВС при этом во многом зависит от состава пакета задач, подлежащих выполнению, так как могут возникать ситуации, когда все задачи находятся в состоянии ожидания и процессор простаивает ( в условиях потока отладочных задач, каждая из которых характеризуется многократными обменами и незначительным временем, затрачиваемым собственно на счет). Эффективность работы пользователя при этом невысокая, так как в условиях пакетной обработки задач он не имеет возможности вмешиваться в процесс выполнения своей программы.
    Рассмотрим основные функции ОС общего назначения, обеспечивающей мультипрограммный режим обработки задач.
    Операционная система должна выполнять рациональное планирование работ по обработке всех поступающих задач (комплекс мероприятий по вводу задач в ЭВМ, распознаванию их характеристик, размещению всех входных наборов данных на внешних носителях, организации входных и выходных очередей).
    Как правило, задачи из входного потока данных, прочитанного одним из внешних устройств (ВУ), не сразу попадают в RAM ЭВМ, а размещаются на устройствах внешней памяти. В режимах пакетной обработки задачи выстраиваются в очередь (входную очередь), место задачи в очереди определяется ее приоритетом. Перенос задачи из очереди в RAM ЭВМ происходит автоматически.
    При реализации комплекса мероприятий, выполняемого ОС непосредственно перед началом решения задачи, главное внимание уделяется предоставлению всех необходимых для решения задачи ресурсов ВС (области RAM, места на диске, требующихся наборов данных и т.п.)
    Если для решения очередной задачи не хватает ресурсов, ОС должна принять одно из следующих решений:
    • отобрать часть ресурсов у какой - либо другой задачи, выполнявшейся в данный момент и менее приоритетной;
    • подождать, пока какая-нибудь из решаемых задач завершится и освободит требуемый ресурс;
    • пропустить вне очереди ту задачу, чья очередь еще не подошла, но для выполнения которой ресурсов достаточно.
  3. Операционные системы разделения времени позволяют реализовать возможность повышения производительности труда пользователя за счет его доступа к своей задаче в процессе ее выполнения и повышения производительности ВС за счет мультипрограммирования. Режим разделения времени создает иллюзию одновременного доступа нескольких пользователей ко всем вычислительным ресурсам ВС. Каждый пользователь общается с системой так, как если бы ему одному принадлежали все вычислительные ресурсы: он может остановить выполнение своей задачи в нужном месте, просмотреть требуемые области RAM, с заданного места выполнить свою программу по командам и т.д. На самом же деле каждый пользователь получает для своей задачи достаточную зону RAM, процессор и прочие вычислительные ресурсы только в течение определенного и достаточно малого интервала времени, как уже говорилось выше - кванта.
    Пропускная способность ВС в режиме разделения времени ниже, чем при обработке задач в режиме мультипрограммирования, из-за накладных расходов ОС, вызванных частыми переключениями процессора и главным образом многочисленными переносами задач из RAM на жесткий диск и обратно, то есть свопингами. Во многих пользовательских системах режим разделения времени сочетается с пакетной обработкой задач в режиме мультипрограммирования. В этом случае RAM ЭВМ разделяется на зону для пакетной обработки и на зону (или несколько зон в зависимости от емкости RAM) для выполнения задач в режиме разделения времени. Такое сочетание позволяет загружать процессор даже в ситуациях, когда все пользователи режима разделения времени остановят выполнение своих задач. Такие системы используются при решении научно- технических задач. При этом главное назначение таких ОС - обеспечение более высокой эффективности использования всех вычислительных ресурсов ВС и достижение максимальных удобств в работе пользователя. Однако использование операционных систем общего назначения в условиях работы конкретного пользователя часто означает явную избыточность многих системных средств. В таких случаях применяют ОС специального назначения.

Разделение времени (Операционные Системы)

Разделе́ние вре́мени (англ. Time-sharing) — способ распределения вычислительных ресурсов между многими пользователями с помощью мультипрограммирования и многозадачности. Появление данной концепции в начале 1960-х годов и активное развитие в 1970-е привело к значительному технологическому прорыву в истории вычислительной техники.

Позволяя многим пользователям одновременно взаимодействовать с одним компьютером, разделение времени значительно снизило цену предоставления вычислительных мощностей, сделав возможным использование компьютера организациями и индивидами без необходимости его покупки. Также разделение времени содействовало разработке новых интерактивных программ.

История разделения времени ОС

Пакетная обработка

Первые компьютеры были очень дорогими и медленными устройствами. Обычно они предназначались для выполнения конкретного набора задач и управлялись с панели оператора, который вручную вводил короткие программы посредством изменения позиции переключателей на панели. Эти программы могли выполняться в течение нескольких часов или даже недель. Но когда скорость компьютеров начала расти, простой машины в связи с вводом очередной программы стал неприемлем. Методология пакетной обработки появилась с целью уменьшить время простоя машины при вводе программы. В пакетной обработке как только одна программа завершала выполнение, компьютер загружал следующую.

Чтобы поддерживать процесс пакетной обработки, программисты использовали перфораторы перфокарт или перфолент. Это были недорогие устройства, позволившие создавать программы «офлайн». После набора программы её передавали операторам машины, которые занимались планированием времени её запуска. Важные программы запускались в первую очередь, менее важные — после выполнения всех остальных. Когда программа, наконец, выполнялась, результат её работы обычно в распечатанном виде возвращался программисту. Весь процесс мог занимать много времени, в течение которого программист вообще не видел компьютера.

Альтернатива позволить пользователю управлять компьютером напрямую, была слишком дорога чтобы её вообще могли рассматривать.

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

Концепция «разделения времени» появилась как результат понимания того, что хотя каждый отдельный пользователь использует компьютер неэффективно, группа пользователей вместе — нет. Это связано с самой формой взаимодействия: пользователь вводит информацию посимвольно, между нажатиями клавиш следует пауза, за время которой компьютер может выполнить тысячи операций, но если одновременно работает группа пользователей, паузы одного пользователя могут заполняться активностью других. Если подобрать оптимальный размер группы, эффективность использования компьютера значительно повысится. Точно также пользователям могут предоставляться интервалы времени, которые компьютер тратит на ожидание операций чтения диска, ленты или передачи по сети.

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

Идею впервые публично описал Боб Бемер в начале 1957 году, в статье для «Automatic Control Magazine». Первый проект реализации системы с разделением времени был начат Джоном Маккарти в конце 1957 года, на модификации IBM 704, и позже на модифицированном IBM 7090. Хотя он и бросил работу ради проекта MAC и других, один из полученных результатов, известный как Compatible Time-Sharing System или CTSS, был продемонстрирован в ноябре 1961 года. Утверждается что CTSS — первая система с разделением времени. Она использовалась до 1973 года. Другим претендентом на первую демонстрацию системы разделения времени была созданная Дональдом Блитцером система PLATO II, публично демонстрировавшаяся в Роберт Аллертон Парк в Университете Иллинойса в начале 1961 года. Блитцер говорил что проект PLATO получил бы патент на разделение времени, если бы только Университет Иллинойса знал как обрабатывать заявки на патент быстрее. Первой коммерчески успешной системой разделения времени была Dartmouth Time Sharing System.

Развитие

В период с конца 1960-х до конца 1970-х годов, компьютерные терминалы подключались к крупным мейнфреймам организаций (Централизованным вычислительным системам), которые во многих реализациях последовательно опрашивали терминалы чтобы увидеть, есть ли какие-либо дополнительные данные или действия, запрошенные пользователем компьютера. В дальнейшем, вместо опроса терминалов стали использоваться прерывания, а для связи — применяться технологии параллельной передачи данных, таких как стандарт IEEE 488. Как правило, компьютерные терминалы размещались в высших учебных заведениях и использовались также, как настольные (персональные) компьютеры сегодня. В самом начале эпохи персональных компьютеров, многие из них фактически использовались как терминалы для систем с разделением времени.

С развитием микрокомпьютеров в начале 1980-х годов, разделение времени отошло на второй план, поскольку отдельные микропроцессоры были достаточно дёшевы для того, чтобы один человек мог единолично распоряжаться всем процессорным временем, даже во время бездействия. Тем не менее, интернет вернул популярность концепции разделения времени. Дорогие корпоративные серверные «фермы» стоимостью в миллионы долларов предоставляют тысячам пользователей доступ к одним и тем же общим ресурсам. Как и ранние последовательные терминалы, сайты имеют дело в основном с всплесками активности, за которыми следуют периоды простоя. Подобный «всплесковый» характер позволяет использовать сервис множеству посетителей сайта одновременно так, что ни один из них не замечает каких-либо задержек передачи данных, пока загрузка серверов не станет слишком велика.

Особенности ОС с режимом разделения времени

Когда в составе компьютерных систем появились терминалы (вначале телетайпы, затем дисплеи), возникла необходимость реализации в ОС режима разделения времени ( time sharing ) – возможности одновременной работы пользователей со своими заданиями с терминалов, ввода заданий в систему, их запуска (при наличии свободного процессора), управления заданиями с терминала, их приостановки, отладки, визуализации на терминале их результатов. Рассмотрим особенности ОС с режимом разделения времени.

Хранение заданий в памяти или на диске

Ресурсы процессора в ОС с разделением времени распределены между несколькими заданиями, находящимися в памяти или на диске. Задание загружается в память (при наличии свободной памяти), если оно является пакетным и выбрано операционной системой для выполнения, либо если оно активируется пользователем с терминала. Процессор выделяется только тем заданиям, которые находятся в памяти.

Откачка и подкачка (swapping)

Откачка и подкачка (swapping) - загрузка заданий с диска в память и их выгрузка из памяти на диск. В системе с разделением времени возможна ситуация, когда какое-либо задание, управляемое с терминала, неактивно (например, выполняет ввод-вывод, либо система ожидает ответа от пользователя, у которого в данный момент перерыв в работе). В этом случае ОС может принять решение о временной выгрузке (swap out) образа памяти задания из оперативной памяти на диск, с целью освобождения памяти для других заданий. При повторной активизации задания оно (при возможности) вновь загружается в память ( swapped in ). Подобная стратегия называется откачкой и подкачкой.

Поддержка диалогового взаимодействия между пользователем и системой

Когда ОС завершает исполнение пользовательской команды, она выполняет поиск следующего управляющего оператора (control statement),введенного с пользовательской клавиатуры.

Предоставление диалогового доступа к данным и коду пользовательской программы

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

Следует учитывать, что в ОС с разделением времени обрабатываются как пакетные, так и интерактивные (диалоговые) задания, поэтому система должна обеспечивать их диспетчеризацию – переключение в нужный момент с диалогового задания на пакетное, либо с одного диалогового (пакетного) задания на другое.

Известные системы с разделением времени

  • Allen-Babcock RUSH (Remote Users of Shared Hardware) Time-sharing System on IBM S/360 hardware → Tymshare
  • AT&T Bell Labs Unix → UC Berkeley BSD Unix
  • BBN PDP-1 Time-sharing System → Massachusetts General Hospital PDP-1D → MUMPS
  • BBN TENEX → DEC TOPS-20, Foonly FOONEX, MAXC OS at PARC, Stanford Low Overhead Timesharing System (LOTS)
  • Berkeley Timesharing System at UC Berkeley Project Genie → Scientific Data Systems SDS 940 (Tymshare, BBN, SRI, Community Memory) → BCC 500 → MAXC at PARC
  • Burroughs Time-sharing MCP → HP 3000 MPE
  • Cambridge Multiple Access System was developed for the Titan, the prototype Atlas 2 computer built by Ferranti for the University of Cambridge. This was the first time-sharing system developed outside the United States, and which influenced the later development of UNIX.
  • CDC MACE, APEX → Kronos → NOS → NOS/VE
  • CompuServe, also branded as Compu-Serv, CIS.
  • Compu-Time, Inc.,[3] on Honeywell 400/4000, started in 1968 in Ft Lauderdale, Florida, moved to Daytona Beach in 1970.[источник не указан 1080 дней]
  • Dartmouth Time Sharing System (DTSS) → GE Time-sharing → GEnie
  • DEC PDP-6 Time-sharing Monitor → TOPS-10 → TSS-8, RSTS-11, RSX-11 → VAX/VMS
  • HP 2000 Time-Shared BASIC
  • IBM CALL/360, CALL/OS — using IBM 360/50
  • IBM CP-40 → CP-67 → CP-370 → CP/CMS → VM/CMS
  • IBM TSO for OS/MVT → for OS/VS2 → for MVS → for z/OS
  • IBM TSS/360 → TSS/370
  • International Timesharing Corporation on dual CDC 3300 systems.
  • MIT CTSS → MULTICS (MIT / GE / Bell Labs) → Unix
  • MIT Time-sharing System for the DEC PDP-1 → ITS
  • McGill University MUSIC → IBM MUSIC/SP
  • Michigan Terminal System, on the IBM S/360-67, S/370, and successors.
  • Michigan State University CDC SCOPE/HUSTLER System
  • National CSS VP/CSS, на серии IBM 360; originally based on IBM’s CP/CMS.
  • Oregon State University OS-3, on CDC 3000 series.
  • Prime Computer PRIMOS
  • RAND JOSS → JOSS-2 → JOSS-3
  • RCA TSOS → Univac / Unisys VMOS → VS/9
  • Service in Informatics and Analysis (SIA), on CDC 6600 Kronos.
  • System Development Corporation Time-sharing System, on the AN/FSQ-32.
  • Stanford ORVYL and WYLBUR, on IBM S/360-67.
  • Stanford PDP-1 Time-sharing System → SAIL → WAITS
  • Time Sharing Ltd. (TSL) on DEC PDP-10 systems → Automatic Data Processing (ADP), первая коммерческая система распределения времени в Европе и первая двойная (fault tolerant) система распределения времени.
  • Tymshare SDS-940 → Tymcom X → Tymcom XX
  • UC Berkeley CAL-TSS, on CDC 6400.
  • XDS UTS → CP-V → Honeywell CP-6

ОС Windows. Режим разделения времени

Появление электроннолучевых дисплеев и переосмысление возможностей применения клавиатур поставили на очередь решение этой проблемы. Логическим расширением систем мультипрограммирования стали time-sharing системы или системы разделения времени **. В них процессор переключается между задачами не только на время операций ввода-вывода, но и просто попрошествии определенного интервала времени. Эти переключения происходят столь часто, что пользователи могут взаимодействовать со своими программами во время их выполнения, то есть интерактивно. В результате появляется возможность одновременной работы многих пользователей на одной компьютерной системе. У каждого пользователя для этого должна быть хотя бы одна программа в памяти. Чтобы уменьшить ограничения на количество работающих пользователей, была внедрена идея неполного нахождения исполняемой программы в оперативной памяти. Основная часть программы находится на диске и необходимый для ее дальнейшего выполнения кусок может быть легко загружен в оперативную память, а ненужный выкачан обратно на диск. Это реализуется с помощью механизма виртуальной памяти. Основным достоинством такого механизма является создание иллюзии неограниченной оперативной памяти ЭВМ.

В системах разделения времени пользователь получил возможность легко и эффективно вести отладку своей программы в интерактивном режиме, записывать информацию на диск, не используя перфокарты, а непосредственно с клавиатуры. Появление on-line файлов привело к необходимости разработки развитых файловых систем.

Параллельно внутренней эволюции вычислительных систем в этот период наблюдается и внешняя их эволюция. До начала этого периода вычислительные комплексы были, как правило, несовместимы. Каждый имела свою собственную специальную операционную систему, свою систему команд и т.д. В результате программу, успешно работающую на одном типе машин, необходимо было полностью переписать и заново отладить для другого типа компьютеров. В начале третьего периода появилась идея создания семейств программно-совместимых машин, работающих под управлением одной и той же операционной системы. Первым семейством программно-совместимых машин, построенных на интегральных микросхемах, явилась серия машин IBM/360. Построенное в начале 60-х годов это семейство значительно превосходило машины второго поколения по критерию цена/производительность. За ней последовала линия компьютеров PDP, несовместимых с линией IBM, кульминацией которой стала PDP-11.

Сила одной семьи была одновременно и ее слабостью. Широкие возможности этой концепции (наличие всех моделей: от миникомпьютеров до гигантских машин; обилие разнообразной периферии; различное окружение; различные пользователи) порождали сложную и огромную операционную систему. Миллионы строчек ассемблера, написанные тысячами программистов, содержали множество ошибок, что вызывало непрерывный поток публикаций о них и попыток их исправления. Только в операционной системе OS/360 содержалось более 1000 известных ошибок. Тем не менее, идея стандартизации операционных систем была широко внедрена в сознание пользователей и в дальнейшем получила активное развитие.

Системы разделения времени призваны исправить основной недостаток систем пакетной обработки - изоляцию пользователя-программиста от процесса выполнения его задач. Каждому пользователю системы разделения времени предоставляется терминал, с которого он может вести диалог со своей программой. Так как в системах разделения времени каждой задаче выделяется только квант процессорного времени, ни одна задача не занимает процессор надолго, и время ответа оказывается приемлемым. Если квант выбран достаточно небольшим, то у всех пользователей, одновременно работающих на одной и той же машине, складывается впечатление, что каждый из них единолично использует машину. Ясно, что системы разделения времени обладают меньшей пропускной способностью, чем системы пакетной обработки, так как на выполнение принимается каждая запущенная пользователем задача, а не та, которая "выгодна" системе, и, кроме того, имеются накладные расходы вычислительной мощности на более частое переключение процессора с задачи на задачу. Критерием эффективности систем разделения времени является не максимальная пропускная способность, а удобство и эффективность работы пользователя.

Примечания

  • Гордеев А. В. Операционные системы: Учебник для вузов. — 2-е изд. — СПб.: Питер, 2007. — 416 с.
  • Деннинг П. Дж., Браун Р. Л. Операционные системы // Современный компьютер. — М., 1986.
  • Иртегов Д. В. Введение в операционные системы. — 2-е изд. — СПб.: BHV-СПб, 2007.
  • Керниган Б. У., Пайк Р. У. UNIX — универсальная среда программирования = The UNIX Programming Environment. — М., 1992.
  • Олифер В. Г., Олифер Н. А. Сетевые операционные системы. — СПб.: Питер, 2002. — 544 с.
  • Столлингс У. Операционные системы = Operating Systems: Internals and Design Principles. — М.: Вильямс, 2004. — 848 с.
  • Таненбаум Э. С. Многоуровневая организация ЭВМ = Structured Computer Organization. — М.: Мир, 1979. — 547 с.
  • Таненбаум Э. С. Современные операционные системы = Modern Operating Systems. — 2-е изд. — СПб.: Питер, 2005. — 1038 с.
  • Таненбаум Э. С., Вудхалл А. С. Операционные системы. Разработка и реализация = Operating Systems: Design and Implementation. — 3-е изд. — СПб.: Питер, 2007. — 704 с.
  • Шоу А. Логическое проектирование операционных систем = The Logical Design of Operating Systems. — М.: Мир, 1981. — 360 с.
  • Рэймонд Э. С. Искусство программирования для UNIX = The Art of UNIX Programming. — М.: Вильямс, 2005. — 544 с.
  • Mark G. Sobell. UNIX System V. A Practical Guide. — 3rd ed. — 1995.
  • Ж. Бертэн, М. Риту, Ж. Ружие. Работа ЭВМ с разделением времени / под ред. С.С. Лаврова; пер. с фр. В.И. Рыбаченкова и В.И. Филиппова. — 2-е изд. — М.: Наука, 1972. — 207 с.
  • Г.Н. Соловьев, В.Д. Никитин. Операционные системы ЭВМ. — М.: Высшая школа, 1989. — 255 с.