코딩요
쉬운코드 기술 블로그
코딩요
전체 방문자
오늘
어제
  • 분류 전체보기 (54)
    • 개발자로 성장하기 (11)
    • 컴공 (25)
      • 운영체제 (12)
      • 알고리즘 (1)
      • 데이터베이스 (11)
      • 네트워크 (1)
    • 쉬운코드 (15)
      • 쉬운코드 소개 (6)
      • 쉬운코드 영상 보는 법 (3)
      • 쉬운코드 정정 보고서 (1)
      • 쉬운코드 스토리 (4)
      • 기타 이것저것 (1)
    • 면접 tip (3)

공지사항

  • 아이폰 앱에서는 슈퍼땡스 보내지 말아주세요ㅠㅠ
  • 쉬운코드 멤버십을 소개합니다
  • 쉬운코드 운영 철학

인기 글

hELLO · Designed By 정상우.
글쓰기 / 관리자
코딩요

쉬운코드 기술 블로그

CPU 코어에서 컨텍스트 스위칭 되는 건 프로세스일까 스레드일까
컴공/운영체제

CPU 코어에서 컨텍스트 스위칭 되는 건 프로세스일까 스레드일까

2022. 10. 5. 12:19

 

 

프로그램, 프로세스, 스레드

 

프로세스(process)는 '실행 중인' 프로그램(program)을 의미한다

 

프로세스는 최소 하나 이상의 스레드(thread)를 가진다

 

스레드는 CPU 코어에서 실행(execution) 혹은 스케줄링(scheduling)되는 기본 단위(unit)다

 

 

 

프로그램이 메모리에 올라가서 실행 중인 상태가 된 것을 프로세스라고 부르고

 

한 프로세스는 최소 하나 이상의 스레드들로 동작하게 되며,

 

이때 이 스레드들 각각이 CPU 코어에서 실행된다고 볼 수 있다

 

 

 

 

 


 

 

 

두 종류의 컨텍스트 스위칭(context switching)

 

 

컨텍스트 스위칭은 CPU 코어에서 실행 중이던 프로세스/스레드가 다른 프로세스/스레드로 바뀌는 것을 의미하며

두 종류의 컨텍스트 스위칭이 존재한다

 

 

 

1. 프로세스 컨텍스트 스위칭

 

2. 스레드 컨텍스트 스위칭

 

 

 

하지만 바로 앞에서 CPU 코어에서 실행되는 단위는 스레드라고 했다

 

그렇다면 컨텍스트 스위칭은 스레드 사이에서만 일어날 것 같은데

 

왜 프로세스 컨텍스트 스위칭이라는 용어를 쓰는 걸까?

 

 

 

 

 

 

프로세스 컨텍스트 스위칭도 실제로는 스레드 간의 스위칭이다

 

 

프로세스 컨텍스트 스위칭도 당연히 스레드 간의 컨텍스트 스위칭으로 동작한다

 

스레드 컨텍스트 스위칭과 차이가 있다면

 

프로세스 컨텍스트 스위칭은 서로 다른 프로세스에 속한 스레드 간의 컨텍스트 스위칭이 발생하는 것이다

 

 

 

 

예를 들어 

 

프로세스 A에 속한 스레드 x와 프로세스 B에 속한 스레드 z가 있을 때,

 

스레드 x와 스레드 z 사이의 컨텍스트 스위칭은

 

프로세스 컨텍스트 스위칭이라고 보는 것이다

 

 

 

만약 프로세스 A에 속한 스레드 x와 스레드 y가 컨텍스트 스위칭을 하게 되면

 

x와 y는 같은 프로세스에 속한 스레드들이기 때문에

 

이때는 스레드 컨텍스트 스위칭이라고 부르게 된다

 

 

 

 

 


 

 

 

정리하면,

 

 

실제로 컨텍스트 스위칭의 대상은 스레드지만,

 

서로 다른 프로세스에 속한 스레드들끼리 스위칭이 발생하면 이때는 프로세스 컨텍스트 스위칭이라고 부르고

 

같은 프로세스에 속한 스레드들끼리 스위칭이 발생하면 이때는 스레드 컨텍스트 스위칭이라고 부른다

 

 

 

 

 

 

쉬운코드는 본질에 충실합니다

 

 

 

🔸 기본기에 충실한 쉬운코드에서 관련 영상을 만나보세요

 

👉 프로세스 / 스레드 영상 보러 가기 

 

👉 컨텍스트 스위칭 영상 보러 가기

 

 

 

저작자표시 비영리 변경금지 (새창열림)
    '컴공/운영체제' 카테고리의 다른 글
    • 운영체제에서 락(lock)을 배우는 이유
    • 스레드 컨텍스트 스위칭이 가벼운 이유
    • 기술 면접에서 흔히 말하는 스레드는 어떤 스레드일까?
    • OS 프로세스 상태(state) 변화, 간결한 설명!
    코딩요
    코딩요
    8년차 백엔드 개발자가 이해하기 쉽게 설명합니다. 배워서 남주는 블로그! 이해하기 쉬운 기술 블로그! 쉬운코드입니다 :)

    티스토리툴바