Аттестация

Глава 1

Какая основная идея стоит за совместной обработкой и почему она плодотворна?

Что составляет отличия программирования совместной обработки и последовательное программирование?

В чём основная разница между программированием совместной обработки и параллельным программированием?

Может ли всякая программа быть превращена в совместную или параллельную?

Что представляют из себя задачи с ошеломительной параллельностью?

Что такое задачи с врождённой последовательностью?

Что понимается под ограничением со стороны ввода/ вывода?

Как совместная обработка в настоящее время применяется в реальном мире?

Глава 2

Что из себя представляет Закон Амдала? Какую проблему Закон Амдала пытается решить?

Объясните основную формулу Закона Амдала, а также ей компоненты.

Будет ли ускорение увеличиваться бесконечно по мере улучшения ресурсов конкретной системы согласно Закону Амдала?

В чём состоит взаимосвязь между Законом Амдала и законом убывающей отдачи?

Глава 3

Что такое поток? В чём состоит ключевое отличие потока от процесса?

В чём состоят варианты, предоставляемые модулем thread в Python?

Что предлагают параметры, предлагаемые модулем threading из Python?

В чём состоит процесс создания новых потоков через модули thread и threading?

Что стоит за основной идеей синхронизации потоков при помощи блокировки?

Что составляет процесс реализации синхронизации потоков с применением блокировки в Python?

В чём основная идея структуры данных очереди?

Что является основным приложением очередей для совместного программирования?

Что составляет центральное отличие между обычными очередями и очередями с приоритетами?

Глава 4

Что такое файловый дескриптор и как он может обрабатываться в Python?

Какие проблемы появляются, когда файловые дескрипторы не обрабатываются надлежащим образом?

Что из себя представляет блокирование и какими путями оно может обрабатываться в Python?

Какие проблемы возникают при не аккуратной обработке блокировок?

Что стоит за основной идеей диспетчеров контекста?

Какие варианты предоставляет оператор Python with в терминах управления контекстом?

Глава 5

Что такое HTML?

Что такое запрос HTTP?

Что такое код состояния отклика HTTP?

Как модуль requests помогает с выполнением веб запросов?

Что из себя представляет тестирование ping и как он обычно проектируется?

Зачем нужна совместная обработка в применении к выполнению веб запросов?

Что необходимо принимать во внимание при разработке приложений, которые осуществляют одновременные веб запросы?

Глава 6

Что такое процесс? В чём состоят ключевые отличия между процессами и потоками?

Что такое многопроцессность? В чём состоят ключевые отличия между многопроцессностью и многопоточностью?

Какие варианты API предоставляются модулем multiprocessing?

В чём состоят ключевые отличия между классом Process и классом Pool из модуля multiprocessing?

Какие имеются варианты для определения значения текущего процесса в какой- то программе Python?

Что такое процесс демона? В ч1м состоит их цель в терминах ожидания процессов в некоторой программе со множеством процессов?

Как вы завершаете процесс? Почему порой приемлемо прекращать процессы?

Каковы способы снабжения межпроцессного взаимодействия в Python?

Глава 7

Что такое понижающий оператор? Какие условия должны быть соблюдены, чтобы такой оператор мог быть оператором свёртки?

Какие свойства, эквивалентные требуемым условиям, имеют понижающие операторы?

Какова взаимосвязь между операторами свёртки и параллельным программированием?

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

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

Глава 8

Что такое задача обработки изображений?

Что является наименьшим элементом цифрового изображения? как он представляется в компьютере?

Что такое формирование полутонов серого? Какую цель преследует данная техника?

Что представляет из себя обработка пороговым значением? Какую цель ставит перед собой такая методология?

Зачем следует выполнять совместную обработку изображений?

Назовите некоторые достойные практические приёмы совместной обработки изображений.

Глава 9

Какая основная мысль стоит за асинхронным программированием?

Чем асинхронным программирование отличается от синхронного программирования?

В чём состоят отличия асинхронного программирования от потоков и многопроцессности?

Глава 10

Что такое асинхронное программирование? Какие преимущества оно предоставляет?

Что выступает в роли основных элементов асинхронной программы? Как они взаимодействуют друг с другом?

Чем являются ключевые слова async и await? Какие цели они обслуживают?

Какие варианты предоставляет модуль asyncio в смысле реализации асинхронное программирование?

Какие улучшения относящиеся к асинхронному программированию предоставляет Python 3.7?

Что представляет из себя блокирующая функция? Почему она вызывает пролемы при обычном асинхронном программировании?

Каким образом concurrent.futures предоставляет некое решение блокирующим функциям при асинхронном программировании? Какие варианты он предлагает?

Глава 11

Что представляет из себя канал взаимодействия? В чём состоит его связь с асинхронным программированием?

Что составляет две основные части модели OSI уровней протоколов? Какие цели обслуживает каждая из них?

Что представляет из себя транспортный уровень? Почему он критически важен для каналов взаимодействия?

Как asyncio способствует реализации каналов взаимодействия стороны сервера?

Как asyncio способствует реализации каналов взаимодействия стороны клиента?

Что такое aiofiles?

Глава 12

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

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

В чём состоят четыре условия Коффмана?

Как ранжирование ресурсов способно решить проблему взаимного блокирования? Какие иные проблемы могут появится при его реализации?

Каким образом игнорирование блокировок решает проблему взаимных блокировок? Какие иные проблемы могут возникнуть при его реализации?

Какое отношение имеют активные тупики к взаимному блокированию?

Глава 13

Что представляет из себя зависание и почему оно не желательно в параллельном программировании?

В чём основополагающие причины зависания? В чём проявляются распространённые поводы зависания на верхнем уровне, которые могут проявляться из лежащих в основании причин?

В чём состоит взаимосвязь между взаимным блокированием и зависанием?

В чём состоит задача читатели- писатели?

Каков первый подход к проблеме читателей- писателей? Почему зависание возникает в этом случае?

В чём состоит второй подход к проблеме читатели- писатели? Почему в этой ситуации появляется зависание?

Расскажите о третьем подходе к проблеме читатели- писатели. Почему он успешно разрешает проблему зависания?

Каковы наиболее распространённые решения проблемы зависания?

Глава 14

Что такое критический раздел?

Что представляет из себя условие состязательности и почему оно не желательно в программе совместной обработки?

В чём состоят причины, лежащие в основе условий состязательности?

Как блокирование может разрешить общую проблему условий состязательности?

Почему блокировки порой не желательны в программах совместной обработки?

Какие существенные условия состязательности имеются в практических системах и приложениях?

Глава 15

К чему сводятся отличия в управлении памятью между Python и C++?

Какую проблему решает GIL для Python?

Какие задачи создаёт GIL для Python?

В чём заключаются основные подходы перехитрить имеющийся GIL в программах Python?

Глава 16

В чём состоит основной подход к решению той проблемы что блокировки ничего не блокируют?

Опишите основную концепцию масштабируемости в нашем контексте параллельного программирования.

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

Что представляют из себя аппроксимирующие счётчики и как они на самом деле помогают в решении задачи масштабирования программ совместной обработки?

Возможны ли свободные от блокирования структуры данных в Python? Почему?

Что представляет из себя свободная от семафоров структура данных и в чём её отличие от структуры данных совместной обработки, свободной от блокировки?

Что такое техника RCU и какие проблемы она разрешает для структур данных совместной обработки без семафоров?

Глава 17

Каковы основные компоненты диспетчера памяти Python?

Чем имеющаяся модель памяти Python походит на помеченный ориентированный граф?

В чём состоят преимущества и недостатки модели памяти Python в отношении разработки приложений совместной обработки на Python?

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

Приведите три примера врождённо атомарных операций Python.

Глава 18

Что такое сокет? Насколько он значим в сетевом программировании?

Что представляет из себя процедура взаимодействия стороны сервера когда некий потенциальный клиент выполняет запрос на подключение?

Расскажите о некоторых предоставляемых встроенным модулем socket методах для содействия сетевому программированию нижнего уровня стороны сервера.

Что представляют собой генераторы? В чём их преимущество в сопоставлении со списками Python?

Что являют собой асинхронные генераторы? Как они могут применяться для построения сервера, свободного от блокировок?

Глава 19

Что представляет из себя APScheduler? Почему он не является некоторой службой планирования?

В чём состоят основные функциональные возможности APScheduler?

В чем состоят отличия между APScheduler и другим инструментом планирования в Python, Celery?

В чём состоит цель проверки в программировании? Как она отличается в программировании совместной обработки?

Какие методы проверки обсуждались в данной главе?

В чём состоит цель отладки в программировании? Как она отличается в программировании совместной обработки?

Какие методы отладки обсуждались в данной главе?