игра брюс 2048
Главная / Операционные системы / Внутреннее устройство ядра Linux / Тест 34

Внутреннее устройство ядра Linux - тест 34

Упражнение 1:
Номер 1
Каким образом пролегает входящий путь сетевого пакета?

Ответ:

 (1) сокет -> стек протоколов -> драйвер сетевой карты -> сетевая карта 

 (2) сетевой адаптер -> драйвер сетевого адаптера -> обработчик NET_RX_SOFTIRQ -> сокет -> стек протоколов 

 (3) сетевой адаптер -> драйвер сетевого адаптера -> обработчик NET_RX_SOFTIRQ -> стек протоколов -> сокет 

 (4) сокет -> драйвер сетевой карты -> обработчик NET_RX_SOFTIRQ -> стек протоколов -> сетевая карта 


Номер 2
Что сетевой адаптер делает при получении сетевого пакета?

Ответ:

 (1) проверяет МАС адрес 

 (2) складывает пакет в кольцевой буфер 

 (3) копирует данные пакета в структуру sk_buff 

 (4) генерирует прерывание (иногда) 


Номер 3
Кем обрабатывается прерывание от сетевой карты

Ответ:

 (1) драйвером сетевой карты 

 (2) драйвером протокола IP 

 (3) подсистемой VFS 

 (4) драйвером сетевой карты и драйвером протокола IP 


Упражнение 2:
Номер 1
 В каком контексте происходит обработка прерывания от сетевой карты?

Ответ:

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

 (2) контексте аппаратного прерывания 

 (3) контексте программного прерывания (Soft IRQ) 

 (4) как в контексте аппаратного прерывания, так и в контексте пользовательской задачи 


Номер 2
Во время обработки сетевого пакета в драйвере сетевой карты:

Ответ:

 (1) разрешены только аппаратные прерывания от этой же сетевой карты 

 (2) разрешены любые аппаратные прерывания 

 (3) разрешены любые аппаратные и программные прерывания (Soft IRQ) 

 (4) запрещены любые аппаратные и программные прерывания (Soft IRQ) 


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

Ответ:

 (1) возможны задержки в приёмке остальных данных из сети 

 (2) ничего страшного, все данные могут быть буферизованы 

 (3) возможны потери сетевых пакетов 

 (4) данные автоматически будут пере запрошены для любого протокола 


Упражнение 3:
Номер 1
Что делает драйвер сетевой карты при обработке прерывания?

Ответ:

 (1) инициализирует данными входящего пакета с структуру sk_buff 

 (2) перекладывает входящий пакет в специальную очередь 

 (3) вызывает программное прерывание (NET_RX_SOFTIRQ) для передачи управления последующему обработчику сетевых пакетов 

 (4) выполняет вызов обработчика пакета подсистемой сокетов 


Номер 2
Где находится специальная очередь пакетов для обработки стеком протоколов?

Ответ:

 (1) в драйвере сетевой карты 

 (2) в промежуточном слое net devices 

 (3) в самом драйвере самого нижнего по стеку сетевого протокола 

 (4) в подсистеме сокетов 


Номер 3
Каким образом передаётся управление коду обработчика входящих пакетов после обработки в драйвере сетевой карты?

Ответ:

 (1) по инициативе приложения, опрашивающего ядро о новых сетевых данных 

 (2) подсистема сокетов опрашивает наличие новых сетевых пакетов 

 (3) драйвер сетевой карты делает вызов "CALL" кода функции обработки пакета в коде драйвера сетевого протокола 

 (4) драйвер сетевого протокола инициирует программное прерывание (NET_RX_SOFTIRQ) 


Упражнение 4:
Номер 1
 Есть ли какие недостатки у способа по-пакетной обработки входящего трафика

Ответ:

 (1) нет никаких недостатков, это оптимальный вариант обработки сетевого трафика 

 (2) при большом количестве пакетов частое генерирование прерываний может привести к проблемам производительности 

 (3) при большом размере пакетов частый вызов NET_RX_SOFTIRQ может привести к проблемам производительности 

 (4) при редком приходе пакетов возможны потери сетевых пакетов 


Номер 2
В чём особенности работы драйвера сетевой карты при использовании NAPI?

Ответ:

 (1) драйвер сетевой карты создаёт резерв объектов sk_buff для программного прерывания 

 (2) драйвер сетевой карты маскирует аппаратные прерывания от сетевой карты 

 (3) драйвер сетевой карты вызывает программное прерывание NET_RX_SOFTIRQ с пометкой что используется подход NAPI 

 (4) драйвер сетевой карты разрешает прерывания от сетевой карты после старта программного прерывания NET_RX_SOFTIRQ 


Номер 3
В чём особенности работы обработчика программного прерывания NET_RX_SOFTIRQ при использовании NAPI?

Ответ:

 (1) обработчик считывает данные напрямую из буфера памяти сетевой карты 

 (2) обработчик получает несколько пакетов из драйвера сетевой карты 

 (3) обработчик повторно вызывает программное прерывание NET_RX_SOFTIRQ 

 (4) обработчик разрешает аппаратные прерывания для сетевой карты 


Упражнение 5:
Номер 1
Каким образом вызываются обработчики протоколов для стека протоколов

Ответ:

 (1) обработчик программного прерывания NET_RX_SOFTIRQ последовательно вызывает обработчик для каждого последующего протокола стека 

 (2) обработчики протоколов стека вызывают друг друга последовательно. Обработчик протокола первого уровня вызывается из обработчик программного прерывания NET_RX_SOFTIRQ 

 (3) обработчик каждого уровня протокола имеет свою очередь пакетов, а управление каждому обработчику передаётся через программное прерывание 

 (4) обработчик каждого уровня протокола имеет свою очередь пакетов, а обработка инициируется вызовом от системы сокетов 


Номер 2
Каким образом определяется последующий обработчик протокола?

Ответ:

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

 (2) обработчик протокола вышестоящего уровня определяет нижестоящий протокол и вызывает соответствующий обработчик 

 (3) специальный код обработчика программного прерывания NET_RX_SOFTIRQ определяет нижестоящий протокол и вызывает соответствующий обработчик 

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


Упражнение 6:
Номер 1
Каким образом подсистема сокетов получает данные от стека сетевых протоколов

Ответ:

 (1) данные записываются в буфер данных соответствующего сокета 

 (2) данные записываются в очередь данных последнего протокола стека и посылается программное прерывание для соответствующих сокетов 

 (3) данные посылаются в подсистему сокетов через PIPE 

 (4) данные добавляются в очередь пакетов на сокете 


Номер 2
После поступления данных в очередь пакетов подсистемы сокетов происходит:

Ответ:

 (1) ожидание вызова считывания сетевых данных из приложения 

 (2) ожидания пока подсистема сокетов получит программное прерывание и обработает данные из очереди пакетов 

 (3) нотификация соответствующего сокета 

 (4) по таймеру очередь пакетов подсистемы сокетов обрабатывается и пакеты распределяются по "своим" сокетам 


Номер 3
Какова стратегия выделения памяти под входящие сетевых пакеты в драйверах сетевых устройств:

Ответ:

 (1) запрашивать выделение памяти с флагом "освободить кэши если свободной памяти нет" 

 (2) запрашивать выделение памяти без флага "освободить кэши если свободной памяти нет" 

 (3) использовать заранее выделенный пул объектов 

 (4) попытаться запрашивать выделение памяти без флага "освободить кэши если свободной памяти нет" и если памяти нет использовать заранее выделенный пул 


Упражнение 7:
Номер 1
К методам каких объектов идёт обращение из системного вызова при посылке приложением данных в сеть?

Ответ:

 (1) к методам объекта superblock 

 (2) прямое обращение к методам драйвера верхнего сетевого протокола 

 (3) прямое обращение к методам объекта socket 

 (4) прямое обращение к методам объекта Sock 


Номер 2
Каким способом происходит передача посылаемых в сеть данных от приложения модулям ядра при использовании системных вызовов write() или send()

Ответ:

 (1) ядро выделяет память под данные и копирует туда данные приложения 

 (2) ядро получает указатель на буфер с данными от приложения и далее работает с этим буфером 

 (3) приложение запрашивает у ядра указатель на буфер в памяти ядра и переписывает туда данные 

 (4) приложение выделяет в адресном пространстве ядра буфер памяти и сразу пишет пересылаемые данные в этот буфер 


Номер 3
Сколько памяти выделяется под сетевой исходящий пакет в ядре LINUX?

Ответ:

 (1) ровно по количеству данных, так как размер заголовков предугадать невозможно  

 (2) ровно по количеству данных плюс заголовки всех сетевых протоколов, т.к. все протоколы уже известны и размер можно предсказать 

 (3) для всех сетевых пакетов выделяется всегда одно и то же количество памяти (страница памяти) 

 (4) выделяется памяти по размеру данных и известных заголовков плюс некоторый запас 


Упражнение 8:
Номер 1
Что происходит при посылке исходящих данных в сеть?

Ответ:

 (1) Обращение к методу (операции) объекта socket выполняющего отправку данных 

 (2) выделение памяти под посылаемый(ые) сетевой пакет в ядре 

 (3) каждый протокол добавляет свой заголовок 

 (4) драйвер самого нижнего протокола перекладывает данные в буфер памяти сетевой карты 

 (5) вызывается метод отправки данных в сеть объекта net device 


Номер 2
В каком контексте может исполнятся обработка исходящего трафика?

Ответ:

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

 (2) контексте аппаратного прерывания 

 (3) контексте программного прерывания (Soft IRQ) 

 (4) как в контексте программного прерывания, так и в контексте пользовательской задачи 


Номер 3
Каким образом выполняется отправка данных в сеть после обработки исходящего трафика драйверами сетевых протоколов?

Ответ:

 (1) обращение к методу (операции) объекта socket выполняющего отправку данных 

 (2) драйвер самого нижнего протокола перекладывает данные в буфер памяти сетевой карты 

 (3) вызывается метод отправки данных в сеть объекта net device 

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


Упражнение 9:
Номер 1
Каким образом драйвер протокола TCP выполняет клонирование исходящих пакетов?

Ответ:

 (1) сохраняется адрес структуры sk_buff 

 (2) копируются данные структуры sk_buff, сам буффер данных не размножается 

 (3) копируются данные структуры sk_buff, буффер данных так же копируется 

 (4) копируется буфер данных, sk_buff не размножается 


Номер 2
Каким образом выполняется оптимизация клонирования структур sk_buff?

Ответ:

 (1) выделение памяти в ядре достаточно оптимально, дополнительная оптимизация не нужна 

 (2) используется выделение памяти через kmemcache 

 (3) специально для TCP используется отдельный skb clone cache 

 (4) при старте системы выделяется пул заранее созданных sk_buff и при клонировании всегда используются объекты из этого пула 


Номер 3
Чем отличается выделение памяти под объекты sk_buff через skb clone cache от выделения памяти через kmemcache

Ответ:

 (1) выделяется удвоенный размер памяти - для объекта и для его клона 

 (2) сразу инициализируются основные поля структуры sk_buff 

 (3) из-за фиксированного размера выделение происходит быстрее 

 (4) не происходит освобождения (чистки) памяти в случае её нехватки 


Упражнение 10:
Номер 1
В каких объектах ядра создаются очереди сетевых пакетов?

Ответ:

 (1) очередь исходящих пакетов в net device 

 (2) очередь входящих пакетов в net device 

 (3) очередь входящих пакетов в сокетах 

 (4) очередь исходящих пакетов в сокетах 

 (5) очередь исходящих пакетов на транспортном уровне (протокол TCP) 

 (6) очередь входящих пакетов на транспортном уровне (протокол TCP) 


Номер 2
В каких очередях сетевых пакетов не допускается потери пакетов (не постановка в очередь из-за отсутствия памяти)?

Ответ:

 (1) очередь исходящих пакетов в net device 

 (2) очередь входящих пакетов в сокетах 

 (3) очередь исходящих пакетов на транспортном уровне (протокол TCP) 

 (4) очередь входящих пакетов на транспортном уровне (протокол TCP) 

 (5) в любых допускается потеря 


Номер 3
При работе с какой очередью пакетов проблемы недостатка ресурсов решаются управлением потока сетевых пакетов?

Ответ:

 (1) очередь исходящих пакетов в net device 

 (2) очередь входящих пакетов в net device 

 (3) очередь входящих пакетов в сокетах 

 (4) очередь входящих пакетов в сокетах 

 (5) очередь исходящих пакетов на транспортном уровне (протокол TCP) 

 (6) очередь входящих пакетов на транспортном уровне (протокол TCP) 




Главная / Операционные системы / Внутреннее устройство ядра Linux / Тест 34