[OS] 멀티 프로세스와 멀티 스레드 관점에서 본 Context Switching

Jay·2021년 4월 13일
0

Computer Science

목록 보기
42/50
post-thumbnail

Context Swtiching

  • 문맥교환
  • 오늘 얘를 이야기 하고자 하는 것이 아님.
  • 크게는 프로세스와 스레드가 각각 전환 시에 일어나는 현상에서 어떤 게 더 크고 작고 왜 그런지?

Context Switching 🔁 Mutli-Process

  • 문맥 전환과 함께 메모리 전환도 이루어진다.

  • Register 메모리 전환이 이루어진다.

  • Process 메모리 할당이 필요하다!

  • 새 메모리 공간의 할당은 TLB(Transtation Lookaside Buffer) 플러싱이 일어난다.
    TLB를 이용하여 가상 메모리 공간을 할당 속도를 높이는데 (물리<->가상 매핑 캐시 역할)
    TLB가 일어나면 다시 메모리를 읽고 매핑해야 한다.

  • 캐싱의 효율이 급감.
    캐싱은 메모리를 유지하여 지역성 효율(hit)을 높이는데 의미가 있다.

가상 메모리 공간이 유지되기 않기에, OS에서 메모리 입출력이 필요.
메모리 할당은 굉장히 오버헤드가 큰 작업!
결론적으로, 실행 컨텍스트, 메모리, 주소 공간 모두 전환!

Context Switching 🔁 Mutli-Thread

  • 문맥 전환만 이루어진다.
  • 메모리 전환이 없기에 할당도 필요 없다.
  • 캐싱 효율이 좋다
    공유 메모리라면 메모리 접근 시 지역성 효율이 높다.
  • 커널 스레드 간 교환, 종료 후엔 사용자 스레드 전환.

가상 메모리 공간이 유지되기에 메모리 할당이 필요없다.

profile
developer

0개의 댓글