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

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

Упражнение 1:
Номер 1
Зачем нужен планировщик процессорного времени?

Ответ:

 (1) запуск на одном процессоре одного процесса 

 (2) запуск на одном процессоре нескольких процессов одновременно 

 (3) запуск на системе с несколькими процессорами нескольких процессов одновременно 

 (4) одновременное выполнение нескольких операций с файловой подсистемой 

 (5) контроль за работой системы procfs 


Номер 2
Что означает "эмуляция многозадачности" современными операционными системами?

Ответ:

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

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

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

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


Номер 3
В чём заключается многозадачность операционная системы?

Ответ:

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

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

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

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


Упражнение 2:
Номер 1
За что отвечает функция schedule()?

Ответ:

 (1) диспетчиризует доступ приложений к файловой системе 

 (2) следит за расписанием старта приложений 

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

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


Номер 2
Какие шаги выполняются при вызове функции schedule()?

Ответ:

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

 (2) берётся объект current исполняющегося сейчас процесса 

 (3) выбирается следующий процесс next 

 (4) выполняется процедура переключения контекста с current на next 


Номер 3
С какими объектами ядра next и current работает функция schedule()?

Ответ:

 (1) ссылки на существующие объекты task_struct 

 (2) копии объектов task_struct 

 (3) ссылки на объекты list_head 

 (4) ссылки на структуры pid 


Упражнение 3:
Номер 1
Как работает процедура переключения контекста с процесса current на процесс next?

Ответ:

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

 (2) сохранить регистры на стеке процесса current 

 (3) перезаписать регистры значениями из стека next 

 (4) продолжить исполнение процесса current 

 (5) продолжить исполнение процесса next 


Номер 2
Когда может быть вызвана функция schedule?

Ответ:

 (1) при возникновении аппаратного прерывания по таймеру 

 (2) при вызове функции set_current_state() 

 (3) в preemtive kernel 

 (4) при выполнении кода программного прерывания 


Номер 3
Что такое preemtive kernel?

Ответ:

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

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

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

 (4) такое ядро не прерывает исполнение пользовательского кода если приложение сообщило что это нельзя делать 


Упражнение 4:
Номер 1
На основании каких параметров планировщик выбирает следующую задачу для выполнения?

Ответ:

 (1) количество ранее выделенного задаче времени 

 (2) наличие примитивов синхронизации, находящихся в состоянии ожидания 

 (3) количество открытых файлов и сокетов 

 (4) приоритет процесса 


Номер 2
Чем отличается планировщик real-time системы от обычного планировщика ядра linux?

Ответ:

 (1) real-time системах учитывается минимально необходимый процессу отклик на событие 

 (2) планировщик real-time системы работают по аппаратным прерываниям, а обычный планировщик по программным 

 (3) планировщик real-time системы выделяет только кванты времени постоянного размера, а обычный планировщик - переменного 

 (4) в real-time системе приложения получают квант времени в строгой очерёдности 


Номер 3
Как планировщик реализует процедуру выделения времени задачам

Ответ:

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

 (2) запрашивает состояние примитивов синхронизации, используемое процессами 

 (3) выбирает процессы, выполняющие операции ввода-вывода в файлы или сокеты 

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


Упражнение 5:
Номер 1
Какие основные трудности решались при разработке планировщиков ядра Linux?

Ответ:

 (1) учёт реального времени исполнения процессов 

 (2) недостаточная производительность процессоров 

 (3) работа интерактивных приложений 

 (4) работа на мультипроцессорных системах 

 (5) работа на системах с дисковыми массивами 


Номер 2
В чём недостаток выделения времени приложениям квантами фиксированного размера?

Ответ:

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

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

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

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


Номер 3
Каким образом решили проблему учёта времени процессов?

Ответ:

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

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

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

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


Упражнение 6:
Номер 1
В чём особенность интерактивного процесса с точки зрения планировщика?

Ответ:

 (1) это процесс, которому надо быстро начать обработку полученного события 

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

 (3) это процесс, которому может потребоваться большое количество процессорного времени 

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


Номер 2
В чём была проблема выделения времени интерактивному процессу

Ответ:

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

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

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

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


Номер 3
Как решили проблему выделения процессорного времени интерактивному процессу?

Ответ:

 (1) позволили объявлять процесс интерактивным 

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

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

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


Упражнение 7:
Номер 1
Какие проблемы возникают при разработке планировщика для многопроцессорной системы?

Ответ:

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

 (2) при подсчёте времени исполнения задач, исполняющихся на разных процессорах 

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

 (4) необходимость вести учёт времени заполнения кэшей процессоров при переключении контекстов исполнения 


Номер 2
К чему ведёт постоянное перемещение процесса между процессорами?

Ответ:

 (1) процесс будет работать быстрее из-за частой очистки процессорного кэша 

 (2) падает точность определения средневзвешенного использованного процессорного времени из-за не учёта времени на очистку процессорных кэшей 

 (3) процесс будет работать медленнее из-за очистки-заполнения процессорных кэшей 

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


Номер 3
Каким образом были решены проблемы разработки планировщика для SMP?

Ответ:

 (1) в расчёте средневзвешенного процессорного времени начали учитывать времена заполнения и очистки процессорных кэшей  

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

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

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


Упражнение 8:
Номер 1
Какие операции выполнял первый (старый) планировщик?

Ответ:

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

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

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

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

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


Номер 2
Какие усовершенствования были сделаны в планировщике О(1)?

Ответ:

 (1) хранение задач в отсортированном по приоритету списке 

 (2) хранение задач в красно-чёрном дереве 

 (3) использование 2-х списков процессов вместо одного 

 (4) списки на каждом процессоре свои и сделали балансировку нагрузки на процессоры 


Номер 3
В чём особенность планировщика CFS?

Ответ:

 (1) планирует не процессы, а sched_entity, организованные в дерево 

 (2) полностью решена проблема priority invertion 

 (3) начал точно учитывать время исполнения sched_entity 

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


Упражнение 9:
Номер 1
Для чего служит idle процесс?

Ответ:

 (1) для принудительного вытеснения выполняющегося процесса 

 (2) для организации простоя процессора 

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

 (4) для точного учёта использованного процессами времени 


Номер 2
Что такое проблема priority inversion?

Ответ:

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

 (2) ошибки при подсчёте используемого процессорного времени приводят к ошибкам использования приоритетов 

 (3) интерактивное приложение не получает во время управление несмотря на высокий приоритет 

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


Номер 3
Как решается проблема priority inversion

Ответ:

 (1) для точного учёта времени запускается idle процесс 

 (2) для futex-ов её решили подъемом приоритета низкоприоритетному процессу, если он захватил примитив синхронизации 

 (3) для ядра в целом проблема ещё не решена 

 (4) приложение вытесняется с использованием migration thread 




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