어떤 경우때문에 그런기능이 필요하신건지 궁금하네요.
말씀해 주실 수 있는거면 간단한 답글 부탁드립니다.
그리고 같은 프로세스를 동일한 프로세스에서 구동하는게 효율적이라고 들었습니다. (context switching 에 따른 1차, 2차 캐쉬 때문에 그런게 아닌가 하고 짐작하고 있습니다.)
그래서 리눅스 커널은 (다른 커널도 다 그럴것 같네요) 그런 효율성을 고려해서 프로세서를 선택한다고 하더군여.
커널 차원에서 최적화가 되 있는 듯 하니 신경쓰지 않으셔도 될 듯 한데요.
SMP(대칭형 다중 처리)방식에서는 임의의 CPU에 작업을
할당할 수 없는 것으로 알고 있습니다.
어느 프로세서에게 프로세스를 할당할지는 오로지 커널이 결정할 일입니다.
(쓰레드의 스케쥴링 문제와 비슷한듯 싶네요.)
하지만 비대칭형 다중처리방식을 쓰는 커널이라면 가능할지도 모르겠습니다.
(비대칭형 다중처리에서는 여러 CPU중 한개의 CPU가 스케쥴링과 CPU할당을
책임집니다. SunOS였나? 에서는 비대칭 다중처리를 지원하는 것으로 알고 있습니다.)
priority를 높이면 당장은 그렇게 될 수도 있겠지만
만약 프로세스가 blocking(여러 이유로)되었다가 다시 실행 되었을때
예전에 실행되던 CPU 또는 원하는 CPU에 할당 된다는 보장을 할 수 없습니다.
또한 한 프로세스에 아주 높은 priority를 주는 것 역시 좋은
운영방법은 아닌듯 싶군요.
커널에서 처리해 주는 방법밖에는 없지 않을까요?
임의로 프로세서를 선택하는게 포퍼먼스에서 의미가 있나요?어떤 경우
임의로 프로세서를 선택하는게 포퍼먼스에서 의미가 있나요?
어떤 경우때문에 그런기능이 필요하신건지 궁금하네요.
말씀해 주실 수 있는거면 간단한 답글 부탁드립니다.
그리고 같은 프로세스를 동일한 프로세스에서 구동하는게 효율적이라고 들었습니다. (context switching 에 따른 1차, 2차 캐쉬 때문에 그런게 아닌가 하고 짐작하고 있습니다.)
그래서 리눅스 커널은 (다른 커널도 다 그럴것 같네요) 그런 효율성을 고려해서 프로세서를 선택한다고 하더군여.
커널 차원에서 최적화가 되 있는 듯 하니 신경쓰지 않으셔도 될 듯 한데요.
SMP(대칭형 다중 처리)방식에서는 임의의 CPU에 작업을 할당할 수
SMP(대칭형 다중 처리)방식에서는 임의의 CPU에 작업을
할당할 수 없는 것으로 알고 있습니다.
어느 프로세서에게 프로세스를 할당할지는 오로지 커널이 결정할 일입니다.
(쓰레드의 스케쥴링 문제와 비슷한듯 싶네요.)
하지만 비대칭형 다중처리방식을 쓰는 커널이라면 가능할지도 모르겠습니다.
(비대칭형 다중처리에서는 여러 CPU중 한개의 CPU가 스케쥴링과 CPU할당을
책임집니다. SunOS였나? 에서는 비대칭 다중처리를 지원하는 것으로 알고 있습니다.)
priority를 최대로 높히세요. nice로 조정하시거나... 그렇게되
priority를 최대로 높히세요. nice로 조정하시거나... 그렇게되면 thread가 1개라면 그 thread(or process)가 한개의 cpu를 점유하고는 놓질 않을껍니다.
priority를 rt까지 높혀보시길...
priority를 높이면 당장은 그렇게 될 수도 있겠지만만약 프로세스
priority를 높이면 당장은 그렇게 될 수도 있겠지만
만약 프로세스가 blocking(여러 이유로)되었다가 다시 실행 되었을때
예전에 실행되던 CPU 또는 원하는 CPU에 할당 된다는 보장을 할 수 없습니다.
또한 한 프로세스에 아주 높은 priority를 주는 것 역시 좋은
운영방법은 아닌듯 싶군요.
커널에서 처리해 주는 방법밖에는 없지 않을까요?
댓글 달기