Лекция 1-2 Введение

Вид материалаЛекция

Содержание


1. Функции, реализуемые виртуальными машинами
2. Функции контроля и распределения ресурсов
1.2. Примеры операционных систем
1.2.1. Персональный компьютер
1.2.2. Управление производственными процессами
Обеспечение безопасности.
1.2.3. Информационные системы
1.2.4. Системы с разделением времени
1.3. Краткая история развития операционных систем
1.3.1. От «открытых дверей» к пакетной обработке
1.3.2. Мультипрограммирование и разделение времени
1. Буферный ввод-вывод.
1.3.3. Сети. Распределенные системы. Персональные компьютеры
1.3.4. Концептуальное развитие операционных систем
1. Модульность и иерархическое структурирование.
2. Понятие объекта и защита.
Подобный материал:
Лекция 1-2

Введение

Программы, выполняемые на компьютере, по функциональ­ному назначению подразделяются на два класса: прикладные и системные. Операционная система составляет важную часть программ второго класса. Ниже мы уточним смысл этих терми­нов, определим и проиллюстрируем примерами основные функ­ции операционных систем, а также приведем общие характери­стики таких систем.

1.1. Функции операционной системы

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

Основная функция информационно-вычислительной системы заключается в предоставлении услуг для решения традицион­ных задач:
  • управление информацией (хранение, введение и использо­вание имен и обозначений, поиск, организация связей и т. п.);
  • разработка и отладка программ;
  • эксплуатация программ.

Можно считать, что совокупность таких услуг представляет для пользователя некоторую «абстрактную» или «виртуальную» машину в противоположность реальной, существующей физиче­ски машине. Описание этих услуг и правила пользования ими образуют интерфейс информационно-вычислительной системы. Этот интерфейс определяет язык абстрактной машины, который позволяет пользователям и приборам общаться с системой.

С развитием технических средств уровень абстракции выра­жения отношений на таком языке повышается. Объекты или операции, рассматриваемые в качестве элементарных для абст­рактной машины, реализуются с помощью все более сложных объектов и операций физической машины. Кроме того, разные пользователи одной и той же информационно-вычислительной системы должны иметь возможность, вообще говоря, общаться с различными абстрактными машинами. Концептуально систему удобно рассматривать с точки зрения двух выполняемых ею функций: 1) функции, общей для широкого круга применений, реализуемой системными программами, 2) функции, необходи­мой для решения конкретных задач пользователя и реализуе­мой прикладными программами. При этом в прикладных про­граммах используются возможности обращения к системным программам.

Рассмотрим изображенную на рис. 1.1 иерархическую структуру системы. Здесь каждый «слой», с одной стороны, исполь­зует ресурсы, предоставляемые слоем, расположенным под ним, а с другой — формирует интерфейс для предоставления своих ресурсов слою, находящемуся над ним. Интерфейс самого верх­него слоя является интерфейсом всей системы. Понятия, свя­занные с приведенной декомпозицией системы, уточняются и развиваются в последующих лекциях.




Эта схема описывает декомпозицию системы лишь прибли­женно. Границы между слоями могут быть подвижными: про­грамма, разработанная вначале в качестве прикладной, может быть впоследствии включена в число системных, если она яв­ляется повседневным инструментом для целого класса пользо­вателей. Некоторая функция, представленная в виде системной программы, может быть реализована микропроцессором, если это оправдано соображениями экономии или удобства.

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



1. Функции, реализуемые виртуальными машинами:

а) управление информацией: структурирование, обеспечение сохранности, использование имен (виртуальная память, фай­лы), передача (ввод-вывод);

б) выполнение: последовательное или параллельное выпол­нение программ, компоновка программ и т. д.;

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

2. Функции контроля и распределения ресурсов:

а) управление физическими ресурсами: выделение оператив­ной памяти, внешней памяти, устройств ввода-вывода;

б) распределение и обмен информацией между пользовате­лями;

в) защита от несанкционированного доступа;

г) дополнительные услуги: выдача счетов на использован­ные ресурсы, сбор статистической информации, измерение про­изводительности и т. п. ·

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

1.2. Примеры операционных систем

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

1.2.1. Персональный компьютер

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



Интерфейс, предлагаемый системой пользователю, представ­ляется в виде командного языка. Команда — это конструкция вида (ДЕЙСТВИЕ) (ПАРАМЕТРЫ), вводимая с помощью кла­виатуры (или «мыши») и сразу же интерпретируемая системой.

Приведем два типичных примера последовательности дей­ствий.


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

2. Эксплуатация
  • Выполнить программу (выбранную заранее или подготов­ленную описанным выше способом) с использованием данных из некоторого файла или введенных с клавиатуры.
  • Результаты вывести на экран, на печатающее устройство или скопировать в некоторый файл для дальнейшего использо­вания.

В подобной системе функция разделения ресурсов отсутст­вует, поскольку машина находится в распоряжении одного пользователя, который ее полностью и контролирует. (Вопросы рас­пределения ресурсов возникают в задачах управления памятью и размещения файлов.) Основные функции операционной систе­мы заключаются в управлении файлами, организации ввода-вы­вода данных и интерпретации командного языка. Наиболее важными свойствами такой операционной системы являются следующие:
  • надежность;
  • эффективность (ограниченность набора аппаратных средств требует их оптимального использования);
  • простота использования;
  • простота расширения системы при добавлении новых слу­жебных программ и новых периферийных устройств.

Из анализа последних двух аспектов следует важность кон­цепции интерфейсов на уровне командного языка и на уровне управления файлами.

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

1.2.2. Управление производственными процессами

На химическом заводе синтез продукта С из исходных про­дуктов А и В осуществляется в реакторе. Схема процесса при­ведена на рис. 1.4. Управление производственным процессом осуществляется с помощью компьютера, который выполняет три функции:


  • Регулирование. Нормальный ход процесса требует, чтобы рабочие параметры (температура, давление, концентрация и т. п.) поддерживались в заданных пределах. Для этого регу­лируют количество поступающих в реактор веществ. Рабочие параметры измеряются с помощью датчиков; данные измерений поступают на компьютер и в соответствии с заданной програм­мой по результатам обработки осуществляется коррекция.
  • Регистрация. Результаты измерений периодически регист­рируются; их значения выводятся на щитки приборов и копиру­ются в некоторый файл (или «журнал») для последующей об­работки (накопление статистических данных).
  • Обеспечение безопасности. Если некоторые из измеряемых параметров превышают заранее определенное критическое зна­чение (возникновение аварийной ситуации), реактор должен быть срочно остановлен.

Рассмотрим возникающие при этом ограничения.

1. Пусть Τ — периодичность измерений, a t — время, необ­ходимое для обработки всей совокупности измерений (регист­рация, запись в память компьютера, выбор программы соответ­ствующего управления, ее выполнение). Тогда система может функционировать лишь при условии t<(рис. 1.5).



2. Функция обеспечения защиты должна иметь приоритет над всеми другими; иначе говоря, всякое превышение критиче­ского значения должно быть сразу обнаружено и обработано-независимо от выполнения других операций.

Основными функциями операционной системы в данном слу­чае являются следующие:

  • Взаимодействие с внешними устройствами (учет показа­ний датчиков, команды управления кранами).
  • Учет реального физического времени (периодическое во­зобновление цикла обработки).
  • Реакция на внешние события (экстренная остановка).
  • Управление информацией (организация и поддержка в рабочем состоянии «журнала»).

Установление предела длительности обработки информа­ции, существование сроков окончания работ, приоритетное об­служивание, связь с внешними управляющими и измерительны­ми приборами являются характерными функциями для систем «реального времени». Кроме контроля над производственными процессами можно привести и другие примеры использования «реального времени»: обслуживание телефонных станций; управление полетами самолетов, ракет, спутников; медицинский надзор («мониторинг»); управление роботами и т. п.

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

Пример основного ядра системы «реального времени» при­водится в последующих лекциях.

1.2.3. Информационные системы

Системы информационного обслуживания обладают следую­щими свойствами:
  1. возможностью управления информационными массивами или базами данных больших размеров (миллиарды байтов);
  2. наличием ряда фиксированных операций обработки ин­ формации и ее передачи (часто в интерактивном режиме);
  3. большим числом входов в систему (с помощью терминалов) и большим количеством сообщений, передаваемых одно­ временно.

В качестве примеров можно привести системы резервирова­ния мест в поездах и самолетах, управления банковскими сче­тами, консультирования по документации.

Информация, содержащаяся в базе данных системы, облада­ет общим свойством целостности, которое вытекает из внутрен­ней взаимосвязи элементов данных. Очевидно, это свойство так­же связано с характером применения данных. Например, число зарезервированных мест в поезде не может превышать общее чис­ло мест в поезде; одно место не может быть выделено более чем одному пассажиру и т. д. При обработке и передаче информа­ции такие свойства внутренней когерентности данных должны сохраняться.

Основными качествами систем информационного обслужи­вания являются простота доступа к данным и надежность; для некоторых типов систем существенным является устойчивость к сбоям. Важной характерной чертой является также одновремен­ное существование многих потоков сообщений. Все это вместе с географической удаленностью физических компонентов системы друг от друга создает ряд специфических трудностей для ее ор­ганизации (разд. 1.3.3.).

1.2.4. Системы с разделением времени

В функции системы с разделением времени входит предо­ставление каждому члену из группы пользователей следующих услуг:
  • услуг, эквивалентных тем, которые предоставляются поль­зователям персональных компьютеров;
  • услуг, связанных с объединением пользователей в коллек­тив: совместное использование и коллективная обработка ин­ формации, организация взаимных связей пользователей из группы.

Более того, благодаря распределению стоимостей услуг между большим числом пользователей у каждого из них появ­ляются дополнительные возможности, нереальные при полно­стью индивидуальной работе, например доступ к специальным периферийным устройствам (графические терминалы и т. п.) или к сложным программным системам, требующим значитель­ных объемов памяти. Проблемы, возникающие при организа­ции систем разделения времени, представляют собой совокуп­ность проблем, относящихся к персональным компьютерам, и проблем, связанных с информационными системами. Их мож­но классифицировать следующим образом:
  • • Определение виртуальной машины для каждого пользова­теля.
  • Распределение и размещение ресурсов общего назначения (процессоров, памяти, средств связи).
  • Управление разделяемой информацией (файлами) и связью.

Аналогично основные требуемые свойства систем разделения времени комбинируются из свойств персонально ориентирован­ных систем и информационных систем: доступность, надежность, безопасность; эффективное использование оборудования; каче­ство интерфейса и услуг, предоставляемых пользователю; лег­кость расширения и адаптации системы к новым требованиям.

1.3. Краткая история развития операционных систем

Краткое описание эволюции операционных систем позволит нам ввести ряд терминов и лучше понять современные требо­вания к ним.

1.3.1. От «открытых дверей» к пакетной обработке

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

Такая работа «при открытых дверях» оказалась крайне не­эффективной, так как дорогостоящее оборудование использова­лось неэкономно. К концу 50-х годов появились первые «пакет­ные мониторы». Эти программы создавались с целью выполне­ния всей последовательности работ (организации данных и вы­полнения прикладных программ), подготовленных заранее, и ав­томатизации процесса перехода от одной работы к другой. Ос­новной функцией такой системы было управление ресурсами:, памятью, процессором, вводом-выводом. Автоматизация управ­ления вызвала появление функций защиты работ от порчи ш ошибок:
  • ограничение времени доступа к процессору, чтобы устра­ нить блокирование всей работы из-за зацикливания в одной· программе;
  • надзор за вводом-выводом, чтобы избежать циклического» обращения к периферийным устройствам по ошибке;
  • защита зоны памяти, постоянно занимаемой мониторо!Мг„ от ошибок адресации в пользовательских программах.
  • Обеспечение указанных функций привело к расширению воз­можностей машин: измерение и учет времени, ограничения на»; использование некоторых инструкций, защита памяти.

Использование пакетных мониторов существенно повысило» производительность вычислительных систем. Однако это повы­шение в значительной степени ограничивалось тем, что при вы­полнении операций ввода-вывода простаивал процессор. Полу­мера заключалась в использовании двух спаренных компьюте­ров. Программы выполнялись на одном из них (главном), осна­щенном устройством с повышенной скоростью передачи данных; на магнитную ленту и считывания данных с магнитной ленты. Вспомогательный компьютер служил для записи данных с пер­фокарт на ленту и вывода результатов вычислений с магнитной! ленты на печать. Соответствующее планирование работы позво­ляло работать обеим машинам параллельно и тем самым более* полно использовать возможности главного процессора. Недо­статок такой организации — негибкость системы (временные· ограничения для ввода заданий, долгое ожидание результатов). Описанные системы последовательной пакетной обработки по­лучили широкое распространение в начале 60-х годов.

1.3.2. Мультипрограммирование и разделение времени

В период с 1960 по 1970 г. значительный прогресс в области технологии материалов и в разработке принципов операционных систем позволил устранить недостатки систем пакетной обра­ботки.

  1. Введение автономных специализированных процессоров для передачи информации (каналов, или устройств обмена) поз­волило освободить центральный процессор от полного обеспече­ния ввода-вывода.
  2. Мультипрограммирование, связанное с разделением памя­ти сразу для нескольких работ, повысило производительность центрального процессора за счет одновременного использова­ния нескольких устройств ввода-вывода.
  3. Работа в режиме с разделением времени восстановила возможность интерактивного общения с машиной, предоставив одновременно возможность пользоваться общими услугами.

Рассмотрим влияние этих трех компонент на организацию операционных систем.

1. Буферный ввод-вывод. Канал, или устройство обмена, представляет собой процессор, выполняющий автономно (па­раллельно с обработкой информации) операции ввода-вывода. Таким образом, центральный процессор и каналы имеют доступ .к общей информации в памяти, поэтому важными свойствами для процессора являются скорость обработки информации, а для каналов — скорость ее передачи. Скорость работы периферий­ных устройств, содержащих механические части, значительно ниже скорости работы центрального процессора. Например, (среднее время обработки перфокарты читающим устройством :на 3—5 порядков больше времени, затрачиваемого процессо­ром; аналогично скорость выдачи строк печатающим устройст­вом существенно ниже скорости их выдачи процессором. Отсю­да вытекают два следствия для организации операционной сиcтемы: 1) для повышения активности центрального процессора необходимо заранее вводить большое количество заданий; 2) следует предусмотреть возможность хранения в памяти большого количества результатов, ожидающих возможности вы­вода на печать. Итак, одновременная передача потоков инфор­мации приводит к ее накоплению в памяти в специальных об­ластях— буферах ввода-вывода (рис. 1.6).



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

2. Мультипрограммирование. Для обеспечения операций вво­да-вывода память разделена на зону для буферов ввода, зону для буферов вывода и рабочую зону. Задания обрабатываются: последовательно, ввод-вывод и выполнение задания происходят одновременно. Здесь следует отметить два условия:

а) если во время выполнения задания необходимо прочитать- нужные данные для работы, то во время чтения процессор на­ходится в пассивном состоянии;

б) выполнение короткого задания, поступившего во время выполнения длинного задания, откладывается до завершения: последнего.

Из этих замечаний вытекает следующий режим работы опе­рационной системы:

а) задание, ожидающее выполнения, может использовать, центральный процессор, который освобожден другим заданием,, ожидающим в свою очередь выполнения процедуры ввода-выво­ да;

б) выделение центрального процессора заданию может быть- прервано до его окончания, если превышаются ограничения по· времени.

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

На рис. 1.7 схематически изображены потоки информации в такой системе. Из приведенной схемы легко обнаружить глав­ную роль оперативной памяти (в простейших системах она от­водилась процессору) и важность обмена информацией между оперативной памятью и внешней. Поэтому объем оперативной памяти и скорость обмена между устройствами памяти стано­вятся определяющими параметрами при оценке системы. По­дробный анализ систем мультипрограммирования проводится в последующих лекциях.




Достоинства и недостатки мультипрограммирования можно резюмировать следующим образом.
  1. Сложность системы: мультипрограммируемая система яв­ляется более сложной, так как она обеспечивает разделение памяти и взаимную защиту программ друг от друга.
  2. Технические характеристики: мультипрограммирование требует специальных устройств для перемещения программ и защиты памяти.
  3. Использование ресурсов: мультипрограммирование позво­ляет более равномерно загружать ресурсы (центральный про­цессор, память, устройства ввода-вывода).
  4. Удобство для пользователя: мультипрограммирование уменьшает время обработки коротких заданий в последователь­ности работ; кроме того, оно снижает время ожидания ответа при организации работы в интерактивном режиме (разделение времени). В монопрограммируемых системах время ответа оп­ределяется наиболее длинным заданием или временем обраще­ния к внешней памяти.

Необходимо отметить, что приведенные выводы основывают­ся, с одной стороны, на имеющемся уровне развития технологии, а с другой —на идее разделения ресурсов. Таким образом, мультипрограммируемые системы будут совершенствоваться, так как
  • стоимость оперативной памяти со временем снижается и появляются устройства внешней памяти с быстрым доступом;
  • интенсивно развиваются распределенные системы и персо­нальные компьютеры (разд. 1.3.3.).

3. Системы с разделением времени. Напомним функции си­стемы с разделением времени, приведенные в разд. 1.2.4: предо­ставить каждому пользователю эквивалент индивидуальной машины и одновременно сохранить возможность пользоваться общими услугами. Пользователи имеют доступ к системе через терминалы и работают в интерактивном режиме. Система долж­на гарантировать каждому пользователю допустимое время от­вета (порядка секунды) для выполнения простейших операций, таких как редактирование и интерактивная отладка программ. Результат достигается путем последовательного предоставления процессора программам пользователей на короткие промежутки («кванты») времени.

Такая техника тесно связана с особенностями интерактивной работы: деятельность пользователя разделена на «время раз­мышления», когда он обдумывает задание машине, и «время ожидания», когда он ожидает предоставления системой услуги, соответствующей его заданию. Опыт показывает, что время раз­мышления в среднем намного превосходит время ожидания, т. е. система может обслужить много пользователей за счет пас­сивного состояния, соответствующего времени размышления. Определим порядки величин для оценок; процедура подсчета является довольно приближенной, так как использует только средние времена, хотя отклонения от этих средних играют в действительности важную роль. Более точные модели расчета рассматриваются в последующих лекциях.

Рассмотрим систему с разделением времени, обслуживаю­щую 100 пользователей, выполняющих приблизительно одина­ковые работы. Допустим, что в среднем время размышления в 9 раз превышает время ожидания. Тогда время ожидания со­ставляет 10% полного времени работы и в среднем 10 пользова­телей являются «активными», т. е. обратившимися к услугам системы для выполнения своих заданий. Предположим, что вре­мя центрального процессора разделяется на кванты по 50 мс, и тогда, если на выполнение простейшей операции тратится не более 50 мс, время ответа системы составляет ~0,5 с.

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

Развитие систем с разделением времени иллюстрирует важ­ность отношения человек — машина и, в частности, важность командного языка, который является интерфейсом, предостав­ляемым системой для пользователей. Долгое время этим аспек­том пренебрегали: командные языки, вводимые в систему эмпи­рически, часто оказывались негибкими, неудобными, трудными для изучения. Система Юникс, появившаяся в начале 70-х го­дов, получила широкое распространение благодаря именно гиб­кости, богатству и простоте использования командного языка. Появление в ближайшем будущем графических терминалов,, позволяющих следить одновременно (с помощью разных «окон») за развитием многих процессов в системе и комбиниро­вать обработку текста, изображений и, возможно, речевых сиг­налов, позволяет надеяться на глубокие изменения и пересмотр самого понятия командного языка как средства интерактивного взаимодействия человек — ЭВМ.

1.3.3. Сети. Распределенные системы. Персональные компьютеры

70-е годы и начало 80-х годов отмечены двумя событиями:
  • появлением микропроцессоров и постоянным ростом их возможностей, которые обеспечили значительные вычислитель­ные мощности при относительно низкой стоимости;
  • развитием техники передачи данных (телеобработка) и постоянно растущей степени интеграции средств связи в информационно-вычислительные системы.
  • Одновременно с этим возникают и новые требования поль­зователей:
  • • разделение ресурсов, оправданное с экономической точки зрения, и доступ к удаленной информации (ресурсы и информа­ция могут находиться в географически разных местах);
  • поиск наилучшего соответствия и приспособления вычис­лительной системы к структуре прикладных задач, приводящий к децентрализации системы и географическому распределению ее элементов;
  • объединение прикладных задач (ранее разъединенных) в единую совокупность.

В результате появились новые типы информационно-вычис­лительных систем:
  1. Сети телеобработки данных, позволяющие организовать взаимосвязь между существующими системами, обмен данны­ми между ними и доступ к удаленным устройствам информаци­онного обслуживания.
  2. Локальные сети ЭВМ с высокоскоростными каналами пе­редачи информации (10 Мбит/с), географически сконцентриро­ванные и выполняющие функции:



  • систем управления (по определению из разд. 1.2.2, систем «реального времени»),
  • систем связи и управления документацией (учрежденче­ских систем), ориентированных на обмен информацией, созда­ние и хранение документов;
  • систем общего пользования, предназначенных, в частно­сти, для создания программного обеспечения.

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

а) обеспечивает связь между пользователями;

б) обеспечивает доступ к общим услугам, слишком дорогим для индивидуального использования (хранение больших объ­емов информации, печать документов, обращение к мощным процессорам и т. п.). Такие услуги предоставляются специали­зированными системами («помощниками»), к которым в случае необходимости обращаются пользователи.

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

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

1.3.4. Концептуальное развитие операционных систем

Краткий обзор развития операционных систем, приведенный выше, посвящен в основном их техническим и функциональным· аспектам. Для лучшего понимания функционирования операци­онных систем важно рассмотреть также изменение концепций и развитие методов. Мы приведем здесь наиболее значительные этапы этого развития. Начало научного подхода к изучению операционных систем можно приблизительно отнести к 1964— 65 гг. В это время были созданы первые системы с разделением времени (Thor.CTSS); выпущена серия машин ИБМ360 и вве­дены каналы ввода-вывода; разработаны первые методы стра­ничной организации памяти (Atlas). Рассмотрим развитие ос­новных концепций и их влияние на операционные системы в по­следующие периоды.

1.3.4.1. Процессы и синхронизация

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

В период 1965—68 гг. были разработаны необходимые кон­цепции: понятие последовательного процесса; формулировка и решение проблемы взаимного исключения; понятие синхрониза­ции и изобретение семафора — элементарного средства синхро­низации. Эти концепции были с успехом применены в операци­онных системах: системе THE (1967), использующей семафоры: системе Multics (1964—70), содержащей ядро управления про­цессами.

Последующее развитие шло более медленно. К 1974—75 гг. был предложен ряд средств, предназначенных для замещения семафоров; из них в реальных системах были испытаны только мониторы, которые более удобны для операции синхронизации. Методы и средства распределенных систем были разработаны к концу 70-х годов; их развитие продолжается и в настоящее время. Средства выражения синхронизации начинают появлять­ся и в языках программирования. И тем не менее проблемы спе­цификации и эффективности синхронизации остаются в значи­тельной мере нерешенными.

1.3.4.2. Введение имен и управление информацией

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

Поскольку размеры оперативной памяти ограниченны, очень скоро появилась необходимость в дополнительной внешней па­мяти и механизмах обмена между этими двумя уровнями памя­ти. Память со страничной организацией появилась в 1962 г. (At­las); в это же время в компиляторах (Алгол 60) стали исполь­зовать (для управления выполняемыми программами) логиче­скую страничную организацию. Понятия, относящиеся к имено­ванию информации, не были четко отделены от понятий, свя­занных с управлением физической памятью (внешней и опера­тивной), вплоть до 1965 г., когда были разработаны понятие сегментации и способы структурирования и именования инфор­мации. Выделим основные этапы развития этих концепций:

• Введение механизма логической адресации с помощью единиц изменяющейся размерности — сегментов в системе Bur­roughs В5000 (1962). Этот механизм используется для управле­ния выполнением программ, написанных на языке Алгол 60.

Формирование основных концепций сегментации в 1965 г. в результате эксплуатации первых систем с разделением времени. «Испытательным полигоном» служила система Multics, замысел которой возник в 1964—65 гг. во время выполнения исследова­ний в Массачусетском технологическом Институте (МТИ) с си­стемой CTSS._ В частности, машина, разрабатываемая вместе с операционной системой, должна использовать сегментную адре­сацию. Поиск более общих подходов привел к расширению это­го понятия, к рассмотрению динамических связей. В закончен­ном виде операционная система появилась лишь к 1970 г.

Разработка архитектуры машины, приспособленной к работе в режиме разделения времени, началась с 1966 г. Результаты исследований оказались концептуальной базой создания модели 67 серии машин ИБМ360; на самом деле здесь использовалась не сегментная адресация, а двойная страничная организация для имитации сегментов. Пример системы ИБМ360/67 является характерным: понятие сегментации оставалось долгое время трудно воспринимаемым потому, что оно использовалось лишь в немногих работающих системах, а разработчики аппаратуры поддерживали путаницу тем, что понимали под сегментацией механизм управления физической памятью.

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

1.3.4.3. Распределение ресурсов

Проблема распределения ресурсов возникла с введением мультипрограммирования. Особое значение она приобретает в связи со страничной организацией и появлением первых систем виртуальной памяти. Введение понятия виртуальной памяти позволяет выделить механизм управления объединением двух уровней памяти (оперативной и внешней) и создать у пользо­вателя иллюзию единого адресного пространства. В первых си­стемах, использующих виртуальную память, возникали ситуа­ции, когда резко снижалась производительность: система не принимала загрузку, на которую была рассчитана, и «развали­валась»; время ответа системы достигало недопустимых значе­ний. Это явление было объяснено в 1968—69 гг. при изучении характеристик поведения программ во время их выполнения. Постепенно были найдены удовлетворительные решения (регу­лирование загрузки). Для определения характеристик конфигу­рации вычислительной системы в зависимости от планируемых свойств необходимо лучшее теоретическое понимание таких яв­лений, как ожидание и очередь, а также развитие средств из­мерения и имитации. «Тонкая настройка» системы возможна лишь при глубоком познании всех ее характеристик и пока еще относится к области эмпирических решений.

1.3.4.4. Структурирование систем и защита объектов

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

1. Модульность и иерархическое структурирование. Метод модульной декомпозиции заключается в разбиении системы на элементы, или модули, каждый из которых снабжается функ­циональной спецификацией, описывающей его поведение без деталей реализации. Один модуль зависит от другого, если он использует возможности, предоставляемые этим модулем. Если модули системы можно упорядочить таким образом, что граф отношений зависимости не образует циклов, то можно предста­вить описание системы в виде иерархических «слоев», каждый из которых использует лишь ресурсы (возможности) более низ­ких слоев. Базовый слой представляется физической машиной. Интерес к такому способу структурирования заключается в том, что подобное разбиение позволяет ввести между модулями или слоями точно описываемый интерфейс, отражающий необходи­мые взаимные связи. Распространению описанных методов должно способствовать развитие языков, включающих понятие модуля и приспособленных к описанию систем (Mesa, Modula-2, Ада).

2. Понятие объекта и защита. Понятие объекта представляет собой средство структурирования, которое обобщает понятие типа в языках программирования. Оно позволяет также вводить классы объектов по некоторым совокупностям их общих свойств (функции доступа, спецификации состояния) и порождать пред­ставителей таких классов. Механизмы защиты, связанные с объектами, определяют и позволяют соблюдать для каждого объекта ограничения на доступ или использование (в зависи­мости от пользователя или контекста использования). Сначала понятие объекта было реализовано в экспериментальных си­стемах (CAL-TSS,Hydra), а затем введено в архитектуру неко­торых машин (Plessey 250, CAP, IBM 38, Intel, iAPX 432). Но оно по-прежнему в большей мере используется как концепту­альное понятие, чем средство эффективного структурирования систем.

1.4. Литература

Историческое развитие операционных систем отражено в ра­ботах [217, 218, 247]. Современное состояние излагается во мно­гих трудах, которые можно разделить на три категории:

1. Введение в основные разделы теории операционных си­стем [38, 45, 47, 167, 249].

2 Углубленное изложение концепции [38, 70, 109, 200, 229, 241, 245].

3. Технические аспекты [74, 174].

Выбор концепции и техники реализации реальной системы рассматривается в работах [8, 11, 28, 51, 63, 134, 170, 171, 177, 178, 192, 210, 215, 225, 240]. Описание «модельных» систем, по­лезных с педагогической точки зрения, приводится в работах [40, 41, 122, 235].

Упражнения

1.1. Попробуйте оценить влияние, которое оказало историческое развитие операционных систем на их некоторые характеристики. Рассмотрите компью­тер, периферийные устройства которого представлены устройством чтения карт (1000 карта/мин) и печатающим устройством (1000 строка/мин). «Сред­нее задание» определяется следующим образом:
  • прочитать 300 карт;
  • использовать процессор в течение 1 мин;
  • напечатать 500 строк.

Предположите, что все задания пользователей имеют характеристики, идентичные среднему заданию. Определите критерии качества системы:
  • средний выход работ D: число заданий или работ выполняемых за 1ч;
  • производительность η центрального процессора: отношение времени, затраченного на полезную (не включая управление периферийными устрой­ствами), к полному времени работы центрального процессора.

1. Допустите сначала, что периферийные устройства управляются цент­ральным процессором. Вычислите η и D при следующих предположениях:

а) система эксплуатируется «при открытых дверях»; время работы для каждого пользователя не должно превышать 15 мин;

б) система эксплуатируется с пакетным монитором для последователь­ности работ.

2. Пусть периферийные устройства управляются отдельной машиной, ко­торая снабжена магнитной лентой ввода, получающей информацию с карт, и магнитной лентой вывода для печати. Центральный процессор получает информацию с магнитной ленты ввода, а обработанную информацию пере­ дает на магнитную ленту вывода; временем чтения лент и записи на них можно пренебречь. Время передачи информации между основной машиной (центральным процессором) и машиной ввода-вывода в любом направлении составляет 5 мин; предполагается, что каждая лента предназначена для группы из 50 работ (рис. 1.8).

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

б. Установите планирование очереди работ и вычислите среднее врем» ожидания для одного пользователя (от момента ввода задания до получения результата). Предполагается, что работы поступают равномерно, время фор­мирования группы (подготовка колоды карт) равно 10 мин, а время рас­пределения результатов (разрезание и сортировка страниц) составляет для;

группы также 10 мин.
  1. Предположите, что периферийные устройства управляются с по­ мощью канала ввода-вывода, система монопрограммируемая, а пакетный мо­нитор позволяет центральному процессору выполнять задание параллельно с чтением следующего и печатью предыдущего. Вычислите η и D при эти» условиях. Повторите вычисления для случая, когда для среднего задания не­ обходимо прочитать 1200 карт и вывести на печать 1500 строк, на что затрачивается 1 мин времени центрального процессора.
  2. Ввод-вывод управляется с помощью буферов на диске (спулинг чте­ния и записи). Средняя работа определяется, как и в п. 3 (т. е. 1200 карту 1 мин, 1500 строк).

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

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