2017-02-16 6 views
1

운영 체제 간단한 3 조각을 읽는 동안 나는 다음과 같은 문장을 발견왜 스핀 록은 단일 CPU에서 의미가 없습니까?

"단일 프로세서에서 제대로 작동하기를,이 선제 스케줄러가 필요합니다 (즉, 타이머를 통해 스레드를 중단됩니다 하나, 선점이 없으면 하나의 CPU에서 스핀 록이 의미가 없으므로 스레드가 CPU에서 회전하면 절대로이를 포기할 수 없습니다. "

왜 단일 CPU에서 멀티 스레딩이 지원 되더라도 단일 CPU에서 스레드가 회전하지 않습니다. 이 경우 스핀 록은 단순히 CPU 자원을 낭비하기 때문입니까? CPU 코어 수가 뮤텍스 및 스핀 잠금과 같은 다양한 잠금 성능에 어떤 영향을 줍니까?

+3

* "선매없이 ..."* –

+1

오호 .. 알았어! 감사!! –

답변

2

단일 CPU의 단일 코어 CPU에서는 복수 실행 단위가 없기 때문에 한 스레드 만 일반적으로 한 번에 실행할 수있는주의 사항이 있지만 threadmulti-tasking (멀티 스레딩)을 사용할 수 있습니다. 여러 실행 단위 (하드웨어 멀티 스레딩)가 없으면 하드웨어는 저수준 운영 체제 소프트웨어가 정의한 "software multi-threading"전략을 사용하여 실행할 대상과시기를 결정합니다.

Preemption은 타이머 기반 인터럽트를 사용하여 부분적으로 구현되는 단일 경로를 따라 이러한 여러 실행 스트림을보다 능동적으로 제어하는 ​​전략입니다. 우선권의 반대 - cooperative scheduling -은보다 방대한 접근 방식을 채택하여 활성 스레드까지 남겨 놓고 완료 신호를 보냅니다. 협력 스케줄링 방식은 하나 개의 스레드 프로세스의 스레드가 이상 (이 경우) 유일한 컴퓨팅 리소스에 보유 할 수있는 결과

:

enter image description here

그러나 만약 이러한 활성 스레드 계획은 영원히 계속 활동하기위한 것이 었습니다. 그것은 본질적으로 여기서 일어나는 일입니다.

스핀 록은 요청 된 리소스를 잠 그려면 활성 대기입니다. 스레드는 다른 스레드가 리소스를 잠그기를 기다리면서 거기에 머물러 있습니다. 텍스트는 하드웨어 상황이 한 번에 하나의 활성 스레드 만 허용한다는 것을 나타내므로 요청 된 자원이 잠겨 있으면 비활성 스레드에 의해 잠겨 있음을 의미합니다.

우선 순위없이 실행을 중지 할 시점은 스레드에 달려 있습니다. 따라서 활성 스레드가 스핀 락 (spinlock)하면 영구적으로 멈춰 있습니다. 이를 막으려면 사용자가 실제로 캐시/동적 메모리를 지우는 시스템을 실제로 끄도록 강요받을 것입니다.

선점 예약 스레드는 time slices으로 구현됩니다. 추가 작업이 스레드에서 완료되기 전에 특정 리소스에 액세스하는 것이 필수적 일 때 spinlock - 바쁜 대기 시간이 중요합니다.

선점과 함께 커널은 지정된 시간이 지나면 자동으로 force context switch이됩니다. 따라서 단일 CPU가 있더라도 커널이 멈추지 않습니다. 결국 lock 리소스가있는 스레드는 시간을 가지며 리소스를 해제합니다. 스핀 록 스레드가 다음 예약 시간을 얻으면 자원을 잠그고 계속할 수 있습니다.

전반적으로 이는 중단이 적음을 의미합니다. 두 스레드가 서로의 자원을 누른 상태에서 각 spinlocked 때 그러나

, 스핀은 아직 ... 같은 교착 등의 선점 스케줄링과 더 복잡한 문제를 겪을 수 그러나

enter image description here

를, 이러한 경우는 자원 잠금 요청에 대한 커널 보호를 통해 피할 수있는 경우가 많습니다.

완벽한 세계에서 신중한 스레드 설계로 협업 일정을 계획하면 잠재적으로 중요한 프로세스를 조금 더 빠르게 실행할 수 있습니다. 따라서 Mac OS 및 Windows 3.x와 같은 마른 오래된 OS에서 일반적인 접근 방식이었습니다. 그러나 계산 요구가 증가함에 따라 협업 스케줄링의 단점을 피하기가 더 어려워졌습니다. 따라서 모든 최신 운영 체제 커널은 선점 형 스케줄러를 사용합니다.

+1

통찰력을 제공해 주셔서 감사합니다. – LWimsey

+0

도와 드리겠습니다. 만족스러운 사진을 찾기 위해 잠시 시간을 들였지만 그 특별한 것들이 토론에 좋은 시각적 인 유대를 제공한다고 생각합니다. –