Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Функции, характеристики и желаемые черты ОС





Функции ОС

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

(1) поставить колоду карт с исходной программой на читающее устройство;

(2) инициировать программу чтения с перфокарт;

(3) инициировать компилятор для компиляции исходной программы;

(4) поставить колоду карт с данными;

(5) инициировать выполнение скомпилированной программы;

(6) забрать результаты с принтера.

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

Первое очевидное улучшение состояло в том, чтобы заставить машину выполнять все действия автоматически без участия оператора; последовательность необходимых шагов по чтению, компиляции, загрузке и выполнению одной или нескольких программ. Роль оператора была поэтому сведена к загрузке карт на одну их рабочих точек машины и отрыва распечатки с другого. Цена этой функции - часть машинных ресурсов (памяти, процессорного времени), занимаемых программой, которая могла бы выполнять необходимую последовательность операций. Т.к. не обязательно все задания требует одной и той же последовательности операций, контролирующей программе необходимо использовать одной до нескольких контрольных карт для каждого особого случая. Другими словами, управляющая программа должна быть способна интерпретировать язык управления заданиями. Более того, ошибки, которые неизбежно случаются при выполнении некоторых заданий не должны влиять на следующие задания и управляюшая программы должна разумным образом обрабатывать ошибки. Управляющая программа с такими функциями является фактически эмбрионом ОС.

Система этого типа очевидно ограничена скоростью, с которой она могла бы выполнять ввод и вывод, и следующей стадией улучшения эффективности является сокращение этой зависимости. Во-первых - это достигается техникой off-linig, посредством в/в с магнитной ленты. Задача конвертации входной колоды карт заданий (имя перфоленты) в магнитную ленту и выходной магнитной ленты в распечатку (или перфоленту) было возложено на вспомогательный компьютер, меньшей мощности и цены. Передача магнитной ленты между вспомогательным и основным компьютером было ручным. Off-linig системы были значительно представлены IBM Fortran Monitor System, успешно работавшими с конца 50-х до середины 60-х (интерестна современная параллель в использовании персональных компьютеров в качестве оконечных устройств для больших систем).

Off-linig сократило зависимость, гарантировав представление в/в на магнитной ленте, которая была по тем временам самым быстрым дешевым носителем. Цена за добавок к эмбриональной ОС состояла в множестве шаблонов для кодирования и упаковки данных на магнитной ленте, предназначенных для определения периферийных устройств. Следует также отметить, что из-за того, что магнитная лента является последовательным носителем информации, то не было понятия о планировании заданий для запуска их в порядке отличным от того, в каком они были представлены системе.

Чтобы уменьшить зависимость от в/в, если не совсем сократить ее, были разработаны технологии, посредством которых в/в мог бы перерываться с обработкой (работой процессора). Это стало возможным с добавление двух нововведений - каналов и прерываний. Канал - это устройства, которое управляет одним или более периферийными устройствами, осуществляя передачу данных между периферией и памятью совершенно независимо от CPU. Прерывание - это сигнал, который передает управление CPU на некоторое фиксированное место, в то время как предыдущие значения счетчика команд сохраняется. Т.о. программа. выполняемая в момент возникновения прерывания, временно прерывается, но может быть возобновлена с места, откуда она было прервана. Прерывание от канала действует как сигнал, означающий, что передача данных завершена. Следовательно, возможно для CPU инициировать периферийную передачу, продолжить свою работу, в то время как канал управляет передачей и получает информацию средствами прерывания о завершении передачи. (См. сведения об архитектуре ЭВМ).

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

Основным недостатком таких систем было предназначение всей машины для выполнения единственного задания, не взирая на то - большое оно или маленькое. Этот недостаток был преодолен посредством мультипрограммирования - запуском нескольких программ на одной машине в одно и то же время. Идея состояла в том, что несколько программ (заданий) находились в памяти одновременно, и CPU разделял свое время между них в соответствии с ресурсами (такими как каналы и периферия) необходимыми им. Таким образом было теоретически возможно, имея подходящую комбинацию заданий в машине в любое время, достичь оптимального использования ресурсов. Сюда включается использование CPU, когда задание ждет окончания передачи ввода/вывода, CPU мог бы переключиться на другие находящиеся в памяти задание. Дополнительной нагрузкой на ОС стало управление ресурсами и защита одного задания от воздействий другого. ОС такого типа называются многопотоковыми пакетными мониторами, и ее версии были установлены на всех больших ЭВМ начала 70-х (GEORG3 на ICL1900 серии, и OS/360 на IBM 360 и 370 серий). Развитие этих систем произошло в огромной степени благодаря пионерской работе в начале 60-х на Atlas[1]’е - компьютере Манчестерского университета.

На этой стадии исторического экскурса от чистой машины видно, что существовали вполне подходящие системы, которые хорошо использовали существующие оборудование. Их основным недостатком, с точки зрения пользователя, было отсутствие какого-либо взаимодействия между пользователем и заданием во время его прохода через компьютер. Взаимодействие имеет значение во многих ситуациях, особенно во время разработки и отладки программы, например: отладка становится легче, если программист имеет возможность немедленно проверить модификации и увидеть их эффект, и сделать, если это необходимо, дальнейшие модификации. Подобным образом, многие программно решаемые задачи требуют управление пользователем; т.е. пользователи направляют дальнейшие действия программы после проверки полученных только что результатов. Чтобы сделать возможным взаимодействие многопотоковые пакетные системы были модифицированы с тем, чтобы принимать входы, набираемые пользователем на удаленном терминале; другими словами, они стали многопользовательскими системами. В начале 70-х большинство производители делали многопользовательские ОС для своих больших ЭВМ (примеры: MINIMOP-ICL 1900, TSS/360 - IBM 360 и 370, TOPS-10 DECSystem10). К середине 70-х пакеты и многопользовательские режимы комбинировались в таких системах, как MVS (IBM 370), VMS (DEC VAX) и System B (позднее известная, как VME) (ICL 2900 серии).

Дальнейшее развитие ОС сконцентрировались на представлении более подходящих возможностей лучшего использования оборудования и ПО. Производители представили системы, на которых более одной ОС или множества машинных команд могли выполняться одновременно, таким образом представлялась возможность постепенного усовершенствования для заказчиков (пример: VMS (DEC VAX, CME (ICL 2900)) - обе ОС предоставляли возможность запуска программы, разработанных для более старых машин. VM-система для IBM 370 ее пользователей позволяет пользователю запускать любую IBM-OC, которая может быть запущена на чистой машине, в параллели с любой другой ОС; кроме возросшей функциональности это дает полезную тестовую среду. На 80386 и 80486, OS/2 позволяется запускать множественные копии MS-DOS и др. ОС, написанные для запуска на данном виде процессоров.

Другим значительным развитием была сетевая работа; эволюция лучших возможностей компьютерных систем для коммутации друг с другом. Пакетные системы теперь имеют меньшее значение, чем ранее, акцент сдвинулся от заданий, передаваемых извне и генерирующих печатный результат, и задания, передаваемых с интерактивных терминалов, которые генерируют выход в файл, который может быть позднее получен с терминала. Фактически, терминалы прошли эволюцию от простого телетайпа до соотвествующего многооконного графического устройства, такого, как X-терминал. Язык управления заданиями также развивался в нечто более общее, что может использоваться в интерактивных терминалах.

Итак, в результате обсуждения мы пришли к ОС, которая должна выполнять по крайней мере следующие функции:

(1) Установка заданий в последовательность

(2) Управление заданиями или интерпретация командного языка

(3) Обработка ошибок

(4) Обработка ввода/вывода

(5) Обработка прерываний

(6) Планирование

(7) Управление ресурсами

(8) Защита

(9) Многодоступность

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

(1) Наличие хорошего интейфейса с оператором

(2) Обсчет компьютерных ресурсов.

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

Характеристики ОС

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

(2) Разделение.
Конкурентные действия могут требоваться при разделении ресурсов Мотивацией этого является следующие 4 позиции:

(a) Цена: нецелесообразно предоставлять существенные ресурсы отдельно всем пользователям.

(b) Построение на работе других: полезно быть способным использовать программы или подпрограммы других людей.

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

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

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

(3) Долговременная память.

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

(4) Недетерминированность.

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

Желаемые черты OC.

(1) Эффективность.
К сожелению трудно указать один единственный критерий, по которым можно судить об эффективности ОС; ниже приводятся различные возможные критерии:

(a) значение времени между пакетами заданий (где применимо);

(b) неиспользуемые CPU время (исключая время, когда для ОС нет работы);

(c) обшее время на обработку всех пакетов заданий (где применимо);

(d) время ответа (для интерактивных систем);

(e) использование ресурсов;

(f) пропускная способность (пакетов заданий в час, скорость, которой работа может быть выполнена интерактивно).

Не всем этим критериям можно удовлетворять одновременно. Однако ОС должна добиться максимальной эффективности загруженности ресураса.

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

(2) Надежность.
В идеале ОС должна быть совершенно свободна от ошибок и способна обрабатывать все последовательности событий.

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

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

Суммируя все, что было сказано, мы обсудили общие функции, выполнение которых ожидается от ОС; мы вычленили некоторые критические характеристики ОС, и мы перечислили некоторые желаемые черты ОС.

 


[1] Atlas – название первого компьютера, в которой были реализованы многие устройства и принципы, в настоящее время признанные стандартными.







Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)...

Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.