Может кто-то помочь прояснить мое понимание потоков ядра. Я слышал, что в Linux/Unix потоки ядра (например, системные вызовы) выполняются быстрее, чем потоки пользователей. Но разве эти пользовательские потоки не запланированы ядром и выполняются с использованием потоков ядра? может кто-то, пожалуйста, скажите мне, в чем разница между потоком ядра и пользовательским потоком, отличным от того, что они имеют доступ к различным адресным пространствам. какая разница между ними? Верно ли, что на одном процессорном поле, когда пользовательский поток запущен, ядро будет приостановлено?пользовательские темы v.s. Ядровые потоки
Спасибо заранее,
Alex
Таким образом, на одном процессоре необработанные циклы ЦП распределяются по времени во многих очередях выполнения для потоков ядра. некоторые из этих очередей дополнительно нарезаны для запуска многочисленных пользовательских потоков. Я прав? – techie11
Иерархия, которую вы предполагаете (пользовательские потоки под потоками ядра), не существует. Такая же иерархия приоритетов процессов используется как для пользовательских задач, так и для потоков ядра. Кроме того, при каждом квантовании планирования центральный процессор выбирает подходящую задачу для запуска - при условии, что существует хотя бы один выполняемый процесс, CPU не работает. – duskwuff
Вы пропустили самый важный из них - когда прерывание ввода-вывода к драйверу готовит ожидающий поток. Это основная причина использования упреждающего ядра мититаскинга - хорошая производительность ввода-вывода. –