Андрей Робачевский - Операционная система UNIX

Тут можно читать онлайн Андрей Робачевский - Операционная система UNIX - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-osnet, издательство BHV - Санкт-Петербург, год 1997. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Операционная система UNIX
  • Автор:
  • Жанр:
  • Издательство:
    BHV - Санкт-Петербург
  • Год:
    1997
  • Город:
    Санкт-Петербург
  • ISBN:
    5-7791-0057-8
  • Рейтинг:
    4.63/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Андрей Робачевский - Операционная система UNIX краткое содержание

Операционная система UNIX - описание и краткое содержание, автор Андрей Робачевский, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

В книге рассматриваются: архитектура ядра UNIX (подсистемы ввода/вывода, управления памятью и процессами, а также файловая подсистема), программный интерфейс UNIX (системные вызовы и основные библиотечные функции), пользовательская среда (командный интерпретатор shell, основные команды и утилиты) и сетевая поддержка в UNIX (протоколов семейства TCP/IP, архитектура сетевой подсистемы, программные интерфейсы сокетов и TLI).

Для широкого круга пользователей

Операционная система UNIX - читать онлайн бесплатно полную версию (весь текст целиком)

Операционная система UNIX - читать книгу онлайн бесплатно, автор Андрей Робачевский
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
Рис 640 Архитектура драйвера DLPI Для каждого обслуживаемого драйвером - фото 129

Рис. 6.40. Архитектура драйвера DLPI

Для каждого обслуживаемого драйвером сетевого адаптера создается отдельная структура данных DL_bdconfig_t, описывающая характеристики адаптера и содержащая необходимую для управления адаптером информацию, а также статистику, являющуюся частью MIB (Management Information Base). Эта структура используется аппаратно-независимой и зависимой частями совместно, в том числе и для передачи определенной информации между ними.

В частности, эта структура содержит следующие поля:

major Старший номер устройства, связанного с данным сетевым адаптером
io_start Адрес начала области ввода/вывода
io_end Адрес конца области ввода/вывода
mem_start Адрес начала базовой памяти
mem_end Адрес конца базовой памяти
irq_level Уровень прерывания
шах_saps Максимальное число точек доступа (SAP)
flags Флаги состояния адаптера
mib Список статистических данных

Поле flagsможет включать следующие флаги:

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

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

state Состояние SAP. Возможные состояния определены интерфейсом DLPI. Исходное состояние точки доступа DL_UNBOUND
sap_addr Уникальный адрес (идентификатор) SAP
flags Флаги, определяющие дополнительные характеристики SAP
read_q Указатель на очередь чтения потока, связанного с SAP
write_q Указатель на очередь записи потока, связанного с SAP
mac_type Тип используемого протокола доступа и формат используемого кадра. Возможные значения включают:
DL_CMACD IEEE 802.3
DL_ETHER Ethernet 2.0
DL_TPB IEEE 802.4
DL_TPR IEEE 802.5
DL_HDLC ISO HDLC
DL_FDDI FDDI
service_mode Режим передачи данных. В локальных сетях обычно используется режим без установления связи без подтверждения DL_CLDLS
provider_style Тип поставщика услуг: DL_STYLE1или DL_STYLE2
bd Указатель на структуру DL_bdconfig_t, связанную с сетевым адаптером
next_sap Указатель на следующую точку доступа в списке активных SAP
max_spdu Максимальный размер данных, которые могут быть переданы в кадре
min_spdu Минимальный размер данных, которые могут быть переданы в кадре

Дополнительные характеристики SAP хранятся в поле flags, которое может включать следующие флаги:

RAWCSMACD Указывает, что через SAP передаются только кадры формата IEEE 802.3
SNAPCSMACD Указывает, что через SAP передаются кадры формата LLC SNAP
PROMISCUOUS Указывает, что SAP работает в режиме отсутствия фильтрации кадров (promiscuous mode), при котором SAP получает копии всех кадров независимо от адреса точки доступа, которой они предназначаются. Данный режим применяется, например, при создании приложений мониторинга уровня канала данных
PRIVILEGED Указывает, что управление точкой доступа требует привилегий суперпользователя

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

ifInOctets Общее число октетов, полученных адаптером
ifOutOctets Общее число октетов, переданных адаптером
ifOutUcastPkts Число переданных однонаправленных (unicast) пакетов
ifOutNUcastPkts Число переданных групповых (multicast) и широковещательных (broadcast) пакетов
ifInDiscards Число полученных, но отброшенных правильных пакетов
ifInUcastPkts Число полученных однонаправленных (unicast) пакетов
ifInNUcastPkts Число полученных групповых (multicast) и широковещательных (broadcast) пакетов
ifInErrors Число пакетов, полученных с ошибкой
ifUnknownProtos Число полученных пакетов, которые были отброшены из-за неправильной SAP адресата
ifOutQlen Число пакетов, находящихся в очереди на передачу
ifOutErrors Число пакетов, переданных с ошибкой
etherCollisions Число коллизий

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

DLopen() Точка входа xx open(). Эта функция инициализирует SAP, связанную с данным потоком. Функция проверяет наличие флага BOARD_PRESENTи в случае его отсутствия возвращает ошибку.
DLclose() Точка входа xx close(). Эта функция сбрасывает текущее состояние SAP и устанавливает его равным DL_UNBOUND.
DLwput() Точка входа xx put()для очереди записи. Эта функция интерпретирует примитивы DLPI и вызывает соответствующие процедуры драйвера. В случае, если примитив содержит команду уровня канала данных, например, запрос на передачу датаграммы, вызывается функция DLcmds(), которая производит формирование кадра и вызов функции передачи кадра аппаратно-зависимой части драйвера. В случае, когда примитив содержит команду ioctl(2) , вызывается функция DLioctl().
DLrsrv() Точка входа xx service()для очереди чтения. Функция DLrecv()помещает каждый кадр, полученный от аппаратно-зависимой части драйвера, в очередь чтения потока, ассоциированного с адресуемой SAP. В зависимости от формата кадра (протокола MAC) вызывается соответствующая процедура, извлекающая данные и помещающая их в сообщение DL_UNITDATA_IND(для услуги без предварительного установления связи и без подтверждения), которое направляется вверх по потоку пользователю услуг. Кроме того, DLrsrv()просматривает список активных SAP для возможного копирования сообщения в очереди потоков, имеющих тот же адрес точки доступа. Поскольку функция DLrecv()помещает кадр в очередь первого найденного потока с требуемым адресом SAP (см. описание функции ниже), описанное поведение DLrsrv()гарантирует, что все пользователи услуг уровня канала данных, зарегистрировавшие один и тот же адрес SAP, получат свою копию пакета данных.
DLrecv() Функция обработки полученного пакета. Эта функция определяет формат пакета и помещает его в очередь потока, ассоциированную с адресуемой SAP. Обычно эта функция вызывается функцией обработки прерывания при получении очередного кадра данных от сетевого адаптера.

Примитивы DLPI

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Андрей Робачевский читать все книги автора по порядку

Андрей Робачевский - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Операционная система UNIX отзывы


Отзывы читателей о книге Операционная система UNIX, автор: Андрей Робачевский. Читайте комментарии и мнения людей о произведении.


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

Напишите свой комментарий
x