쓰레딩 유형 중 커널레벨 쓰레드 모델에서는 경량화의 의미가있&
글쓴이: ddoman / 작성시간: 목, 2003/12/18 - 10:13오전
쓰레드를 경량화프로세스라고도 부르는거 같은데,
유저레벨 쓰레드는 context switching 비용이 없으니깐
경량화라고 부를만한거 같습니다만,
커널레벨 쓰레드 ( 1:1 )에서는 전혀 context switching 비용을 줄일수없을거
같은데, data segment를 공유한다는 점을 제외하곤 프로세스와 차이 점이있나요?
경량화라는 이름을 붙이는건 뭔가 비용이 싸다는 소리같은데
어떤 점이 그렇다는건지 이해가 안갑니다.
Forums:
Re: 쓰레딩 유형 중 커널레벨 쓰레드 모델에서는 경량화의 의미
유저레벨 스레드에도 여전히 컨텍스트 전환 비용은 듭니다. 각 스레드마다 레지스터를 따로 갖고 있어야 하니까요. 대신 커널 모드로 전환할 필요가 없으므로 모드 전환 비용이 들지 않는 것이죠. 반면 커널 스레드(1:1, M:N)는 컨텍스트+모드 전환 비용이 둘다 존재합니다.
한국 BSD 사용자 포럼
그러면 커널 스레드( 1:1 M:N )는 컨텍스트+모드 전환 비용이 존재
그러면 커널 스레드( 1:1 M:N )는 컨텍스트+모드 전환 비용이 존재한다는것은
일반 프로세스와 비교해서 전혀 '경량'하지않다는 의미입니까?
제가 궁금한건 커널 스레드( 1:1 )을 사용하면 fork된 프로세스에 비해서
'경량화' 의 의미가 있는지 궁금해서입니다.
단지 data segment 공유만 되는 차이인지, 정말로 fork된 프로세스에 비해 경량화 프로세스라 불릴만한 차이가 있는것인지..
fork에 비해 스레드 생성이 별 비용절감 효과(?) 가 없다면
동기화 처리나 재진입 처리를 해야하는 스레드보다 차라리 fork하고 소켓통신이나 다른 프로세스 통신 방법을 이용하는게 더 낫지 않을까 궁금해서요..
아..생각해보니 메모리공간은 절약되겠군요...그런의미에서 경량화인가?
경량 프로세스는 대신 일반 프로세스에 비해 메모리 컨텍스트(물리적 메모리
경량 프로세스는 대신 일반 프로세스에 비해 메모리 컨텍스트(물리적 메모리와 가상 메모리간의 매핑, TLB, 캐쉬 등등) 전환 비용이 없기 때문에 그만큼 가볍다고 할 수 있죠. 예를 들어 같은 프로세스 안에 있는 두 개의 경량 프로세스간에는 레지스터 컨텍스트는 전환이 필요하지만 메모리 컨텍스트는 전환할 필요가 없습니다. fork로 생성한 일반 프로세스간에는 전부 다 전환이 필요하구요.
한국 BSD 사용자 포럼
[quote="ddoman"]fork에 비해 스레드 생성이 별 비용절감
동기화 처리와 재진입처리는 둘다 한가지를 의미하는것 아닐까요? 글로벌 데이터의 locking...
그리고 locking은 실제로 충돌이 일어나지 않는 이상은 프로세스나 스레드의 전환이 일어나지 않습니다. 다른 프로세스 통신 방법을 이용하면 반드시 전환이 일어나죠.
댓글 달기