Лекция 1-2 Введение
Вид материала | Лекция |
- С. В. Шадрина Лекция 5 сентября, 15: 00-16: 30, Введение в геометрию пространства модулей, 5.97kb.
- Первая лекция. Введение 6 Вторая лекция, 30.95kb.
- Текст лекций н. О. Воскресенская Оглавление Лекция 1: Введение в дисциплину. Предмет, 1185.25kb.
- А. И. Мицкевич Догматика Оглавление Введение Лекция, 2083.65kb.
- Лекция введение в экологию (В. И. Торшин), 1146.79kb.
- Конспект лекций н. О. Воскресенская Москва 2008 Оглавление: Лекция Введение в дисциплину, 567.5kb.
- План лекций педиатрический факультет 1 семестр 1 лекция. Введение в анатомию человека., 216.63kb.
- Сидоров Сергей Владимирович Планы лекций Введение в профессионально-педагогическую, 19.81kb.
- Русской Православной Церкви и их особенности. 22 сентября лекция, 30.24kb.
- План лекций: Лекция №1. Введение в тему, общие сведения. Введение, 99.54kb.
Лекция 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<
2. Функция обеспечения защиты должна иметь приоритет над всеми другими; иначе говоря, всякое превышение критического значения должно быть сразу обнаружено и обработано-независимо от выполнения других операций.
Основными функциями операционной системы в данном случае являются следующие:
- Взаимодействие с внешними устройствами (учет показаний датчиков, команды управления кранами).
- Учет реального физического времени (периодическое возобновление цикла обработки).
- Реакция на внешние события (экстренная остановка).
- Управление информацией (организация и поддержка в рабочем состоянии «журнала»).
Установление предела длительности обработки информации, существование сроков окончания работ, приоритетное обслуживание, связь с внешними управляющими и измерительными приборами являются характерными функциями для систем «реального времени». Кроме контроля над производственными процессами можно привести и другие примеры использования «реального времени»: обслуживание телефонных станций; управление полетами самолетов, ракет, спутников; медицинский надзор («мониторинг»); управление роботами и т. п.
Важной характеристикой этих систем является надежность. Так как последствия аварийных ситуаций могут оказаться катастрофическими, то система должна обеспечить безопасность управляемого объекта в любых условиях, предоставлять необходимый минимальный сервис в случае технических повреждений, ошибок персонала или аварий.
Пример основного ядра системы «реального времени» приводится в последующих лекциях.
1.2.3. Информационные системы
Системы информационного обслуживания обладают следующими свойствами:
- возможностью управления информационными массивами или базами данных больших размеров (миллиарды байтов);
- наличием ряда фиксированных операций обработки ин формации и ее передачи (часто в интерактивном режиме);
- большим числом входов в систему (с помощью терминалов) и большим количеством сообщений, передаваемых одно временно.
В качестве примеров можно привести системы резервирования мест в поездах и самолетах, управления банковскими счетами, консультирования по документации.
Информация, содержащаяся в базе данных системы, обладает общим свойством целостности, которое вытекает из внутренней взаимосвязи элементов данных. Очевидно, это свойство также связано с характером применения данных. Например, число зарезервированных мест в поезде не может превышать общее число мест в поезде; одно место не может быть выделено более чем одному пассажиру и т. д. При обработке и передаче информации такие свойства внутренней когерентности данных должны сохраняться.
Основными качествами систем информационного обслуживания являются простота доступа к данным и надежность; для некоторых типов систем существенным является устойчивость к сбоям. Важной характерной чертой является также одновременное существование многих потоков сообщений. Все это вместе с географической удаленностью физических компонентов системы друг от друга создает ряд специфических трудностей для ее организации (разд. 1.3.3.).
1.2.4. Системы с разделением времени
В функции системы с разделением времени входит предоставление каждому члену из группы пользователей следующих услуг:
- услуг, эквивалентных тем, которые предоставляются пользователям персональных компьютеров;
- услуг, связанных с объединением пользователей в коллектив: совместное использование и коллективная обработка ин формации, организация взаимных связей пользователей из группы.
Более того, благодаря распределению стоимостей услуг между большим числом пользователей у каждого из них появляются дополнительные возможности, нереальные при полностью индивидуальной работе, например доступ к специальным периферийным устройствам (графические терминалы и т. п.) или к сложным программным системам, требующим значительных объемов памяти. Проблемы, возникающие при организации систем разделения времени, представляют собой совокупность проблем, относящихся к персональным компьютерам, и проблем, связанных с информационными системами. Их можно классифицировать следующим образом:
- • Определение виртуальной машины для каждого пользователя.
- Распределение и размещение ресурсов общего назначения (процессоров, памяти, средств связи).
- Управление разделяемой информацией (файлами) и связью.
Аналогично основные требуемые свойства систем разделения времени комбинируются из свойств персонально ориентированных систем и информационных систем: доступность, надежность, безопасность; эффективное использование оборудования; качество интерфейса и услуг, предоставляемых пользователю; легкость расширения и адаптации системы к новым требованиям.
1.3. Краткая история развития операционных систем
Краткое описание эволюции операционных систем позволит нам ввести ряд терминов и лучше понять современные требования к ним.
1.3.1. От «открытых дверей» к пакетной обработке
Для первых цифровых вычислительных машин не существовало операционных систем. Пользователь получал ЭВМ и возможность полностью распоряжаться ее ресурсами на строго определенное время. Прямое взаимодействие с машиной (пошаговое выполнение команд, непосредственное изменение состояния ячеек памяти) было главным средством отладки программ. Первыми программными системными средствами были, с одной стороны, средства помощи при разработке программ (ассемблеры, компиляторы, отладчики), а с другой — подпрограммы ввода-вывода.
Такая работа «при открытых дверях» оказалась крайне неэффективной, так как дорогостоящее оборудование использовалось неэкономно. К концу 50-х годов появились первые «пакетные мониторы». Эти программы создавались с целью выполнения всей последовательности работ (организации данных и выполнения прикладных программ), подготовленных заранее, и автоматизации процесса перехода от одной работы к другой. Основной функцией такой системы было управление ресурсами:, памятью, процессором, вводом-выводом. Автоматизация управления вызвала появление функций защиты работ от порчи ш ошибок:
- ограничение времени доступа к процессору, чтобы устра нить блокирование всей работы из-за зацикливания в одной· программе;
- надзор за вводом-выводом, чтобы избежать циклического» обращения к периферийным устройствам по ошибке;
- защита зоны памяти, постоянно занимаемой мониторо!Мг„ от ошибок адресации в пользовательских программах.
- Обеспечение указанных функций привело к расширению возможностей машин: измерение и учет времени, ограничения на»; использование некоторых инструкций, защита памяти.
Использование пакетных мониторов существенно повысило» производительность вычислительных систем. Однако это повышение в значительной степени ограничивалось тем, что при выполнении операций ввода-вывода простаивал процессор. Полумера заключалась в использовании двух спаренных компьютеров. Программы выполнялись на одном из них (главном), оснащенном устройством с повышенной скоростью передачи данных; на магнитную ленту и считывания данных с магнитной ленты. Вспомогательный компьютер служил для записи данных с перфокарт на ленту и вывода результатов вычислений с магнитной! ленты на печать. Соответствующее планирование работы позволяло работать обеим машинам параллельно и тем самым более* полно использовать возможности главного процессора. Недостаток такой организации — негибкость системы (временные· ограничения для ввода заданий, долгое ожидание результатов). Описанные системы последовательной пакетной обработки получили широкое распространение в начале 60-х годов.
1.3.2. Мультипрограммирование и разделение времени
В период с 1960 по 1970 г. значительный прогресс в области технологии материалов и в разработке принципов операционных систем позволил устранить недостатки систем пакетной обработки.
- Введение автономных специализированных процессоров для передачи информации (каналов, или устройств обмена) позволило освободить центральный процессор от полного обеспечения ввода-вывода.
- Мультипрограммирование, связанное с разделением памяти сразу для нескольких работ, повысило производительность центрального процессора за счет одновременного использования нескольких устройств ввода-вывода.
- Работа в режиме с разделением времени восстановила возможность интерактивного общения с машиной, предоставив одновременно возможность пользоваться общими услугами.
Рассмотрим влияние этих трех компонент на организацию операционных систем.
1. Буферный ввод-вывод. Канал, или устройство обмена, представляет собой процессор, выполняющий автономно (параллельно с обработкой информации) операции ввода-вывода. Таким образом, центральный процессор и каналы имеют доступ .к общей информации в памяти, поэтому важными свойствами для процессора являются скорость обработки информации, а для каналов — скорость ее передачи. Скорость работы периферийных устройств, содержащих механические части, значительно ниже скорости работы центрального процессора. Например, (среднее время обработки перфокарты читающим устройством :на 3—5 порядков больше времени, затрачиваемого процессором; аналогично скорость выдачи строк печатающим устройством существенно ниже скорости их выдачи процессором. Отсюда вытекают два следствия для организации операционной сиcтемы: 1) для повышения активности центрального процессора необходимо заранее вводить большое количество заданий; 2) следует предусмотреть возможность хранения в памяти большого количества результатов, ожидающих возможности вывода на печать. Итак, одновременная передача потоков информации приводит к ее накоплению в памяти в специальных областях— буферах ввода-вывода (рис. 1.6).
Чтобы ограничить перегрузку основной памяти буферами ввода-вывода, их передают во внешнюю память большого объема. При этом скорость обмена между устройствами памяти значительно выше, чем скорость обмена с относительно медленными устройствами ввода-вывода. Передача информации: между двумя устройствами памяти также управляется с помощью канала. Теперь перейдем к влиянию такой организации ввода-вывода на структуру операционной системы.
2. Мультипрограммирование. Для обеспечения операций ввода-вывода память разделена на зону для буферов ввода, зону для буферов вывода и рабочую зону. Задания обрабатываются: последовательно, ввод-вывод и выполнение задания происходят одновременно. Здесь следует отметить два условия:
а) если во время выполнения задания необходимо прочитать- нужные данные для работы, то во время чтения процессор находится в пассивном состоянии;
б) выполнение короткого задания, поступившего во время выполнения длинного задания, откладывается до завершения: последнего.
Из этих замечаний вытекает следующий режим работы операционной системы:
а) задание, ожидающее выполнения, может использовать, центральный процессор, который освобожден другим заданием,, ожидающим в свою очередь выполнения процедуры ввода-выво да;
б) выделение центрального процессора заданию может быть- прервано до его окончания, если превышаются ограничения по· времени.
В обоих случаях необходимо, чтобы время переназначения центрального процессора было незначительным по сравнению со временем передачи данных из оперативной памяти во внешнюю. Такой способ функционирования вычислительной системы: влечет одновременное присутствие в оперативной памяти нескольких программ или их частей и называется мультипрограммированием.
На рис. 1.7 схематически изображены потоки информации в такой системе. Из приведенной схемы легко обнаружить главную роль оперативной памяти (в простейших системах она отводилась процессору) и важность обмена информацией между оперативной памятью и внешней. Поэтому объем оперативной памяти и скорость обмена между устройствами памяти становятся определяющими параметрами при оценке системы. Подробный анализ систем мультипрограммирования проводится в последующих лекциях.
Достоинства и недостатки мультипрограммирования можно резюмировать следующим образом.
- Сложность системы: мультипрограммируемая система является более сложной, так как она обеспечивает разделение памяти и взаимную защиту программ друг от друга.
- Технические характеристики: мультипрограммирование требует специальных устройств для перемещения программ и защиты памяти.
- Использование ресурсов: мультипрограммирование позволяет более равномерно загружать ресурсы (центральный процессор, память, устройства ввода-вывода).
- Удобство для пользователя: мультипрограммирование уменьшает время обработки коротких заданий в последовательности работ; кроме того, оно снижает время ожидания ответа при организации работы в интерактивном режиме (разделение времени). В монопрограммируемых системах время ответа определяется наиболее длинным заданием или временем обращения к внешней памяти.
Необходимо отметить, что приведенные выводы основываются, с одной стороны, на имеющемся уровне развития технологии, а с другой —на идее разделения ресурсов. Таким образом, мультипрограммируемые системы будут совершенствоваться, так как
- стоимость оперативной памяти со временем снижается и появляются устройства внешней памяти с быстрым доступом;
- интенсивно развиваются распределенные системы и персональные компьютеры (разд. 1.3.3.).
3. Системы с разделением времени. Напомним функции системы с разделением времени, приведенные в разд. 1.2.4: предоставить каждому пользователю эквивалент индивидуальной машины и одновременно сохранить возможность пользоваться общими услугами. Пользователи имеют доступ к системе через терминалы и работают в интерактивном режиме. Система должна гарантировать каждому пользователю допустимое время ответа (порядка секунды) для выполнения простейших операций, таких как редактирование и интерактивная отладка программ. Результат достигается путем последовательного предоставления процессора программам пользователей на короткие промежутки («кванты») времени.
Такая техника тесно связана с особенностями интерактивной работы: деятельность пользователя разделена на «время размышления», когда он обдумывает задание машине, и «время ожидания», когда он ожидает предоставления системой услуги, соответствующей его заданию. Опыт показывает, что время размышления в среднем намного превосходит время ожидания, т. е. система может обслужить много пользователей за счет пассивного состояния, соответствующего времени размышления. Определим порядки величин для оценок; процедура подсчета является довольно приближенной, так как использует только средние времена, хотя отклонения от этих средних играют в действительности важную роль. Более точные модели расчета рассматриваются в последующих лекциях.
Рассмотрим систему с разделением времени, обслуживающую 100 пользователей, выполняющих приблизительно одинаковые работы. Допустим, что в среднем время размышления в 9 раз превышает время ожидания. Тогда время ожидания составляет 10% полного времени работы и в среднем 10 пользователей являются «активными», т. е. обратившимися к услугам системы для выполнения своих заданий. Предположим, что время центрального процессора разделяется на кванты по 50 мс, и тогда, если на выполнение простейшей операции тратится не более 50 мс, время ответа системы составляет ~0,5 с.
В этом подсчете мы неявно предположили, что все программы активных пользователей находятся в оперативной памяти: время перехода от одной пользовательской программы к другой сводится ко времени выполнения операции перехода в оперативной памяти, а оно является пренебрежимо малым по сравнению с выделенным квантом времени. Учитывая малость кванта по сравнению со временем загрузки программы с диска, видим, что мультипрограммирование в самом деле необходимо для функционирования системы с разделением времени. Однако в действительности ситуация оказывается более сложной: объем оперативной памяти недостаточен для размещения множества программ всех активных пользователей. Это означает, что возможен случай, когда требуемая информация (программа или данные) будет отсутствовать в оперативной памяти в момент обращения к ней центрального процессора. Роль системы управления памятью заключается в сведении к минимуму вероятности такого события (в последующих лекциях).
Развитие систем с разделением времени иллюстрирует важность отношения человек — машина и, в частности, важность командного языка, который является интерфейсом, предоставляемым системой для пользователей. Долгое время этим аспектом пренебрегали: командные языки, вводимые в систему эмпирически, часто оказывались негибкими, неудобными, трудными для изучения. Система Юникс, появившаяся в начале 70-х годов, получила широкое распространение благодаря именно гибкости, богатству и простоте использования командного языка. Появление в ближайшем будущем графических терминалов,, позволяющих следить одновременно (с помощью разных «окон») за развитием многих процессов в системе и комбинировать обработку текста, изображений и, возможно, речевых сигналов, позволяет надеяться на глубокие изменения и пересмотр самого понятия командного языка как средства интерактивного взаимодействия человек — ЭВМ.
1.3.3. Сети. Распределенные системы. Персональные компьютеры
70-е годы и начало 80-х годов отмечены двумя событиями:
- появлением микропроцессоров и постоянным ростом их возможностей, которые обеспечили значительные вычислительные мощности при относительно низкой стоимости;
- развитием техники передачи данных (телеобработка) и постоянно растущей степени интеграции средств связи в информационно-вычислительные системы.
- Одновременно с этим возникают и новые требования пользователей:
- • разделение ресурсов, оправданное с экономической точки зрения, и доступ к удаленной информации (ресурсы и информация могут находиться в географически разных местах);
- поиск наилучшего соответствия и приспособления вычислительной системы к структуре прикладных задач, приводящий к децентрализации системы и географическому распределению ее элементов;
- объединение прикладных задач (ранее разъединенных) в единую совокупность.
В результате появились новые типы информационно-вычислительных систем:
- Сети телеобработки данных, позволяющие организовать взаимосвязь между существующими системами, обмен данными между ними и доступ к удаленным устройствам информационного обслуживания.
- Локальные сети ЭВМ с высокоскоростными каналами передачи информации (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 г. (Atlas); в это же время в компиляторах (Алгол 60) стали использовать (для управления выполняемыми программами) логическую страничную организацию. Понятия, относящиеся к именованию информации, не были четко отделены от понятий, связанных с управлением физической памятью (внешней и оперативной), вплоть до 1965 г., когда были разработаны понятие сегментации и способы структурирования и именования информации. Выделим основные этапы развития этих концепций:
• Введение механизма логической адресации с помощью единиц изменяющейся размерности — сегментов в системе Burroughs В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 мин.
- Предположите, что периферийные устройства управляются с по мощью канала ввода-вывода, система монопрограммируемая, а пакетный монитор позволяет центральному процессору выполнять задание параллельно с чтением следующего и печатью предыдущего. Вычислите η и D при эти» условиях. Повторите вычисления для случая, когда для среднего задания не обходимо прочитать 1200 карт и вывести на печать 1500 строк, на что затрачивается 1 мин времени центрального процессора.
- Ввод-вывод управляется с помощью буферов на диске (спулинг чтения и записи). Средняя работа определяется, как и в п. 3 (т. е. 1200 карту 1 мин, 1500 строк).
а) Предположите, что одна карта и одна строка занимают соответствен но 80 и 100 байт. Вычислите минимально необходимый размер буферов чтения и записи на диске для использования центрального процессора с максимальной производительностью выхода работ.
б) Скорость поступления заданий и размер буфера чтения совпадают со значениями в п. а), а размер буфера вывода на диске равен 2 Мбайт. Вычислите производительность центрального процессора.