Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема-ФГР 4к.-2006.doc
Скачиваний:
9
Добавлен:
12.11.2019
Размер:
207.36 Кб
Скачать

Билет 13

1. -Организация прерываний в ЭВМ

Организация прерываний в ЭВМ

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

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

┌────────────┐ ┌───────────┐ ┌───────────┐

│ программа ├<─── IT │ ├<─── IT │ │

│ вычисления ╞══════════>╡ программа ╞═══════════>╡ программа │

│ счетов ╞<══════════╡ давления ╞<═══════════╡ разогрева │

└────────────┘ └───────────┘ └───────────┘

Таким образом ПРЕРЫВАНИЕМ называется ситуация, возникающая в результате какого-либо независимого события (сигнала), приводящего к временному прекращению выполнения одной программы, с целью выполнения другой программы.

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

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

2) Прерывания от обращений к супервизору, которые возникают при появлении команды SUC. В операнде этой команды содержаться число от 0 до 255, которое записывается в старое PSW в качестве кода прерывания и таким образом определяет, какая функция супервизора была затребована из программы пользователя. Программ супервизора, по которым происходит

обработка после появления команды SUC (SUC - программы) бывают 4-х видов:

I. Находящиеся в ядре системы и не допускающие прерываний из программы при их работе : изменение приоритета задачи (CMAP), выхода (EXIT), извлечения управляющей информации из защищенной области памяти (EXTRACT), выделения основной памяти (GETMAIN), освобождения основной памяти (FREEMAIN), извещения о завершении события (POST), получения времени и даты (TIME), проверки интегрального таймера (TTIMER) и ожидания завершения события (WAIT).

II. Программы, постоянно находящиеся в ОЗУ, допускающие при работе прерывания (программы ввода/вывода, которые ждут завершения обмена и потому могут быть прерваны).

III. Аналогичные II по своим характеристикам, но редко используемые программы и поэтому не находящиеся в ядре программы. Их необходимо вызвать из библиотеки супервизора SYS1.SVCLIB в транзитную зону.

IV. В SYS1.SVCLIB (или в любую другую зону) можно загрузить, например, программы из нескольких модулей и их вызвать по мере надобности или имитировать новые драйверы и т.д.

Алгоритм работы будет следующий:

│ │

│обрабатываемая│

│ программа │

│ . │ Таблица

│ . │ прерываний

│ . │ ├───────────┤ ┌───────────────────────────┐

├──────────────┤ │безусловный├──────>┤ обработчик прерываний SVC:│

│ SVC ├───>┤ переход(*)│ │ --------------------------│

├──────────────┼<─┐ ├───────────┤ │ сохраняет весь контекст │

│ . │ │ │ │ │ задачи в соответствующем │

│ . │ │ ├───────────┤ │ магазине (соответсвующем │

│ │ │ │ │ │ номеру SVC │

│ ├───────────┤ ├───────────────────────────┤

│ │ SVC - программа │

│ ├───────────────────────────┤

│ │ программа выхода │

│ │ ---------------- │

│ │ восстанавливает контекст │

│ ├───────────────────────────┤

└─────────────────────┤ диспетчер задач │

└───────────────────────────┘

(*) здесь именно команда безусловного перехода, которая не меняет контекста задачи (то есть ее регистров)

Из пунктов 2-4 необходимо создание блоков запроса супервизоров (SVRB), где содержится вся информация для SVC-программ. Аналогичная схема применяется и для других типов прерываний, то есть также прерывание начинается и завершается обработчиком и программой выхода. Однако есть машины, где весь контекст прерывания сохраняется единой командой в одном магазине (ИРИС80, CRAY-x MP и т.д.).

3) Программные прерывания возникают в результате неправильного использования команд или данных. Их 15:

код IT │ Причина

────────┼──────────────────────────────────────────────────────

1 │ Некорректен код операции

2 │ Некорректеное использование привелигированной команды

3 │ Исключение при команде ВЫПОЛНИТЬ

4 │ Нарушение защиты памяти

5 │ Неправильная адресация

6 │ Неправильная спецификация

7 │ Неправильные данные

8 │ Переполнение типа INTEGER

9 │ Неправильное деление с фиксированной точкой

10(А) │ Десятичное переполнение

11(B) │ Некорректность десятичного деления

12(C) │ Переполнение порядка

13(D) │ Исчезновение порядка

14(E) │ Потеря значимости

15(F) │ Некорректность деления с плавающей точкой

Причем 8,10,13 и 14 можно замаскировать командой SMP и тогда при работе они не будут учитываться. При возникновении таких прерываний старое PSW заменяется новым и управление переходит программе "Обработчик программных прерываний", которая аварийно завершает работу. Если аварийно завершилась одна из подзадач, то и основная задача завершается аварийно. Эти прерывания можно обработать самому пользователю макрокомандой SPIE [адрес_программы_обработки_прерываний, (прерывания)] где прерывания - одно или несколько десятичных чисел, определяющих прерывание Можно отложть аварийное завершение программы через макро STATE.

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

5) Прерывания ввода-вывода позволяют ЦП определять состояние каналов, внешних устройств и контролировать операции ввода/вывода. Поток запросов в/в диспетчеризируются в состветствии с приоритетами, присваеваемыми в порядке поступления запросов и сохраняются до их полной обработки.

6) В IBM 370 (Ряд-2, Ряд-3) есть прерывания повторного пуска, которые возникают в результате действий оператора (нажатие кнопки) или другого процессора. Они не маскируются.

Обычный порядок приоритетов:

1. От схем контроля

2. Программные прерывания и прерывания обращений к супервизору

3. Подавляемые прерывания от схем контроля

4. Прерывания внешние

5. Прерывания в/в

6. Прерывания повторного пуска. Однако, если процессор находится

в состоянии СТОП, то приритетность этих прерываний идет сразу

вслед за программными прерываниями.

Процессор может находится в одном из следующих состояний:

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

Р2 - обработка прерываний

Р3 - анализ прерываний, куда происходит переключение сразу после его возникновений и в котором программа супервизора определяет его причину и потребную программу обработки.

Р4 - обработка прерываний от схем контроля. Каждой из приведенных причин прерываний соответствует два двойных слова памяти и таблица прерываний, адреса которой известны оборудованию.

ОЗУ │ ЦП

── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ── ──

┌────────────┐ 2 │

│ старое PSW ├───────────────────┐

└────────────┘ │ │

N IT│таблица прерываний│ │ │ 1 IT

. ╞══════════════════╡<───────────────┼───────────────────────

n │ SPSW ADRn ├─ ── ── ─┐ /│\

├──────────────────┤ │ ┌─┴──────────┐

n+1│ SPSW ADRn+1 │ └─ ─>┤регистр PSW │

. ├──────────────────┤ │ └─┬──────────┘

. │ . │ /│\

. │ . │ │ │

┌────────────┐ 3 │ │

│ новое PSW ├───────────────────┘

└────────────┘ │

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

Адреса размещения PSW:

старого │ нового │ IT

───────────┼─────────┼───────────────────────────

24 │ 88 │ внешнее

32 │ 96 │ обращение к супервизору

40 │ 104 │ программные

48 │ 112 │ от схем контроля

56 │ 120 │ ввода/вывода

0 │ 8 │ повторного пуска

│ │

А проблемы ввода/вывода мы рассмотрим позже, при описании системы обработки информации.

Особенности работы системы прерывания

-------------------------------------

Возможны два вида работы Системы Прерываний (IT) в режиме мультипроцессирования.

Одна IT для командного ЦП.

--------------------------

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

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

Централизованная система прерываний.

------------------------------------

Эта система объединяет в себе все прерывания, приходящие от различных ЦП и каналов. Таким образом каждый раз при прибытии зап-

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

2. -Организация файловой системы и методы доступа к файлам

СПОСОБЫ ОРГАНИЗАЦИИ ФАЙЛА. СПОСОБЫ ДОСТУПА К ФАЙЛУ И МЕТОДЫ ДОСТУПА

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

1. ПОСЛЕДОВАТЕЛЬНАЯ ОРГАНИЗАЦИЯ - это то же самое, что и организация файлов на магнитной ленте.

2. ИНДЕКСНО-ПОСЛЕДОВАТЕЛЬНАЯ ОРГАНИЗАЦИЯ осуществляется в виде упорядоченной последовательности в соответствии со своими ключами, которые составляют часть каждой записи. Такие файлы располагаются обычно на МД, т. к. на МЛ они теряют свой смысл из-за частой перемотки. Сама ОС способна строить совокупность индексов, с помощью которых задается расположение отдельных записей, что и обеспечивает к каждой записи как последовательный, так и прямой доступ. Графи чески это выглядит так:

┌─────────-──┐ ┌──────────┐

┌────────┬─┼┬──┬──┐ │ ┌────┬─┼┬──┬──┐ │ ┌────────────────────┐

│ FZ │ ││ │ ─┼┬ └>│ AZ │ ││ │ ─┼─┐ └───>│ AA (запись) │

├────────┼──┼──┼──┤│ ├────┼──┼──┼──┤ │ ├────────────────────┤

│ NZ │ │ │ ││ │ .. │ │ │ │ │ │ │

├────────┼──┼──┼──┤│ ├────┼──┼──┼──┤ │ │ │

│ . │ │ │ │└─────>│ FZ │ │ │ │ │ ├────────────────────┤

│ . │ │ │ │ └────┴──┴──┴──┘ └─────>│ AZ (запись) │

|N послед| ├────────────────────┤

|него бло| │|||||||||||||||||||─┼─┐

| ка | └────────────────────┘ │

При вставке КС измен. пусто если │

на KZ ┌──────────┐ нет <────┘

│ │ │ следующего

┌────────┬─┼┬──┬──┐ ---->┌───────────────┐ блока

│ KC/KZ │ ││ │ │_______ │ KA │

├────────┼──┼──┼──┤ | ├───────────────┤

│ LZ │ │ │ ─┼─┐ | │ │

│ │ ─┼──┼──┼─┼───┐| │ │

├────────┼──┼──┼──┤ │ │| │ │

│ . │ │ │ │ │ │| │ │

│ . │ │ │ │ │ │| ├───────────────┤

├────────┼──┼──┼──┤ │ │| │ KC │ ┌───────────────────┐

│ NZ │ │ │ │ │ │| ├───────────────┤ ┌──>│ KD │

└────────┴──┴──┴──┘ │ │| │ ───┼──┘ ├───────────────────┤

│ │| └───────────────┘ │ . │

│ │| │ . │

│ │| ├───────────────────┤

│ │<──────────────────────┐ │ KX │

│ │ ┌───────────────┐ │ ├───────────────────┤

│ └──>│ │ └──┼── KZ │

│ │ │ └───────────────────┘

│ ├───────────────┤

└──────>│ LZ │

├───────────────┤ БЛОК ПЕРЕПОЛ-

│||||||||||||||─┼──>пока НЕНИЯ

└───────────────┘ пусто

ЗОНА КЛЮЧЕЙ БЛОКИ ДАННЫХ

3. ПРЯМАЯ ОРГАНИЗАЦИЯ, которая используется на томах МД. Записи внутри файла могут быть записаны по любому выбранному программистом принципу с использованием абсолютной или относительной адресации, которую мы рассмотрели выше. Здесь можно выделить определенные места под ключи, а под сами индексы в записях пространства не нужно, т. е. физические записи выбираются по непосредственным адресам.

4. ОРГАНИЗАЦИЯ РАЗДЕЛАМИ ИЛИ БИБЛИОТЕЧНАЯ ОРГАНИЗАЦИЯ. Здесь есть характеристики, аналогичные, с одной стороны, последовательной организации, а с другой стороны - индексной организации. Независимые группы последовательно организованных данных, каждая из которых называется разделом(member),располагаются в памяти с прямым доступом.

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

┌───────────────┐

│ A ─┼───┐ <─────────┐

├───────────────┤ │ │ Но вставить сюда новый

│ B │ │ │ раздел нельзя, т. к. ката-

БЛОК 0 ├───────────────┤ │ │ лог строго последова-

(логич. │ . . . │ │ │ тельный

каталог) ├───────────────┤ │ │

│ E │ │ ├───>

├───────────────┤ │ │

│ F │ │ │ Но подкаталог на

├──────────┬────┤ │ │ нескольких уровнях

┌────┼─|||||||||│ 7 │ │ │ создать можно

│ └──────────┴────┘ │ <─────────┘

│ │

│ ┌───────────────┐<──┘

│ │ Раздел А │

│ ├───────────────┤ БЛОК 1

│ ┌──┤ Раздел G │<──┐

│ │ └───────────────┘ │

│ │ │

│ │ ┌───────────────┐ │

│ └─>│ Продолжение G │ │

│ ├───────────────┤ │ <──────┐

│ │ B │ │ БЛОК 3 │

│ ├───────────────┤ │ │

│ │ C │ │ │

│ └───────────────┘ │ ├───> Эти разделы создали

│ . │ │ так: декларировали их

│ ┌───────.───────┐ │ │ длину, но создали позже

│ │ F . │ │ <──────┘

│ └───────.───────┘ │

│ . │

│ ┌───────────────┐ │

└───>│ G ─┼───┘

├───────────────┤

БЛОК 7 │ │

(расшире-│ пусто ┌────┤

ние ката-│ │ 9 ││

лога) └──────────┴───┼┘

┌───────. . .──────┘

│ ┌───────────────┐ ┌─────────────────┐

└───│ O ─┼────────────────┼ O │

├───────────────┤ ├─────────────────┤

БЛОК 9 │ P ─┼────────────────┼ P │ БЛОК 10

(продол- ├───────────────┤ ├─────────────────┤

жение ка-│ ┌───────┤ │|||||||||||||||||│

талога) └───────┴───┼───┘ └─────────────────┘

пусто

А теперь можно посмотреть способы доступа к файлу:

------------------------

1 СПОСОБ ДОСТУПА С ОЧЕРЕДЯМИ, при котором объединение записей в блок происходит автоматически (без указаний в программах). Точно также автоматически производится буферизация данных (без повторных команд GET и PUT для очистки буферов), также автоматически осуществляется ожидание конца ввода/вы вода или выход на стандартную программу обработки ошибок (SYNAD в IBM) и подпрограмму обработки конца файла или конца тома. Это метод для сравнительно небольшой длины записей, но расчитанный на наиболее широкого пользователя.

2. БАЗИСНЫЙ СПОСОБ ДОСТУПА обеспечивается макро READ и WRITE и обеспечивает все случаи, когда ОС не может предсказать последовательность в которой должны обрабатываться записи или когда нет необходимости в автоматическом выполнении всех или части процедур, выполняемых в предыдущем методе автоматически. При этом способе вводятся специальные процедуры для буферизации передачи информации, синхронизации последовательности выборки из буфера или ожидания ввода/вывода.

READ/WRITE обрабатывают не записи, а блоки, а выделение записей из блоков необходимо выполнять в программе. Выделяемые в программе буфера заполняются или очищаются при каждой выдаче команд WRITE и READ, которые также инициализируют ввод/вывод. Чтобы убедиться в успешном завершении операций ввода/вывода, используется макро CHECK (проверить) или через макро WAIT.

3. Есть еще один из способов доступа, называемый "выполнить программу канала" (execute channel program), при котором можно создать собственную систему организации, хранения и выборки данных, т.о. это метод максимольно гибкий, в нем обеспечивается наиболее непосредственное использование физического оборудования. Но при этом теряется независимость программы от конкретных устройств и появляется опасность блокировки системы особенно во взаимодействии с предыдущими методами. Программировать таким методом сложно, поэтому его ис пользуют только системные разработчики. В РС такой метод используется при разработке мониторных систем. В соответствии со сказанным методы доступа можно описать так:

Способ доступа

Тип организации ----------------------------

базисный с очередями

-------------------------------------------------------

последовательная BSAM QSAM

разделами BPAM

индексно-последовательная BISAM QISAM

прямая BDAM

-------------------------------------------------------

Существуют ещё виртуальные последовательные (VSAM-введен в ОС IBM) и прямые (VDAM-введен в CИPИC8) методы доступа, в которых обработка ведётся блоками без разбиения на записи и используется для устройств с прямым доступом. Но в отличии от физических методов, например от BSAM, физических адресов передачи в них знать не надо, т.е. управление идет на уровне логических записей.

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

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

┌─────────────┐ ┌────────────┐

│ │ │ │

│ QSAM │ │ QSAM │

└──────┬──────┘ └─────┬──────┘

│ │

│ │

┌──────┴──────┐ ┌─────────────┐ ┌─────┴──────┐

│ │ │ │ │ │

│ BSAM │ │ BPAM │ │ BISAM │

└──────┬──────┘ └──────┬──────┘ └─────┬──────┘

│ │ │

│ │ │

│ ┌──────┴──────┐ │

└─────────>│ │<───────┘

│ BTAM │

└──────┬──────┘

┌──────┴──────┐

│ │

│ EXCP │

└─────────────┘

Как видим более высокий уровень метода доступа является подструктурой более низкого. Он готовит для него свою часть информации, а затем попросту передает ему управление. Так, QSAM осуществляет последовательное заполнение буфера до тех пор, пока не будет заполнен весь блок, определяемый в DSB параметром BLKSIZE, затем организует ЕСВ и передает управление в BSAM. BSAM в свою очередь проверит правильность заполнения буфера (в соответствии с форматом обработки), инициализирует ЕСВ и передает управление в BDAM. BDAM установит физические адреса записи, тип устройства и передает всё программе физического выполения канала EXCP, где будет осуществлён физический обмен информацией через каналы ввода/вывода (или порты).

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

3. +Маршрутизаторы как устройства для создания сложной иерархической структуры сетей

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

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

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

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

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

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

  • номер фрагмента пакета, необходимый для успешного проведения операций сборки-разборки фрагментов при соединении сетей с разными максимальными размерами пакетов;

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

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

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

Важнейшей задачей сетевого уровня является маршрутизация - передача пакетов между двумя конечными узлами в составной сети.

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

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

Номер сети назначения

Сетевой адрес следующего маршрутизатора

Сетевой адрес выходного порта

Расстояние до сети назначения

Задача маршрутизации решается на основе анализа таблиц маршрутизации, размещенных во всех маршрутизаторах и конечных узлах сети.

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

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

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

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

Одношаговые алгоритмы в зависимости от способа формирования таблиц маршрутизации делятся на три класса:

  • алгоритмы фиксированной (или статической) маршрутизации;

  • алгоритмы простой маршрутизации;

  • алгоритмы адаптивной (или динамической) маршрутизации.

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

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

  • случайная маршрутизация, когда прибывший пакет посылается в первом попавшем случайном направлении, кроме исходного;

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

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

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

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

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

  • дистанционно-векторные алгоритмы (Distance Vector Algorithms, DVA);

  • алгоритмы состояния связей (Link State Algorithms, LSA).

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

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

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

Чтобы понять, в каком состоянии находятся линии связи, подключенные к его портам, маршрутизатор периодически обменивается короткими пакетами HELLO со своими ближайшими соседями. Этот служебный трафик также засоряет сеть, но не в такой степени как, например, RIP-пакеты, так как пакеты HELLO имеют намного меньший объем.

Протоколами, основанными на алгоритме состояния связей, являются протоколы IS-IS (Intermediate System to Intermediate System) стека OSI, OSPF (Open Shortest Path First) стека TCP/IP.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]