Активации планировщика
Активации планировщика — это механизм потоков , который при реализации в операционной системы процессов планировщике обеспечивает функциональность потоков на уровне ядра с гибкостью и производительностью потоков на уровне пользователя. Этот механизм использует так называемую стратегию «N:M», которая отображает некоторое количество N потоков приложений на некоторое количество M объектов ядра или «виртуальных процессоров». Это компромисс между потоками уровня ядра («1:1») и уровня пользователя («N:1»). В общем, системы потоков «N:M» сложнее реализовать, чем потоки ядра или пользовательские потоки, поскольку требуются изменения как в коде ядра, так и в коде пользовательского пространства.
Активации планировщика были предложены Андерсоном, Бершадом, Лазовской и Леви в книге «Активации планировщика: эффективная поддержка ядра для управления параллелизмом на уровне пользователя» в 1991 году. [1] Поддержка была реализована в ядре NetBSD Натаном Уильямсом. [2] но с тех пор от него отказались в пользу резьбы 1:1. [3] Во FreeBSD была аналогичная реализация потоков под названием Kernel Scheduled Entities , которая также была заменена потоками 1:1. Активации планировщика также были реализованы Винсентом Данжаном в виде патча для ядра Linux : Активации Linux, причем часть пользовательского уровня выполнялась в библиотеке потоков Marcel.
Ссылки
[ редактировать ]- ^ Андерсон, Томас Э.; Бершад, Брайан Н.; Лазовска, Эдвард Д.; Леви, Генри М. (сентябрь 1991 г.). «Активации планировщика: эффективная поддержка ядра для управления параллелизмом на уровне пользователя» . Материалы тринадцатого симпозиума ACM по принципам операционных систем . стр. 95–109. дои : 10.1145/121132.121151 . ISBN 0897914473 . S2CID 264864317 .
- ^ Реализация активации планировщика в операционной системе NetBSD.
- ^ Значительные изменения по сравнению с NetBSD 4.0 до 5.0.