2011-05-09 4 views
0

특히 디바이스 드라이버를 생성 할 때 리눅스 커널이 선점을한다는 의미는 무엇입니까? 나는 당신이 자원 잠금에 대해 더 열심히 할 필요가 있다고 생각하지만, 이것에 더 많은 것이 있습니까?리눅스 선제 적 커널 의미?

답변

0

언급 한 것처럼 경쟁 조건에는 더 많은 기회가 있습니다. 그렇습니다. 자물쇠는 매우 부지런해야합니다. 인터럽트 나 다른 하드웨어 리소스를 활성화/비활성화 할 때와 같이 타이밍에주의해야합니다. 이러한 상황에서는 항상 잠금을 사용할 필요는 없지만 코드의 순서를 변경해야 할 수도 있습니다. 마지막으로, 스케줄링에 영향을 미치므로 우선 순위가 높은 작업이 훨씬 응답 성이 좋으며, 우선 순위가 낮은 작업에 부정적인 영향을 줄 수 있습니다. 하지 SMP의 경우

0

이 잠금 패치를 적용 할 수 있는지 확인이 필요합니다 "Gaurantee spinlocks implicit barrier for !PREEMPT_COUNT", 즉이

이주의 4월 2013 년에 만들어진 그 코드가 "spin_unlock_"또는 "preemption_enable"를 실행할 때마다, 선점이 시작될 수 있습니다. 예외가 반환되거나 인터럽트가 반환 될 때마다 동일합니다. 이러한 경우와 그 외의 다른 문제는 없어야합니다. 커널 디자인은 SMP 다중 인스턴스가 병렬로 실행될 수 있지만 예외 및 인터럽트가 엄격하게 포함 된 방식으로 처리된다는 것을 보장합니다.