I. Элементы архитектуры вычислительных систем

Вид материалаДокументы

Содержание


Операционная система (ОС)
ДОС (Дисковые Операционные Системы)
Системы реального времени
Системы промежуточных типов
Cisco с K9Q
Выбор операционной системы
OS/2 способна исполнять практически все прикладное ПО, разработанное для DOS
Mac OS, потому что это ПО не может исполняться на процессорах архитектуры x86IBM PC
MS Windows
Свойства и классификация процессов.
Отношение предшествования
Отношение взаимного исключения
Свойства и классификация ресурсов.
Действия над ресурсами.
Дисциплина обслуживания в порядке поступления
Дисциплина обслуживания в порядке, обратном порядку поступления
Круговой циклический алгоритм
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   42



II. 

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




2.1 

Понятие операционной системы. Основные функции ОС.


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

Вообще, ОС - это довольно расплывчатое понятие, опирающееся на определенные традиции, параметры оборудования, размеры программ, реализующих определенные функции, а также распределение
  • обеспечивать загрузку пользовательских программ в оперативную память и их исполнение
  • обеспечивать работу с устройствами долговременной памяти, такими как магнитные диски, ленты, оптические диски и т.д. Как правило, ОС управляет свободным пространством на этих носителях и структурирует пользовательские данные
  • предоставлять более или менее стандартный доступ к различным устройствам ввода/вывода, таким как терминалы, модемы, печатающие устройства
  • предоставлять некоторый пользовательский интерфейс. Слово некоторый здесь сказано не случайно - часть систем ограничивается командной строкой, в то время как другие на 90% состоят из средств интерфейса пользователя

Существуют ОС, функции которых этим и исчерпываются. Одна из хорошо известных систем такого типа - дисковая операционная система MS DOS.

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



2.2 

Классификация ОС


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

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

Дисковая операционная система MS DOS для IBM PC является примером систем подобного класса. Она, правда, умеет загружать несколько программ, но не предоставляет средств для исполнения этих программ. Более того, с точки зрения документированных функций, этим программам нельзя работать (существуют, однако, так называемые недокументированные задние двери (backdoors)).

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

ОС. К этому классу относятся системы, берущие на себя выполнение всех вышеперечисленных функций. Разделение на ОС и ДОС идет, по-видимому, от систем IBM DOS/360 и OS/360 для больших компьютеров этой фирмы, клоны которых известны у нас в стране под названием ЕС ЭВМ серии 10XX. (Кстати, у IBM была еще TOS/360, Tape Operating System - Ленточная Операционная Система).

Здесь и далее под ОС мы будем подразумевать системы ``общего назначения'', то есть рассчитанные на интерактивную работу одного или нескольких пользователей в режиме разделения времени, при не очень жестких требованиях на время реакции системы на внешние события. Как правило, в таких системах уделяется большое внимание защите самой системы, программного обеспечения и пользовательских данных от ошибочных и злонамеренных программ и пользователей. Обычно такие системы используют встроенные в архитектуру процессора средства защиты и виртуализации памяти. К этому классу относятся такие широко распространенные системы, как VAX/VMS, системы семейства Unix и OS/2, хотя последняя не обеспечивает одновременной работы нескольких пользователей и защиты пользователей друг от друга.

Часто такие системы являются подсистемой ОС общего назначения: MS DOS и MS Windows-эмуляторы под UNIX и OS/2, окно DOS в MS Windows, эмулятор RT-11 в VAX/VMS.

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

Системы реального времени. Это системы, предназначенные для облегчения разработки так называемых приложений реального времени. Это программы, управляющие некомпьютерным по природе оборудованием, часто с очень жесткими ограничениями по времени. Примером такого приложения может быть программа бортового компьютера крылатой ракеты, системы управления ускорителем элементарных частиц или промышленным оборудованием. Такие системы обязаны поддерживать многопроцессность, гарантированное время реакции на внешнее событие, простой доступ к таймеру и внешним устройствам. Такие системы могут по другим признакам относиться как к классу ДОС (RT-11), так и к ОС (OS-9, QNX). Часто такие системы (например, VxWorks) рассчитаны на работу совместно с управляющей host-машиной, исполняющей "нормальную" операционную систему.

Любопытно, что новомодное течение в компьютерной технике - multimedia - при качественной реализации предъявляет к системе те же требования, что и промышленные задачи реального времени. В multimedia основной проблемой является синхронизация изображения на экране со звуком. Именно в таком порядке. Звук обычно генерируется внешним аппаратным устройством с собственным таймером, и изображение синхронизируется с ним же. Человек способен заметить довольно малые временные неоднородности в звуковом потоке. Напротив, пропуск кадров в визуальном потоке не так заметен, а расхождение звука и изображения заметно уже при задержках около 30 мс. Поэтому системы качественного multimedia должны обеспечивать синхронизацию с такой же или более высокой точностью, что мало отличается от систем мягкого реального времени.

Кросс-загрузчики. Это системы - полностью ориентированные на работу с host-машиной. Чаще всего они используются для написания и отладки кода, позднее прошиваемого в ПЗУ. Это системы программирования микроконтроллеров семейства Intel 8048 и подобных им, TDS (Transputer Development System) фирмы Inmos, и многие другие. Такие системы, как правило, включают в себя набор компиляторов и ассемблеров, работающих на host-системе (реже - загружаемых с host-машины в целевую систему), библиотеки, выполняющие большую часть функций ОС при работе программы (но не загрузку этой программы!), и средства отладки.

Системы промежуточных типов. Существуют системы, которые с первого взгляда нельзя отнести к одному из вышеперечисленных классов. Такова, например, система RT-11, которая, по сути своей, является ДОС, но позволяет одновременное исполнение нескольких программ с довольно богатыми средствами взаимодействия и синхронизации. Другим примером промежуточной системы являются MS Windows 3.x и Windows 95 которые, как ОС, используют аппаратные средства процессора для защиты и виртуализации памяти и даже могут обеспечивать некоторое подобие многозадачной работы, но не защищают себя и программы от ошибок других программ.

В последнее время вошел в употребление еще один термин: сетевые ОС, или сокращенно NOS (Networking Operating System). На взгляд авторов, сложившееся использование этого термина несколько неудачно. Его можно употреблять в двух различных смыслах:

  1. Системы, предназначенные для предоставления сетевых услуг, аналогично тому, как ДОС предназначена для предоставления средств работы с диском. Под такое понимание NOS подходят узкоспециализированные системы, такие как Novell Netware, K9Q или программное обеспечение маршрутизаторов Cisco.
  2. Системы, способные предоставлять сетевые услуги. Под такое определение подходят практически все современные ОС общего назначения.

Судя по тому, что большинство "обзоров сетевых операционных систем" в компьютерных журналах сравнивают не маршрутизатор Cisco с K9Q, а Windows NT с SunSoft Solaris или OS/2, термин NOS в этих публикациях понимается во втором смысле. Как уже говорилось, практически все современные ОС и некоторые ДОС способны предоставлять сетевые сервисы, поэтому этот термин почти эквивалентен словам "Современная ОС общего назначения" и, таким образом, почти не несет полезной информации.

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

Например, задачи управления промышленным или исследовательским оборудованием в режиме жесткого реального времени вынуждают нас делать выбор между специализированными ОС реального времени и некоторыми ОС общего назначения, такими как Unix System V Release 4. Другие приложения, например серверы баз данных, просто требуют высокой надежности и производительности, что отсекает системы класса ДОС и MS Windows.

Наконец, некоторые задачи, такие как автоматизация конторской работы, не предъявляют больших требований к надежности, производительности и времени реакции системы, что предоставляет широкий выбор между различными ДОС, MS Windows, Mac OS и многими системами общего назначения. При этом технические параметры системы перестают играть роль, и в игру вступают другие факторы. На заре персональной техники таким фактором была стоимость аппаратного обеспечения, вынуждавшая делать выбор в пользу ДОС и, позднее, MS Windows.

Сейчас же стоимость аппаратуры резко упала, а требования персонального программного обеспечения резко возросли. Последняя версия пакета MS Office занимает около 120 мегабайт на диске и требует для комфортабельной работы 8-16 мегабайт памяти и процессор класса 486/PentiumOS/2, Linux и некоторых коммерческих систем семейства Unix. Тем не менее, в большинстве ситуаций выбор по-прежнему делается в пользу MS Windows. Обычно при этом ссылаются на отсутствие программного обеспечения для "альтернативных"систем, несмотря на то, что объективный анализ ситуации показывает несостоятельность этого утверждения.

Например, OS/2 способна исполнять практически все прикладное ПО, разработанное для DOS и MS Windows, для этой системы существует также ряд офисных приложений - текстовые процессоры Describe, ClearLook, AmiPro/2, электронные таблицы Lotus-123 и т.д.

Для Linux приложений конторской направленности меньше, и они выглядят несколько странно для пользователя, привыкшего к MS Windows, однако они существуют - например, WYSIWYG текстовый процессор ez и электронные таблицы xess.

Мы не упоминаем здесь прикладное ПО, разработанное для Mac OS, потому что это ПО не может исполняться на процессорах архитектуры x86IBM PC.

Утверждение о том, что MS Windows проще в эксплуатации, чем доступные альтернативы, также не соответствует действительности, особенно при работе в сети. Более убедительно звучат слова о том, что переход под другую ОС потребует переучивания пользователей и поиска или обучения специалистов, которые будут заниматься установкой и поддержкой системы. Большинство же современных специалистов по персональным компьютерам знакомы лишь с одной ОС - MS DOS/MS Windows...

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

Проблема: организация имеет двенадцать велосипедов. Стоит задача: перевезти рояль. Что делать? Грузовик не предлагать...

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

2.3 

Определение и классификация процессов


В этом и следующем разделах мы познакомимся с двумя концептуальными понятиями, связанными с ОС - понятием процесса и ресурса.

В общем случае процесс—это некоторая деятельность, связанная с исполнением программы на процессоре.

При исполнении программ на центральном процессоре чаще всего различают следующие характерные отдельные состояния:
  • порождение — подготавливаются условия для первого исполнения на процессоре
  • активное состояние, или состояние “Счет” — программа исполняется на процессоре
  • ожидание — программа не исполняется на процессоре по причине занятости какого-либо требуемого ресурса
  • готовность — программа не исполняется, но для исполнения предоставлены все необходимые в текущий момент ресурсы, кроме центрального процессора
  • окончание — нормальное или аварийное окончание исполнения программы, после которого процессор и другие ресурсы ей не предоставляются

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



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

Свойства и классификация процессов.

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

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

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

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

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

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

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

Программные процессы принято делить на системные и пользовательские. При развитии системного процесса исполняется программа из состава операционной системы. При развитии пользовательского процесса исполняется пользовательская (прикладная) программа.

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

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

Управление взаимосвязанными процессами в составе ОС основано на контроле и удовлетворении определенных ограничений, которые накладываются на порядок выполнения таких процессов. Данные ограничения определяют виды отношений, которые допустимы между процессами, и составляют в совокупности синхронизирующие правила.

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

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

Отношение взаимного исключения. Здесь два процесса используют обобщенный ресурс. При этом совокупность действий над этим ресурсом в составе одного процесса называют критической областью. Критическая область одного процесса не должна выполняться одновременно с критической областью над этим же ресурсом в составе другого процесса.

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

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



Рис.2.2 Классификация процессов

2.4 

Понятие ресурса


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

Границы, определяющие область действия понятия “ресурс”, достаточно условны. Поэтому будем полагать, что всякий потребляемый объект (независимо от формы его существования), обладающий некоторой практической ценностью для потребителя, является ресурсом.

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

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

Уровень детализации элементов, выделяемых по запросам для использования в системе, может быть различным. Можно в качестве элемента, выделяемого для использования, рассматривать всю ЭВМ в целом. В равной степени отдельный разряд ячейки памяти можно трактовать как отдельный распределяемый элемент. Степень детализации зависит от того, кто и каким образом требует и использует выделяемые элементы системы. Поэтому для определенности будем считать, что потребителем выделяемых элементов вычислительной системы будут являться процессы, развивающиеся в ней. Все выделяемые по запросам от процессов элементы системы отождествляются с понятием ресурсов. Именно в этом смысле далее и трактуется понятие ресурса. В соответствии с ГОСТ 19781 - 83 ресурсом является средство вычислительной системы, которое может быть выделено процессу на определенный интервал времени.

Свойства и классификация ресурсов.

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

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

Свойство виртуализации ресурсов — одной из важнейших при построении систем управления ресурсами. По значимости — это одна из важнейших концепций при построении современных ОС.

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

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

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

Динамика ресурсов в отношении процессов позволяет выделить ресурсы постоянные, существующие до порождения процесса и на всем протяжении его существования и ресурсы временные, появляющиеся динамически в течение времени существования рассматриваемого процесса. Создание и уничтожение может производиться как самим процессом, так и другими процессами -системными или пользовательскими.

По "степени важности" можно выделить ресурсы главные и второстепенные. Главные - без которых данный процесс принципиально не может выполняться (ЦП, память). Второстепенные ресурсы допускают некоторое альтернативное развитие процесса при их отсутствии. Например процесс временно может обходиться без записи результатов на диск в случае неисправности последнего.

Действия над ресурсами.

При централизованном распределении ресурсов соответствующими механизмами ОС в отношении каждого ресурса предполагается, что процесс-пользователь выполняет три типа действий: запрос, использование, освобождение. При выполнении действия запрос в ответ на требование процесса-пользователя система выделяет ресурс, либо отказывает в распределении. Отказ может быть вызван тем, что распределяемый ресурс находится в состоянии "Занят" либо обусловлен какой-то другой причиной. Если ресурс после выполнения действия запрос распределен процессу, то процесс может использовать его. Выполняется действие использование. Действие ОСВосвобождение выполняется по требованию процесса и сводится к переводу ресурса в состояние "Свободен".

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

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


2.5 

Дисциплины распределения ресурсов.


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

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

Дисциплины формирования очередей разделяются на два класса:
  1. статический, где приоритеты назначаются до выполнения пакета заданий
  2. динамический, при котором приоритеты определяются в процессе выполнения пакета

Оба класса широко используются в практике организации вычислительного процесса в ЭВМ.

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

Дисциплина обслуживания в порядке поступления. Первый пришел — первый обслуживается. В литературе эта дисциплина обозначается как FIFO (First in—First out). Самая простая и широко используемая на практике. Условная схема этой дисциплины показана на рис. 2.3, а.

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

Дисциплина обслуживания в порядке, обратном порядку поступления. Последняя пришла —первая обслуживается. Обозначается LIFO (Last in—First out). Так же, как и FIFO, проста в реализации и широко используется на практике. Условное обозначение дисциплин на рис. 2.3, б. Данная дисциплина является основой построения стековой памяти.

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

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

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

Все рассмотренные дисциплины являются одноочередными. В ЭВМ, в операционных системах широко используются многоочередные дисциплины. Схема одной из таких дисциплин приведена на рис. 2.4. Здесь организуется N очередей. Все новые запросы поступают в конец первой очереди. Первый запрос из очереди i поступает на обслуживание лишь тогда, когда все очереди от 1 до (i—1)-й пустые. На обслуживание выделяется квант времени tk. Если за это время обслуживание запроса завершается полностью, то он покидает систему. В противном случае недообслуженный запрос поступает в конец очереди с номером i+l.



Рис.2.4 Схема многоочередной дисциплины обслуживания

После обслуживания из очереди i система выбирает для обслуживания запрос из непустой очереди с самым младшим номером. Таким запросом может быть следующий запрос из очереди i или из очереди i+l (при условии, что после обслуживания запроса из очереди i последняя оказалась пустой). Новый запрос поступает в первую очередь (i = l). В такой ситуации после окончания времени tk, выделенного для обслуживания запроса из очереди i, будет начато обслуживание запроса 1-й очереди.

Если система выходит на обслуживание заявок из очереди N, то они обслуживаются либо по дисциплине FIFO (каждая заявка обслуживается до конца), либо по круговому циклическому алгоритму.

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

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

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



Рис. 2.5 Схема приоритетной многоочередной дисциплины обслуживания


2.6 

Система управления процессами. Задачи синхронизации.