ответ

1

Нет, они подходят для использования в любом контексте ядра, где вам разрешено спать. Например, поток ядра может делать down(). Конечно, функция таймера не может, так как down() может спать. Вам определенно не нужно напрямую обращаться с системным вызовом.

Как и в сторону, в современных ядрах, struct mutex и mutex_lock() предпочтительнее struct semaphore и down() для случаев, когда вы действительно должны подсчета семафоры, или нужно освободить семафор из другого контекста, чем когда она приобретается за исключением.

0

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

вы можете использовать

 Смежные вопросы

  • Нет связанных вопросов^_^