본문 바로가기
영상 후기/운영체제

영상 후기 - 컨텍스트 스위칭 뽀개기! 의미와 종류와 왜 스레드 컨텍스트 스위칭이 더 빠르다고 하는지까지..! 이 모든 것을 시원~~하게 설명합니다!!

by 올리브영 2023. 4. 7.
728x90
반응형

movie

컨텍스트 스위칭

  • CPU/코어에서 실행중이던 프로세스/스레드가 다른 프로세스/스레드로 교체되는 것

컨텍스트란 무엇인가?

  • 프로세스/스레드 상태   CPU, 메모리 등등

컨텍스트 스위칭은 왜 필요한가?

  • 여러 프로세스/스레드를 동시에 실행시키기 위해서

컨텍스트 스위칭은 언제 발생하는가?

  • 주어진 time slice를 다 사용했거나 IO작업을 해야하거나 다른 리소스를 기다려야 하거나

 

예제)멀티태스킹 시스템에서 컨텍스트 스위칭

  • 프로세스 두개 P1, P2에 CPU 한개가 있다.
  • 타임슬라이스를 짧게해서 P1, P2가 돌아가면서 실행됨.
  • 그래서 동시에 실행되는 것처럼 느껴짐.

 

컨텍스트 스위칭은 누구에 의해 실행되는가?

  • OS 커널(kernel) - 각종 리소스를 관리/감독하는 역할

컨텍스트 스위칭은 구체적으로 어떤 과정으로 일어나는가?

  • 다른 프로세스끼리 스위칭(프로세스 컨텍스트 스위칭)인지 같은 프로세스의 스레드들끼리 스위칭(스레드 컨텍스트 스위칭)인지에 따라 다르다.

프로세스 컨텍스트 스위칭과 스레드 컨텍스트 스위칭의 공통점은 무엇인가?

  • 커널 모드에서 실행(컨텍스트 스위칭은 통제권이 커널에게 넘어감)
  • CPU의 레지스터 상태를 교체
    • 교체된 프로세스의 상태를 저장해 두었다가 다시 그 프로세스가 실행될때 저장해둔 상태에서 실행

프로세스 컨텍스트 스위칭과 스레드 컨텍스트 스위칭의 차이점은 무엇인가?

  • 같은 프로세스에 속하는 스레드들의 컨텍스트 스위칭은 같은 프로세스에 속하기 때문에 그 메모리 영역에서 공유하지만, 다른 프로세스들끼리의 컨텍스트 스위칭은 메모리 주소체계가 달라서 가상메모리 주소 관련 처리를 추가로 수행.
  • 서로 다른 프로세스는 서로 다른 독립적인 메모리 영역을 가지고 있다.

스레드 컨텍스트 스위칭이 더 빠른 이유는?

  • 메모리 주소 관련 처리는 하지 않기 때문(같은 메모리 공간을 공유하기 때문에)

컨텍스트 스위칭이 미치는 간접적인 영향은?

  • 캐시 오염
    • CPU안에는 기본적으로 Cache가 있다. Cache는 메모리에서 데이터를 주고받을 때 자주 메모리에 접근하는 데이터를 Cache에 올려놓아서 메모리에 가는대신에 Cache의 정보를 사용하는 것이다. 그러면 메모리까지 가지 않아도 CPU와 붙어있는 캐시의 정보를 읽으면 되니까 좀 더 빠르다.
    • 문제는 컨텍스트 스위칭이 되면 캐시에 가봤자 이전의 프로세스 or 스레드에서 실행되었던 정보들이 두고 있어서 내가 필요로 하는 정보가 없을 가능성이 더 크다. 그나마 같은 프로세스의 컨텍스트 스위칭의 경우에는 캐시에 내가 찾는 데이터가 있을 수 있다. 
728x90
반응형