프로세스보다 스레드의 컨텍스트 스위칭이 더 빠른 이유는 무엇인가요?

2025. 1. 15. 09:26·백엔드 면접

같은 프로세스에 속한 스레드들 간에 컨텍스트 스위칭은 같은 프로세스에 속하기 때문에 메모리 영역을 공유합니다. 그래서 스위칭이 발생해도 메모리와 관련한 추가적인 작업이 발생하지 않습니다.

 

하지만 다른 프로세스에 속한 스레드들 간에 컨텍스트 스위칭의 경우 프로세스 간에 메모리 추소 체계가 다르기 때문에 메모리 주소 관련 처리를 추가적으로 수행해야 합니다. MMU가 새로운 프로세스의 주소 체계를 바라보도록 수정하고, TLB라는 페이지 테이블의 캐시 메모리를 비워줘야 합니다. 만약 TLB 캐시를 비워주지 않는 경우 이전에 작업했던 프로세스의 주소에 접근할 가능성이 있기 때문에 반드시 수행해야 합니다.

 

또한 프로세스 컨텍스트 스위칭이 일어날 경우, 다른 프로세스의 실행으로 인해 CPU가 새로운 명령어와 데이터를 로드해야 하기 때문에 CPU 캐시 메모리를 초기화해야 합니다. 반면 스레드 컨텍스트 스위칭의 경우, 프로세스 내 스레드 간에 스택과 레지스터 값 등 일부 컨텍스트 정보만 변경하면 되므로 CPU 캐시 메모리는 초기화되지 않습니다.

'백엔드 면접' 카테고리의 다른 글

관계형 DB와 비 관계형 DB의 차이점은 무엇인가요?  (0) 2025.01.17
HTTP/1.1과 HTTP/2.0에 대해서 설명해 주세요.  (0) 2025.01.16
스케일 아웃과 스케일 업의 차이점을 설명해 주세요.  (0) 2025.01.14
ACID에 대해서 설명해 주세요.  (0) 2025.01.13
REST란 무엇인가요?  (0) 2025.01.10
'백엔드 면접' 카테고리의 다른 글
  • 관계형 DB와 비 관계형 DB의 차이점은 무엇인가요?
  • HTTP/1.1과 HTTP/2.0에 대해서 설명해 주세요.
  • 스케일 아웃과 스케일 업의 차이점을 설명해 주세요.
  • ACID에 대해서 설명해 주세요.
이런개발
이런개발
geun-00의 흔적 보관소
  • 이런개발
    내일이 기대되는 오늘
    이런개발
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 백엔드 면접
      • SQL N
        • SUM, MAX, MIN
        • SELECT
        • GROUP BY
        • JOIN
      • Spring
      • JPA
      • 트러블슈팅
      • Infra
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스프링
    데브코스
    JPA
    토스 페이먼츠
    티스토리챌린지
    raid
    오블완
    백엔드 면접
    자바
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
이런개발
프로세스보다 스레드의 컨텍스트 스위칭이 더 빠른 이유는 무엇인가요?
상단으로

티스토리툴바