2011-05-10 5 views
0

멀티 프로세싱의 개념을 고려 중이므로 준비 목록이 사용되는 모든 이유와 함께 실행되지 않는 모든 실행 가능 스레드 (실행 가능한 모든 스레드 목록이 아닌)가 포함되어 있는지 확인하려고합니다. 데이터 구조의 헤드가 실행중인 스레드입니까?실행 가능하지만 실행 중이 아닌 스레드와 달리 실행 가능한 스레드의 전체 목록을 사용하지 않는 이유는 무엇입니까?

의견을 보내 주셔서 감사합니다.

편집 : 명확하게 설명해주세요. 내가 아는 한, 스레드 패키지는 실행 준비가되어있는 프로세스를 식별하기 위해 준비 목록을 사용하며 실행중인 프로세스는 별도의 변수로 식별됩니다. 왜 그들은 준비 목록 데이터 구조에 실행중인 프로세스를 구조의 헤드에 실행중인 스레드와 함께 포함 시켜서 스레드 패키지를 모두 포함시키는 것입니까? 멀티 프로세싱은이 설계도에서 문제를 일으킬까요?

+0

빨리 닫았습니다. – bacchus

답변

2

스레드는 한 번에 하나의 프로세서 (코어)에서만 실행될 수 있기 때문에. 실행 준비가 된 스레드의 목록 (대기열, 실제로)은 실행해야하는 스레드를 찾을 때 주로 스케줄러가 사용합니다. 스레드가 이미 하나의 CPU에서 실행 중이면 동시에 다른 CPU에서 실행할 수 없으므로 스케줄러는 이 아니며은보고 싶습니다 (그 시점 - 실행 중이 지 않을 때 언젠가는 다시 실행하면 다시 걱정할 것입니다 ...)

+0

충분히 간단합니다. 당신의 생각에 감사드립니다! – Josh