TIL

컨텍스트 스위칭

컨텍스트

컨텍스트 스위칭 발생 시점

  1. 주어진 time slice(quantum)를 다 사용
  2. I/O 작업을 해야할 때
  3. 다른 리소스를 기다려야 할 때

OS 커널(kernel)

컴퓨터 과학에서 커널은 컴퓨터 운영 체제의 핵심이 되는 컴퓨터 프로그램으로, 시스템의 모든 것을 완전히 통제한다. 참고 - 위키

PCB (Process Control Block)

컨텍스트 스위칭 과정

  1. 현재 실행 중인 프로세스 혹은 스레드의 context 백업 (PCB)
  2. CPU 캐시를 비움
    1. CPU마다 L1, L2 캐시 동작이 다를 수도 있고 안 비울 수도 있다.
  3. TLB를 비움
  4. MMU를 변경
    • 프로세스 컨텍스트 스위칭은 위 4가지 과정을 모두 수행하지만 스레드 컨텍스트 스위칭은 1번만 수행한다.

프로세스 간, 스레드 간 컨텍스트 스위칭 공통점

  1. 커널 모드에서 실행
    1. 통제권이 커널에게 넘어감
  2. CPU의 레지스터 상태를 교체
    1. 레지스터는 각종 명령어들을 실행하기 위해 필요한 데이터를 저장하고 있음

스레드 컨텍스트 스위칭

프로세스 컨텍스트 스위칭

MMU(Memory Management Unit) 런타임 중에 가상 주소를 물리적 주소를 매핑하는 하드웨어 디바이스이다. 사용자 프로그램은 논리적 주소를 다루고 물리적 주소를 신경 쓰지 않는다.

TLB(Translation Lookaside Buffer) 가상 메모리 주소를 물리적인 주소로 변환하는 속도를 높이기 위해 사용되는 캐시

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

캐시 오염


Operating System Concepts - Tenth Edition

https://www.youtube.com/watch?v=Xh9Nt7y07FE

https://blog.naver.com/PostView.naver?blogId=kgr2626&logNo=222147205118&redirect=Dlog&widgetTypeCall=true&directAccess=false

https://yoongrammer.tistory.com/52