Защита структуры, к которой обращаются обработчики исключений и функции отложенного выполнения
Структуру данных, к которой обращаются как обработчики исключений, так и функции отложенного выполнения, можно воспринимать как структуру, к которой обращаются обработчики исключений и прерываний. Функции отложенного выполнения фактически активизируются в результате прерываний, и никакое исключение не может быть возбуждено, пока выполняется функция отложенного выполнения. Следовательно, достаточно комбинации отключения локальных прерываний с получением спин-блокировки.
На самом деле, этого более чем достаточно. Обработчик исключения может вместо отключения локальных прерываний просто запретить функции отложенного выполнения при помощи макроса locai bh disabie .Запрещение только функций отложенного выполнения предпочтительнее отключения прерываний, поскольку последние продолжают обслуживаться процессором. Выполнение функций отложенного выполнения сериализовано на каждом процессоре, так что конфликты не возникают.
Как обычно, в многопроцессорных системах необходимо применять спин- блокировки для гарантии того, что к структуре в любой момент времени обращается не больше одного управляющего тракта ядра.
Предыдущая страница | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | Следующая страница