Мы пытаемся оценить, лучше ли выполнять какую-либо связанную с hw задачу в пользователе или в ядре. Задача должна реагировать на прерывание и выполнять некоторую задачу, которая должна копировать данные в физическое (отображаемое) пространство памяти.приоритеты потоков ядра и приоритеты пользовательских потоков
По моему мнению, одна и та же задача должна выполняться как в пользовательском пространстве, так и в ядре.
Единственная открытая проблема заключается в том, что приоритет потока ядра выше приоритета потоков пользователей.
Мы используем pthread
для пользователей или kthread
для потока ядра.
Итак, мой вопрос:
Когда два потока будет готов, это поток ядра имеет более высокий приоритет по сравнению с пользовательским потоком?
EDIT: Если kthread_create была создана с SCHED_FIFO и приоритет отдается й, и pthread_create было создано с SCHED_FIFO и с учетом приоритетов у, и приоритета PTHREAD выше KTHREAD, будет по-прежним KTHREAD попасть в планировщик перед пользовательский поток?
Спасибо!
Спасибо, я отредактировал сообщение выше, с вопросом о ценах: «Если pthread выше, чем kthread, все равно kthread попадет в планировщик перед потоком пользователя?» – ransh
@ransh Я изменил свой ответ, но вкратце CPU заплатит более приоритетные потоки в первую очередь. –
Спасибо, так что если пользовательский поток имеет более высокий приоритет, чем поток ядра, он будет запланирован первым, если я правильно пойму. Thx – ransh