Spl (Unix) - Spl (Unix)
Тема этой статьи может не соответствовать Википедии общее руководство по известности. (Октябрь 2017 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
spl (Короче для установить уровень приоритета, после PDP-11 ассемблер одноименная инструкция[1]) - это название коллекции Unix ядро распорядки или макросы используется для изменения уровень приоритета прерывания.[2][3] Исторически это было необходимо для синхронизации критические разделы кода ядра, который нельзя прерывать.[4] Новые варианты Unix, поддерживающие симметричная многопроцессорная обработка сейчас в основном использую мьютексы для этой цели, что является более общим решением, поэтому несколько процессоров могут выполнять код ядра одновременно.[5][1]
В старых версиях Unix для PDP-11 было восемь таких подпрограмм, начиная от spl0 к spl7, каждый из которых соответствует одному уровню приоритета прерывания PDP-11,[3] в дополнение к splx, который восстанавливает предыдущий уровень приоритета (возвращенный одной из других подпрограмм).[2] На BSD Unix и его производные, они называются взмахнуть, дополнительный, залитый, splclock, splstatclock, splvm, spltty, splsofttty, splnet, Splbio, splsoftnet, splsoftclock, Spllowersoftclock, spl0, и splx.[2]
По состоянию на март 2019 г.[Обновить], семейство примитивов spl все еще активно используется в OpenBSD[6] и NetBSD,[7] о чем свидетельствует обилие звонков в splnet () в сетевом коде;[6][7] в то время как FreeBSD и DragonFly BSD использовать более современные концепции; например, в DragonFly, Токены LWKT может использоваться вместо spl.
Смотрите также
использованная литература
- ^ а б Лехи, Грег (2001), Улучшение реализации FreeBSD SMP, получено 11 мая 2018
- ^ а б c "spl (9) - страницы руководства OpenBSD". Получено 11 мая 2018.
- ^ а б Львы, Джон (1976). Комментарий Льва к 6-му изданию UNIX с исходным кодом. п. 43.
- ^ Львы, Джон (1976). Комментарий Льва к 6-му изданию UNIX с исходным кодом. п. 41.
- ^ МакКусик, Маршалл Кирк; и другие. (авторы) (2004). Дизайн и реализация операционной системы FreeBSD. Эддисон-Уэсли. п. 93.
- ^ а б "/sys/net/if.c". Перекрестная ссылка BSD. OpenBSD. 2019-03-01. Получено 2019-03-05.
s = splnet ();
- ^ а б "/sys/net/if.c". Перекрестная ссылка BSD. NetBSD. 2019-03-01. Получено 2019-03-05.
s = splnet ();
| Эта Unix -связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |