stringtranslate.com

Активации планировщика

Активации планировщика — это механизм потоков , который при реализации в планировщике процессов операционной системы обеспечивает функциональность потоков на уровне ядра с гибкостью и производительностью потоков на уровне пользователя. Этот механизм использует так называемую стратегию «N:M», которая отображает некоторое количество потоков приложения N на некоторое количество M сущностей ядра, или «виртуальных процессоров». Это компромисс между потоками на уровне ядра («1:1») и на уровне пользователя («N:1»). В целом, системы потоков «N:M» сложнее в реализации, чем потоки ядра или пользователя, поскольку требуются как изменения в коде ядра, так и в коде пользовательского пространства.

Активации планировщика были предложены Андерсоном, Бершадом, Лазовской и Леви в книге Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism в 1991 году. [1] Поддержка была реализована в ядре NetBSD Натаном Уильямсом [2], но с тех пор от нее отказались в пользу потоков 1:1. [3] У FreeBSD была похожая реализация потоков, называемая Kernel Scheduled Entities, которая также отменяется в пользу потоков 1:1. Активации планировщика также были реализованы в качестве патча для ядра Linux Винсентом Данжаном: Linux Activations, часть на уровне пользователя была реализована в библиотеке потоков Marcel.

Ссылки

  1. ^ Андерсон, Томас Э.; Бершад, Брайан Н.; Лазовска, Эдвард Д.; Леви, Генри М. (сентябрь 1991 г.). «Активации планировщика: эффективная поддержка ядра для управления параллелизмом на уровне пользователя». Труды тринадцатого симпозиума ACM по принципам операционных систем . стр. 95–109. doi :10.1145/121132.121151. ISBN 0897914473. S2CID  264864317.
  2. ^ Реализация активаций планировщика в операционной системе NetBSD
  3. ^ Значительные изменения от NetBSD 4.0 до 5.0