스플릿(유닉스)

spl (Unix)

spl(Set priority level, 동일한 이름의[1] PDP-11 assembler 명령 후)은 인터럽트 우선 순위 수준을 변경하는 데 사용되는 Unix 커널 루틴 또는 매크로 모음의 이름이다.[2][3]이것은 역사적으로 중단되어서는 안 되는 커널 코드의 중요한 부분을 동기화하는데 필요했다.[4]대칭 멀티프로세싱을 지원하는 새로운 유닉스 변종들은 현재 이러한 용도로 대부분 뮤텍스를 사용하고 있는데, 이는 보다 일반적인 솔루션이기 때문에 여러 프로세서가 커널 코드를 동시에 실행할 수 있다.[5][1]

이전 버전의 PDP-11 Unix에는 다음과 같은 8가지 루틴이 있었다.spl0spl7, 각각 1개의 PDP-11 인터럽트 우선 순위 수준에 해당하며,[3]splx이전 우선 순위 수준을 복원한다(다른 루틴 중 하나에 의해 변경됨).[2]BSD Unix 및 그 파생상품에서는 이를 다음과 같이 부른다.splhigh,splserial,splsched,splclock,splstatclock,splvm,spltty,splsofttty,splnet,splbio,splsoftnet,splsoftclock,spllowersoftclock,spl0그리고splx.[2]

2019년 3월 현재, 원시성의 스플 계열은 여전히 OpenBSD[6] NetBSD에서 많이 사용되고 있으며,[7] 이는 많은 통화로 입증된다.splnet()네트워킹 코드 내에서,[6][7] FreeBSDDragonFly BSD는 더 현대적인 개념을 사용하는 반면에, 예를 들어 DragonFly에서는, LWKT 토큰이 스플 대신 사용될 수 있다.

참고 항목

참조

  1. ^ a b Lehey, Greg (2001), Improving the FreeBSD SMP implementation, retrieved 11 May 2018
  2. ^ a b c "spl(9) - OpenBSD manual pages". Retrieved 11 May 2018.
  3. ^ a b Lions, John (1976). Lions' Commentary on UNIX 6th Edition, with Source Code. p. 43.
  4. ^ Lions, John (1976). Lions' Commentary on UNIX 6th Edition, with Source Code. p. 41.
  5. ^ McKusick, Marshall Kirk; et al. (authors) (2004). The Design and Implementation of the FreeBSD Operating System. Addison-Wesley. p. 93.
  6. ^ a b "/sys/net/if.c". BSD Cross Reference. OpenBSD. 2019-03-01. Retrieved 2019-03-05. s = splnet();
  7. ^ a b "/sys/net/if.c". BSD Cross Reference. NetBSD. 2019-03-01. Retrieved 2019-03-05. s = splnet();