Готовый перевод Linux Device Drivers 3 / Драйверы устройств Линукс (третье издание): Chapter 5. Concurrency and Race Conditions

Внимание! Этот перевод, возможно, ещё не готов, так как модераторы установили для него статус «идёт перевод»

Глава 5, Конкуренция и состояния состязаний

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

В ранних ядрах Linux было относительно мало источников конкуренции. Симметричные многопроцессорные системы (Symmetric multiprocessing systems, SMP) не поддерживались ядром и единственной причиной одновременного исполнения было обслуживание аппаратных прерываний. Такой подход предлагает простоту, но это больше не работает в мире, который ценит производительность систем со всё большим и большим числом процессоров, и настаивает на том, чтобы система быстро реагировала на события. В ответ на эти требования современного оборудования и приложений ядро Linux превратилось в точку, где происходит одновременно много больших событий. Эта эволюция привела к гораздо более высокой производительности и масштабируемости. Это, однако, значительно усложняет программирование ядра. Программисты драйверов устройств должны теперь учитывать конкуренцию в их разработке с самого начала и они должны иметь чёткое понимание возможностей, предоставляемых ядром для управления конкуренцией.

Цель этой главы - начать процесс создания такого понимания. С этой целью мы вводим средства, которые сразу же применяются в драйвере scull из Главы 3. Другие средства, представленные здесь, не будут использоваться ещё некоторое время. Но сначала мы взглянем на то, что может пойти не так с нашим простым драйвером scull и как избежать этих потенциальных проблем.

Внимание! Этот перевод, возможно, ещё не готов.
Его статус: идёт перевод

Переведено на Нотабеноиде
http://notabenoid.org/book/11832/38286

Переводчики: hardorsoft

Настройки

Готово:

100.00% КП = 1.0