Spl (Unix) - Spl (Unix)
![]() | Téma tohoto článku nemusí splňovat požadavky Wikipedie obecný pokyn k notabilitě.Října 2017) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
spl (zkratka pro nastavit úroveň priority, po PDP-11 assembler instrukce stejného jména[1]) je název kolekce Unix jádro rutiny nebo makra slouží ke změně úroveň priority přerušení.[2][3] To bylo historicky nutné synchronizovat kritické sekce kódu jádra, který by neměl být přerušen.[4] Novější varianty Unixu, které podporují symetrické více procesů nyní většinou používají mutexy pro tento účel, což je obecnější řešení, takže více procesorů může spouštět kód jádra současně.[5][1]
Na starších verzích Unixu PDP-11 existovalo osm těchto rutin, od spl0
na spl7
, každý odpovídá jedné úrovni priority přerušení PDP-11,[3] navíc Splx
, který obnovuje předchozí úroveň priority (vrácená jedním z dalších rutin).[2] Na BSD Unix a jeho deriváty, tyto se nazývají splhigh
, splserial
, splsched
, spllock
, splstatclock
, splvm
, spltty
, splsofttty
, splnet
, splbio
, splsoftnet
, splsoftclock
, spllowersoftclock
, spl0
, a Splx
.[2]
Od března 2019[Aktualizace], rodina primitiv spl je stále hojně používána OpenBSD[6] a NetBSD,[7] o čemž svědčí spousta volání na splnet ()
v rámci síťového kódu;[6][7] zatímco FreeBSD a DragonFly BSD používat modernější koncepty; například v DragonFly, Žetony LWKT lze použít místo spl.
Viz také
Reference
- ^ A b Lehey, Greg (2001), Vylepšení implementace FreeBSD SMP, vyvoláno 11. května 2018
- ^ A b C "spl (9) - stránky manuálu OpenBSD". Citováno 11. května 2018.
- ^ A b Lions, John (1976). Komentář lvů k 6. vydání systému UNIX se zdrojovým kódem. str. 43.
- ^ Lions, John (1976). Komentář lvů k 6. vydání systému UNIX se zdrojovým kódem. str. 41.
- ^ McKusick, Marshall Kirk; et al. (autoři) (2004). Návrh a implementace operačního systému FreeBSD. Addison-Wesley. str. 93.
- ^ A b „/sys/net/if.c“. Křížový odkaz BSD. OpenBSD. 2019-03-01. Citováno 2019-03-05.
s = splnet ();
- ^ A b „/sys/net/if.c“. Křížový odkaz BSD. NetBSD. 2019-03-01. Citováno 2019-03-05.
s = splnet ();
![]() | Tento Unix související článek je a pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |