Context Switching

Context Switching 은 운영 체제에서 매우 중요한 개념으로, 여러 프로세스나 스레드가 단일 CPU 자원을 공유하여 효율적으로 실행될 수 있게 하는 메커니즘이다.

Context Switching 은 CPU 가 현재 실행 중인 프로세스나 스레드의 상태를 저장하고, 다른 프로세스나 스레드의 상태를 불러와 실행을 재개하는 과정을 말한다.
이를 통해 여러 작업이 동시에 실행되는 것처럼 보이게 된다.

Context Switching
Source: https://www.geeksforgeeks.org/context-switch-in-operating-system/

Context Switching 의 필요성

  1. 멀티태스킹: 여러 프로세스가 동시에 실행되는 것처럼 보이게 하여 시스템 효율성을 높인다.
  2. 인터럽트 처리: 하드웨어 인터럽트나 시스템 호출 등에 신속하게 대응할 수 있다.
  3. 자원 공유: 단일 CPU 로 여러 프로세스를 실행할 수 있게 한다.

Context Switching 의 과정

  1. 현재 실행 중인 프로세스의 상태 저장: CPU 레지스터, 프로그램 카운터 등의 정보를 PCB(Process Control Block) 에 저장한다.
  2. 새로운 프로세스 선택: 스케줄러가 다음에 실행할 프로세스를 선택한다.
  3. 새 프로세스의 상태 복원: 선택된 프로세스의 PCB 에서 상태 정보를 불러와 CPU 레지스터에 복원한다.
  4. 실행 재개: 새 프로세스의 실행을 시작한다.

Context Switching 의 트리거

  1. 인터럽트: 하드웨어나 소프트웨어에서 발생하는 인터럽트.
  2. 시간 할당 종료: 프로세스에 할당된 CPU 시간이 끝났을 때.
  3. I/O 요청: 프로세스가 I/O 작업을 요청하여 대기 상태로 전환될 때.
  4. 우선순위: 더 높은 우선순위의 프로세스가 실행 준비될 때.

Context Switching 의 구현 방식

  1. 하드웨어 스위칭: 프로세서 코어에 내장된 태스크 상태 세그먼트 (TSS) 를 사용한다.
  2. 소프트웨어 스위칭: 운영 체제의 커널 루틴과 데이터 구조를 사용하여 구현한다. 더 빠르고 일관성 있는 방식이다.

Context Switching 의 장단점

장점:

  • 멀티태스킹 지원: 여러 프로세스를 동시에 실행하는 것처럼 보이게 한다.
  • 자원 활용 최적화: CPU 사용을 최적화하여 시스템 효율성을 높인다.

단점:

  • 오버헤드: Context Switching 자체가 CPU 시간을 소모한다.
  • 캐시 미스: 프로세스 전환 시 캐시 데이터가 무효화될 수 있다.
  • 지연 시간: 빈번한 Context Switching 은 전체적인 시스템 성능을 저하시킬 수 있다.

Context Switching 최적화

  1. 프로세스 우선순위 조정: 중요한 프로세스에 더 높은 우선순위 부여.
  2. 스레드 사용: 프로세스 내 스레드 사용으로 Context Switching 비용 감소.
  3. 인터럽트 처리 최적화: 효율적인 인터럽트 처리로 불필요한 Context Switching 감소.
  4. 캐시 최적화: 캐시 친화적인 데이터 구조와 알고리즘 사용.

참고 및 출처

1. 주제의 분류 적절성

“Context Switching(컨텍스트 스위칭)” 은 “Computer Science and Engineering > Computer Science Fundamentals > Operating System > Process Management > Processes” 의 하위 주제로 분류하는 것이 적합하다. 컨텍스트 스위칭은 프로세스 관리의 핵심 개념이며, 프로세스 및 스레드 전환, 멀티태스킹, 스케줄링 등과 밀접하게 연관된다 [1][4][5][6].


2. 200 자 내외 요약

컨텍스트 스위칭은 CPU 가 실행 중인 프로세스나 스레드의 상태를 저장하고, 다른 프로세스나 스레드의 상태를 복원하여 실행을 전환하는 작업이다. 멀티태스킹 운영체제의 필수 기능으로, 효율적인 자원 분배와 동시성 제공에 기여하지만, 빈번한 전환은 오버헤드를 유발할 수 있다 [1][5][6][9].


3. 250 자 내외 개요

컨텍스트 스위칭은 운영체제가 CPU 자원을 여러 프로세스나 스레드에 효율적으로 분배하기 위해 현재 실행 중인 작업의 상태 (레지스터, 프로그램 카운터 등) 를 PCB(Process Control Block) 에 저장하고, 다음 실행할 작업의 상태를 복원하는 과정이다. 이 과정은 멀티태스킹, 인터럽트 처리, 사용자/커널 모드 전환 등 다양한 상황에서 발생한다. 컨텍스트 스위칭은 시스템의 응답성과 공정성을 보장하지만, 전환 시 오버헤드 발생으로 성능 저하 요인이 될 수 있다 [1][4][5][6][9].


핵심 개념

  • 컨텍스트 (Context): CPU 가 특정 프로세스 또는 스레드를 실행하는 데 필요한 모든 정보 (레지스터 값, 프로그램 카운터, 스택 포인터 등)[1][6][9].
  • 컨텍스트 스위칭 (Context Switching): 현재 실행 중인 프로세스/스레드의 상태를 PCB 에 저장하고, 다음 실행할 프로세스/스레드의 상태를 복원하여 CPU 실행을 전환하는 작업 [1][4][5][6][9].
  • PCB(Process Control Block, 프로세스 제어 블록): 각 프로세스의 상태 정보를 저장하는 자료구조로, 컨텍스트 스위칭 시 상태 저장/복원에 사용 [6][9][26].
  • 스케줄러 (Scheduler): 어떤 프로세스가 CPU 를 사용할지 결정하고, 컨텍스트 스위칭을 주도 [1][6][9].

주요 내용 정리

배경

  • CPU 는 한 번에 하나의 프로세스/스레드만 실행 가능.
  • 여러 작업을 동시에 처리하는 것처럼 보이게 하려면 빠른 전환이 필요 [1][6][9].

목적 및 필요성

  • 멀티태스킹, 동시성 제공, 자원 분배의 효율성 확보.
  • 시스템 응답성 및 공정성 보장 [1][4][5][6][9].

주요 기능 및 역할

  • 실행 중인 작업의 상태 저장 및 복원.
  • 프로세스/스레드 간 전환, 인터럽트 처리, 커널/사용자 모드 전환 지원 [1][5][6][9].

특징

  • 커널 모드에서 실행.
  • PCB 에 상태 정보 저장.
  • 오버헤드 발생 (전환 중 CPU 가 실질적 작업을 하지 못함)[6][9][27].

핵심 원칙

  • 상태 저장 (saving) 과 복원 (restoring) 의 정확성.
  • 신속한 전환으로 오버헤드 최소화 [1][6][9].

주요 원리 및 작동 원리

  1. 현재 프로세스의 상태 (레지스터, PC 등) 를 PCB 에 저장.
  2. 다음 실행할 프로세스의 PCB 에서 상태를 읽어 CPU 에 복원.
  3. 스케줄러가 전환을 관리 [1][6][9][26].

다이어그램

1
2
3
4
5
6
7
[Process A 실행]
   |
   |--(인터럽트/스케줄러)-->
   |   [A의 상태 PCB에 저장]
   |   [B의 상태 PCB에서 복원]
   v
[Process B 실행]

구조 및 아키텍처

필수 구성요소

구성요소기능 및 역할
PCB프로세스 상태, 레지스터, PC, 스택 포인터 등 저장
CPU 레지스터프로그램 실행에 필요한 데이터 저장
스케줄러실행할 프로세스/스레드 결정

선택 구성요소

구성요소기능 및 역할
TCB(Thread Control Block)스레드 상태 저장 (스레드 컨텍스트 스위칭 시)
MMU, TLB프로세스 간 전환 시 메모리 주소 변환, 캐시 관리

구조 다이어그램

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
+-------------------------+
|        Scheduler        |
+-----------+-------------+
            |
            v
+-----------+-------------+
|           CPU           |
+-----------+-------------+
   ^                      ^
   |                      |
+--+--+               +---+--+
| PCB |               | TCB  |
+-----+               +------+

원인, 영향, 탐지 및 진단, 예방 및 해결 방법

  • 원인: 멀티태스킹, 인터럽트, 타임 슬라이스 만료, I/O 요청 등 [1][5][6][9].
  • 영향: 오버헤드 증가, 캐시 오염, 성능 저하 [6][27][28].
  • 탐지 및 진단: 시스템 모니터링, CPU 사용률, 컨텍스트 스위칭 횟수 분석.
  • 예방 및 해결: 불필요한 컨텍스트 스위칭 최소화, 스레드 사용 최적화, 적절한 스케줄링 알고리즘 적용 [27][38].

구현 기법

구현 기법정의/구성목적/실제 예시
PCB 기반 스위칭PCB 에 상태 저장/복원전통적 프로세스 전환, UNIX/LINUX 커널
TCB 기반 스위칭TCB 에 스레드 상태 저장/복원경량 스레드 전환, Java, POSIX Threads
하드웨어 지원일부 레지스터 자동 저장/복원ARM, x86 등 하드웨어 컨텍스트 스위칭 지원

장점과 단점

구분항목설명
✅ 장점동시성 제공여러 작업이 동시에 진행되는 것처럼 보임
자원 활용CPU 등 시스템 자원의 효율적 분배 가능
반응성사용자/시스템 요청에 빠른 응답 가능
⚠ 단점오버헤드상태 저장/복원 시 CPU 가 일시적으로 작업 불가
캐시 오염캐시 초기화로 인한 성능 저하 발생
복잡성스케줄링 및 상태 관리 복잡성 증가

도전 과제 및 해결책

  • 오버헤드 최소화: 스레드 기반 처리, 컨텍스트 스위칭 빈도 조절, 하드웨어 지원 활용 [27][38].
  • 캐시 오염 방지: 프로세스 수 최적화, 캐시 친화적 작업 분배.
  • 스케줄링 효율화: 우선순위 기반, 적응형 스케줄러 도입.

분류에 따른 종류 및 유형

분류 기준종류/유형설명
대상프로세스, 스레드프로세스 간/스레드 간 전환
트리거멀티태스킹, 인터럽트, 모드 전환다양한 상황에서 발생
구현 수준소프트웨어, 하드웨어OS/커널 기반, 하드웨어 지원 기반

실무 적용 예시

적용 분야예시설명
웹 서버워커 프로세스/스레드 전환요청 처리 중 컨텍스트 스위칭 반복
데이터베이스트랜잭션 처리동시성 확보를 위한 프로세스/스레드 전환
모바일 OS앱 간 전환사용자 앱/시스템 프로세스 간 전환

활용 사례

시나리오: 웹 서버의 워커 프로세스 관리

  • 시스템 구성: 요청 큐, 워커 프로세스, 스케줄러, PCB

  • 다이어그램

    1
    2
    3
    4
    5
    6
    7
    
    [Request Queue] --> [Scheduler] --> [Worker Process A]
                                               |
                                               v
                                    [Context Switch]
                                               |
                                               v
                                    [Worker Process B]
    
  • 워크플로우

    1. 클라이언트 요청 도착
    2. 스케줄러가 워커 프로세스 선택
    3. 현재 워커 상태 PCB 에 저장, 다음 워커 PCB 에서 상태 복원
    4. 요청 처리 후 반복
  • 역할: 스케줄러 (전환 관리), PCB(상태 저장/복원), 워커 프로세스 (실제 작업)


실무에서 효과적으로 적용하기 위한 고려사항 및 주의할 점

항목설명권장사항
오버헤드 관리빈번한 전환 시 성능 저하스레드/프로세스 수 최적화
캐시 활용캐시 오염 방지연관 작업 묶기, 캐시 친화적 설계
스케줄링효율적 자원 분배우선순위/적응형 스케줄러 사용
모니터링전환 횟수 및 성능 분석시스템 모니터링 도구 활용

최적화하기 위한 고려사항 및 주의할 점

항목설명권장사항
스위칭 빈도전환이 잦으면 오버헤드 증가불필요한 컨텍스트 스위칭 최소화
스레드/프로세스 수과도한 수는 성능 저하 유발적정 수 유지, 풀 (pool) 관리
하드웨어 지원일부 CPU 는 컨텍스트 스위칭 가속하드웨어 특성 활용
캐시 최적화캐시 오염 최소화연관 작업 묶기, 데이터 지역성 활용

2025 년 기준 최신 동향

주제항목설명
컨텍스트 스위칭하드웨어 가속CPU/SoC 에서 컨텍스트 스위칭 오버헤드 최소화 기술 발전
컨텍스트 스위칭경량 스레드사용자 수준 경량 스레드 (그린스레드) 활용 증가
컨텍스트 스위칭분산 시스템마이크로서비스, 컨테이너 환경에서의 효율적 스위칭 연구
컨텍스트 스위칭자동화 모니터링전환 오버헤드 자동 분석/최적화 도구 발전

주제와 관련하여 주목할 내용

주제항목설명
컨텍스트 스위칭캐시 친화적 스케줄링캐시 오염 최소화를 위한 스케줄링 기법
컨텍스트 스위칭하이브리드 스레딩커널/사용자 수준 스레드 혼합 운영
컨텍스트 스위칭실시간 OS실시간성 보장을 위한 전환 최적화 기술

앞으로의 전망

주제항목설명
컨텍스트 스위칭오버헤드 자동화 관리AI/ML 기반 오버헤드 예측 및 최적화
컨텍스트 스위칭하드웨어 - 소프트웨어 통합CPU/OS 협력 기반 전환 가속화
컨텍스트 스위칭대규모 분산 환경컨테이너, 서버리스 등에서의 효율적 스위칭 필요성 증가

하위 주제 및 추가 학습 필요 내용

간략 설명카테고리주제
스레드 컨텍스트 스위칭프로세스 관리스레드와 프로세스 전환 차이
스케줄링 알고리즘운영체제선점형/비선점형, 라운드로빈 등
캐시/메모리 관리하드웨어TLB, MMU, 캐시 오염 관리
오버헤드 분석성능 최적화스위칭 비용 측정 및 최적화

추가로 알아야 할 내용 및 관련 분야

간략 설명카테고리주제
멀티코어 환경하드웨어코어 간 컨텍스트 스위칭
경량 스레드소프트웨어 아키텍처사용자 수준 스레드 관리
분산 시스템클라우드/컨테이너컨테이너/마이크로서비스 스케줄링
실시간 시스템임베디드실시간 컨텍스트 스위칭 최적화

용어 정리

용어설명
PCB(Process Control Block)프로세스 상태, 레지스터, PC 등 저장하는 자료구조
TCB(Thread Control Block)스레드 상태 정보를 저장하는 자료구조
스케줄러 (Scheduler)실행 프로세스/스레드 결정하는 운영체제 모듈
오버헤드 (Overhead)작업 전환 등 부가적으로 소모되는 자원 및 시간

참고 및 출처

1. 주제의 분류 검토

요청하신 분류인 “Computer Science and Engineering > Computer Science Fundamentals > Operating System > Process Management > Processes” 는 Context Switching의 개념을 정확하게 포괄합니다. 이는 운영체제의 핵심 기능 중 하나로, 프로세스 관리 및 스케줄링과 밀접한 관련이 있습니다.


2. 주제 요약 (200 자 내외)

Context Switching은 운영체제가 하나의 CPU 에서 여러 프로세스를 실행하기 위해 현재 실행 중인 프로세스의 상태를 저장하고, 다른 프로세스의 상태를 복원하여 실행을 전환하는 과정입니다.


3. 전체 개요 (250 자 내외)

Context Switching은 단일 CPU 에서 다중 프로세스를 효율적으로 실행하기 위한 운영체제의 핵심 기능입니다. 이 과정은 현재 실행 중인 프로세스의 상태를 저장하고, 대기 중인 다른 프로세스의 상태를 복원하여 실행을 전환함으로써 멀티태스킹을 가능하게 합니다. 이러한 기능은 시스템 자원의 효율적인 활용과 응답성 향상에 기여하지만, 빈번한 전환은 오버헤드를 증가시켜 성능 저하를 초래할 수 있습니다.(위키백과, LambdaTest)


4. 핵심 개념

  • 정의: Context Switching 은 운영체제가 현재 실행 중인 프로세스의 상태를 저장하고, 다른 프로세스의 상태를 복원하여 CPU 의 제어를 전환하는 과정입니다.

  • 필요성: 단일 CPU 에서 여러 프로세스를 실행하기 위해 필수적인 기능으로, 멀티태스킹과 효율적인 자원 관리를 가능하게 합니다.

  • 구성 요소:

    • 프로세스 제어 블록 (PCB): 프로세스의 상태 정보를 저장하는 데이터 구조로, 프로그램 카운터, 레지스터, 메모리 관리 정보 등을 포함합니다.

    • CPU 레지스터: 현재 프로세스의 실행 상태를 저장하는 레지스터 집합입니다.

    • 스택 포인터: 프로세스의 호출 스택의 현재 위치를 가리키는 포인터입니다.(Medium)

  • 작동 원리:

    1. 현재 프로세스의 상태를 PCB 에 저장합니다.

    2. 다음 실행할 프로세스의 PCB 에서 상태를 복원합니다.

    3. CPU 는 복원된 상태로 프로세스의 실행을 재개합니다.


5. 주제에 대한 조사 내용

5.1 배경 및 목적

  • 배경: 초기의 단일 작업 시스템에서 다중 작업을 지원하기 위한 필요성으로 Context Switching 이 도입되었습니다.

  • 목적: CPU 자원의 효율적인 활용과 멀티태스킹을 지원하여 시스템의 응답성과 처리량을 향상시키는 것입니다.

5.2 주요 기능 및 역할

  • 멀티태스킹 지원

  • 프로세스 간 자원 공유

  • 시스템 응답성 향상

  • 우선순위 기반 스케줄링 지원

5.3 특징

  • 오버헤드 발생: 상태 저장 및 복원 과정에서 시스템 자원이 소모됩니다.

  • 캐시 미스: 전환 시 CPU 캐시가 무효화되어 성능 저하를 초래할 수 있습니다.

  • 스레드 전환의 효율성: 스레드는 동일한 메모리 공간을 공유하므로, 프로세스 전환보다 오버헤드가 적습니다.

5.4 핵심 원칙

  • 선점형 스케줄링: 운영체제가 프로세스의 실행을 강제로 중단하고 다른 프로세스를 실행할 수 있습니다.

  • 우선순위 기반 전환: 우선순위가 높은 프로세스가 실행 중인 프로세스를 선점할 수 있습니다.

5.5 주요 원리 및 작동 원리

Context Switching 과정 다이어그램:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[현재 프로세스 실행 중]
        |
        v
[상태 저장 (PCB에 저장)]
        |
        v
[다음 프로세스의 상태 복원 (PCB에서 복원)]
        |
        v
[다음 프로세스 실행 시작]

5.6 구조 및 아키텍처

  • 필수 구성 요소:

    • 프로세스 제어 블록 (PCB): 프로세스의 상태 정보를 저장합니다.

    • CPU 레지스터: 프로세스의 실행 상태를 저장합니다.

    • 스택 포인터: 프로세스의 호출 스택 위치를 가리킵니다.(위키백과)

  • 선택 구성 요소:

    • 메모리 관리 정보: 페이지 테이블, 세그먼트 테이블 등

    • I/O 상태 정보: 입출력 장치의 상태 정보 (위키백과)

구조 다이어그램:

1
2
3
4
5
6
7
8
9
+------------------+
|  프로세스 제어 블록 (PCB)  |
+------------------+
|  - 프로그램 카운터       |
|  - 레지스터 상태         |
|  - 스택 포인터           |
|  - 메모리 관리 정보      |
|  - I/O 상태 정보         |
+------------------+

5.7 원인, 영향, 탐지 및 진단, 예방 방법, 해결 방법 및 기법

  • 원인:

    • 프로세스의 종료 또는 대기 상태 진입

    • 우선순위가 높은 프로세스의 도착

    • 시스템 콜 또는 인터럽트 발생

  • 영향:

    • 시스템 오버헤드 증가

    • 캐시 미스로 인한 성능 저하

  • 탐지 및 진단:

    • 시스템 모니터링 도구를 활용한 컨텍스트 스위치 횟수 분석
  • 예방 방법:

    • 프로세스 우선순위 조정

    • 타임 슬라이스 조정

  • 해결 방법 및 기법:

    • 스레드 기반 프로그래밍으로 전환

    • 컨텍스트 스위치 최소화를 위한 스케줄링 알고리즘 적용

5.8 구현 기법

  • 선점형 스케줄링: 운영체제가 프로세스의 실행을 강제로 중단하고 다른 프로세스를 실행합니다.

  • 비선점형 스케줄링: 프로세스가 자발적으로 CPU 를 반환할 때까지 실행을 계속합니다.

  • 라운드 로빈 스케줄링: 각 프로세스에 동일한 시간 할당량을 부여하여 순환적으로 실행합니다.

5.9 장점과 단점

구분항목설명
✅ 장점멀티태스킹 지원단일 CPU 에서 여러 프로세스를 동시에 실행할 수 있습니다.
자원 활용 효율성CPU 자원을 효율적으로 활용하여 시스템 성능을 향상시킵니다.
⚠ 단점오버헤드 발생상태 저장 및 복원 과정에서 시스템 자원이 소모됩니다.
캐시 미스전환 시 CPU 캐시가 무효화되어 성능 저하를 초래할 수 있습니다.

5.10 도전 과제

  • 과제: 컨텍스트 스위치로 인한 오버헤드 최소화

  • 해결책: 스레드 기반 프로그래밍 도입 및 효율적인 스케줄링 알고리즘 적용

5.11 분류에 따른 종류 및 유형

분류 기준유형설명
스케줄링 방식선점형운영체제가 프로세스의 실행을 강제로 중단하고 다른 프로세스를 실행합니다.
비선점형프로세스가 자발적으로 CPU 를 반환할 때까지 실행을 계속합니다.
프로세스 유형프로세스 간 전환서로 다른 프로세스 간의 전환입니다.
스레드 간 전환동일한 프로세스 내의 스레드 간 전환으로, 오버헤드가 적습니다.

5.12 실무 적용 예시

시스템적용 예시설명
리눅스 (Linux)htop 또는 vmstat 로 context switch 분석리눅스 기반 시스템에서는 커널이 프로세스 간 컨텍스트 스위치를 관리하며, /proc/stat 등의 시스템 파일이나 도구로 모니터링 가능합니다.
WindowsTask Manager, Performance MonitorWindows OS 는 스레드 단위로 스케줄링하며 context switch 횟수를 성능 모니터에서 추적 가능.
Kubernetes컨테이너 간 CPU 리소스 스로틀링여러 컨테이너가 하나의 노드에서 실행될 때 컨텍스트 스위칭이 빈번하게 발생하며, QoS 정책과 리소스 제한으로 제어합니다.
RTOS (Real-Time OS)실시간 임베디드 시스템하드웨어 제어 및 센서 데이터 처리가 필요한 실시간 시스템에서는 스위칭 오버헤드를 줄이기 위한 고속 컨텍스트 전환 기법이 사용됩니다.
JVM 기반 서버Java ThreadPoolExecutorJava 에서 스레드 풀을 사용하여 I/O 작업 간 스레드 전환이 발생하며, context switch 오버헤드 최소화를 위해 thread reuse 전략을 사용합니다.

5.13 활용 사례 (시나리오 기반)

시나리오: 금융 거래 시스템에서 수많은 API 요청을 처리하기 위해 멀티스레드 서버를 구성

시스템 구성:

  • API Gateway (Nginx)
  • Application Server (Spring Boot 기반)
  • Worker Thread Pool (JVM 기반)
  • Database (PostgreSQL)
  • 메시지 큐 (Kafka)

다이어그램:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
Client --> API Gateway --> Application Server
                                |
                                v
                        Thread Pool Executor
                                |
                 +--------------+-------------+
                 |              |             |
             Worker 1       Worker 2      Worker N
                 |              |             |
               Kafka        PostgreSQL      Cache

Workflow:

  1. 클라이언트 요청이 API Gateway 를 통해 유입
  2. Spring Boot 기반 서버에서 ThreadPoolExecutor 를 통해 작업 분산
  3. 각각의 스레드는 DB 조회, Kafka 전송 등 비동기 작업 수행
  4. 컨텍스트 스위치는 각 스레드 간 실행 시 발생
  5. 효율적 스레드 재사용 및 우선순위 조절로 오버헤드 최소화

역할:

  • Context Switch 는 Worker Thread 간 전환을 통해 병렬 처리 성능 확보
  • 스레드 풀과 큐를 활용하여 과도한 전환 방지 및 CPU 효율성 유지

5.14 실무에서 효과적으로 적용하기 위한 고려사항 및 주의할 점

고려사항설명권장사항
스레드 수 조절너무 많은 스레드는 빈번한 전환을 유발CPU 코어 수에 맞게 적정량 유지
스케줄링 전략 선택선점형 사용 시 응답성 향상 가능상황에 따라 라운드로빈, 우선순위 기반 사용
CPU 바운드/IO 바운드 분리IO 대기 많은 작업은 컨텍스트 스위치가 많음논블로킹 I/O 와 비동기 처리 기술 활용
프로파일링 및 튜닝context switch 수치를 주기적으로 분석perf, top, vmstat 등 도구 활용

5.15 성능을 최적화하기 위한 고려사항 및 주의할 점

고려사항설명권장사항
캐시 지역성 유지전환 시 CPU 캐시가 무효화됨동일한 작업을 묶어 실행하여 캐시 활용도 증대
타임 슬라이스 조절너무 짧으면 전환 빈도 증가평균 프로세스 실행 시간 고려하여 설정
커널 스케줄러 튜닝기본 스케줄링 정책이 비효율적일 수 있음CFS, O(1) 등 목적에 맞는 스케줄러 선택
컨테이너 및 VM 수 제한리소스가 제한되면 스위칭 과다 발생물리적 CPU 수 대비 VM/컨테이너 수 조절

6. 주제에 대한 추가 조사 내용

(현재 요청에 명시된 내용은 없음—필요 시 이어서 작성 가능)


7. 추가로 알아야 할 내용

카테고리주제간략한 설명
운영체제Lazy context switchingFPU, SIMD 레지스터 등을 필요할 때만 전환하여 성능을 향상
커널 개발컨텍스트 전환 트레이싱ftrace, perf 로 커널 내부의 전환 과정을 상세 분석
성능 분석context switch profiling전환 횟수에 따른 시스템 병목 지점 분석 및 최적화

8. 2025 년 기준 최신 동향

주제항목설명
커널Intel LAM 지원최근 리눅스 커널에서 Lazy FPU Context Switching 과 LAM (Linear Address Masking) 기능 통합
클라우드Serverless 와 context switchServerless 아키텍처에서 컨테이너 간 context switching 비용 최소화 기술 발전
언어 런타임Green Thread 최적화Go 와 Rust 에서 경량 스레드의 context switch 최적화 연구 활발

9. 주제와 관련하여 주목할 내용

주제항목설명
스케줄링CFS (Completely Fair Scheduler)리눅스에서 context switch 효율화 위해 사용되는 기본 스케줄러
하이퍼바이저Virtual context switchVM 내에서 이중 context switching 이 발생할 수 있음
시스템 최적화NUMA aware schedulingNon-Uniform Memory Access 기반 시스템에서 스레드와 메모리의 지역성을 유지하도록 설계 필요

10. 앞으로의 전망

주제항목설명
시스템 아키텍처하드웨어 지원 증가AMD/Intel 에서 context switch 에 최적화된 레지스터/메모리 캐싱 기술 도입
소프트웨어경량 실행 단위로 전환WASM (WebAssembly), green thread 등으로 context switch 비용 줄이는 방향 강화
운영체제실시간 스케줄링 강화RTOS 와 일반 OS 의 통합적인 scheduling layer 등장 가능

11. 하위 주제로 학습할 내용

카테고리주제설명
운영체제스케줄링 알고리즘FCFS, Round Robin, Priority Scheduling 등
시스템 프로그래밍레지스터 저장 및 복원 메커니즘Context switch 중 실제 하드웨어 수준의 상태 저장 방식
병렬처리Thread vs Process Context Switch성능 비교 및 적용 시나리오 분석

12. 추가 학습 필요 내용

관련 분야주제설명
커널 분석ftrace, perf 사용법리눅스에서 context switch 분석을 위한 도구
성능 튜닝CPU cache 최적화컨텍스트 스위치가 캐시에 미치는 영향과 최적화 방안
클라우드 네이티브컨테이너 스케줄링Kubernetes 등에서 context switch 관련 오버헤드 관리 기법

용어 정리

용어설명
PCB (Process Control Block)프로세스 상태 정보를 저장하는 데이터 구조
선점형 스케줄링 (Preemptive Scheduling)OS 가 강제로 CPU 제어를 중단하고 다른 프로세스를 실행
Lazy Context Switching레지스터를 필요 시점에만 전환하여 성능 향상
ftrace리눅스 커널 내부 함수 호출, 전환 등을 추적하는 트레이서
Thread Pool스레드를 재사용하여 context switch 최소화하는 기법

참고 및 출처

Context Switching (컨텍스트 스위칭) 종합 분석

1. 주제 분류의 적절성

제시된 분류 **“Computer Science and Engineering” > “Computer Science Fundamentals” > “Operating System” > “Process Management” > “Processes”**는 매우 적절합니다. Context Switching 은 운영체제의 핵심 기능으로서 프로세스 관리의 중요한 구성요소이며, 멀티태스킹 시스템에서 필수적인 메커니즘입니다.

2. 요약 설명 (200 자 내외)

Context Switching (컨텍스트 스위칭) 은 멀티태스킹 운영체제에서 CPU 가 현재 실행 중인 프로세스의 상태를 저장하고 다른 프로세스의 상태를 복원하여 실행을 전환하는 핵심 메커니즘으로, 여러 프로세스가 하나의 CPU 를 효율적으로 공유할 수 있게 하는 필수적인 운영체제 기능입니다.

3. 전체 개요 (250 자 내외)

Context Switching 은 현대 컴퓨터 시스템의 멀티태스킹을 가능하게 하는 핵심 기술로, CPU 가 한 프로세스에서 다른 프로세스로 실행을 전환할 때 발생하는 과정입니다. 이 과정에서 현재 프로세스의 상태 (레지스터, 프로그램 카운터, 메모리 정보 등) 를 PCB(Process Control Block) 에 저장하고, 실행할 프로세스의 상태를 복원합니다. 시스템 호출, 인터럽트, 선점 스케줄링 등에 의해 발생하며, 효율적인 자원 활용과 시스템 응답성 향상을 제공하지만 오버헤드 비용도 수반합니다.

4. 핵심 개념

기본 개념

  • Process Control Block (PCB): 프로세스의 모든 정보를 저장하는 데이터 구조
  • CPU 스케줄러 (CPU Scheduler): 다음에 실행할 프로세스를 결정하는 운영체제 구성요소
  • 프로세스 상태 (Process States): New, Ready, Running, Waiting, Terminated
  • 인터럽트 (Interrupt): Context Switch 를 유발하는 하드웨어/소프트웨어 신호
  • 시스템 호출 (System Call): 사용자 모드에서 커널 모드로의 전환 요청

심화 개념

  • 선점 스케줄링 (Preemptive Scheduling): 운영체제가 강제로 프로세스를 중단시키는 방식
  • 비선점 스케줄링 (Non-preemptive Scheduling): 프로세스가 자발적으로 CPU 를 양보하는 방식
  • 오버헤드 (Overhead): Context Switch 로 인한 성능 비용
  • TLB (Translation Lookaside Buffer): 가상 메모리 주소 변환을 위한 캐시
  • 멀티태스킹 (Multitasking): 여러 프로세스의 동시 실행 환경

5. 주제 관련 조사 내용

배경

멀티태스킹 운영체제에서 하나의 CPU 가 여러 프로세스를 동시에 처리해야 하는 환경에서 Context Switching 이 필요하게 되었습니다. 1960 년대 시분할 시스템의 도입과 함께 발전된 이 기술은 현대 컴퓨팅의 기초를 이룹니다.

목적 및 필요성

  • CPU 자원의 효율적 활용: 단일 CPU 에서 여러 프로세스의 동시 실행
  • 시스템 응답성 향상: 사용자 인터페이스와 백그라운드 프로세스의 균형
  • 공정한 자원 배분: 모든 프로세스가 CPU 시간을 공평하게 할당받음
  • I/O 대기 시간 활용: 하나의 프로세스가 I/O 를 기다리는 동안 다른 프로세스 실행

주요 기능 및 역할

  1. 상태 저장 및 복원: 현재 프로세스의 실행 상태를 PCB 에 저장하고 새로운 프로세스의 상태를 복원
  2. 메모리 관리: 가상 메모리 테이블과 TLB 업데이트
  3. 스케줄링 지원: CPU 스케줄러와 연동하여 다음 실행할 프로세스 선택
  4. 인터럽트 처리: 하드웨어 및 소프트웨어 인터럽트에 대한 적절한 응답

특징

  • 투명성: 애플리케이션 프로그램이 Context Switch 를 인식하지 못함
  • 원자성: Context Switch 과정은 중단될 수 없는 단위 작업
  • 커널 모드 실행: 특권 모드에서만 수행 가능
  • 하드웨어 의존성: 프로세서 아키텍처에 따라 성능 차이 발생

핵심 원칙

  1. 일관성 유지: 프로세스 상태의 정확한 보존
  2. 최소 비용: 오버헤드를 최소화하는 효율적인 구현
  3. 공정성: 모든 프로세스에 대한 공평한 CPU 시간 배분
  4. 안전성: 프로세스 간 격리 및 보안 유지

주요 원리 및 작동 원리

Context Switching 의 작동 과정은 다음과 같습니다:

1
2
3
4
5
6
7
1. 트리거 발생 (인터럽트, 시스템 호출, 시간 할당량 만료)
2. 현재 프로세스 상태 저장 (PCB에 레지스터, 프로그램 카운터 등 저장)
3. 프로세스 상태 업데이트 (Running → Ready/Waiting)
4. 스케줄러 호출 (다음 실행할 프로세스 선택)
5. 새로운 프로세스 상태 복원 (PCB에서 상태 정보 로드)
6. 메모리 관리 구조 업데이트 (페이지 테이블, TLB 등)
7. 새로운 프로세스 실행 시작

구조 및 아키텍처

필수 구성요소
  1. Process Control Block (PCB)

    • 프로세스 ID (PID)
    • 프로세스 상태
    • 프로그램 카운터 (Program Counter)
    • CPU 레지스터 상태
    • 메모리 관리 정보
    • I/O 상태 정보
    • 스케줄링 정보
  2. CPU 레지스터

    • 범용 레지스터 (General Purpose Registers)
    • 스택 포인터 (Stack Pointer)
    • 베이스 레지스터 (Base Register)
    • 한계 레지스터 (Limit Register)
  3. 메모리 관리 구조

    • 페이지 테이블 (Page Table)
    • 세그먼트 테이블 (Segment Table)
    • TLB (Translation Lookaside Buffer)
선택 구성요소
  • 캐시 관리: L1, L2, L3 캐시 상태
  • 부동소수점 유닛: FPU 레지스터 상태
  • 디버그 레지스터: 디버깅 정보
  • 성능 카운터: 프로파일링 데이터

원인, 영향, 탐지 및 진단, 예방 방법, 해결 방법 및 기법

발생 원인
  1. 시간 할당량 만료: 프로세스가 할당된 CPU 시간을 모두 사용
  2. I/O 요청: 프로세스가 입출력 작업을 요청하여 대기 상태로 전환
  3. 시스템 호출: 커널 서비스 요청
  4. 인터럽트: 하드웨어 또는 소프트웨어 인터럽트 발생
  5. 높은 우선순위 프로세스 도착: 선점 스케줄링에서 우선순위가 높은 프로세스 실행
성능 영향
  • 직접 비용: Context Switch 자체에 소요되는 시간
  • 간접 비용: 캐시 미스, TLB 미스, 파이프라인 플러시로 인한 성능 저하
탐지 및 진단
  • 시스템 모니터링 도구: vmstat, top, htop 등으로 Context Switch 횟수 측정
  • 성능 분석: Context Switch 비율과 시스템 성능 상관관계 분석
  • 프로파일링: 애플리케이션별 Context Switch 패턴 분석
예방 및 최적화 방법
  1. 적절한 스케줄링 정책 선택: CFS (Completely Fair Scheduler) 등 효율적인 스케줄러 사용
  2. 프로세스 설계 최적화: 불필요한 시스템 호출 최소화
  3. I/O 최적화: 비동기 I/O 및 논블로킹 I/O 사용
  4. CPU 친화도 설정: 특정 CPU 코어에 프로세스 고정

구현 기법

1. 하드웨어 지원 방식

정의: 하드웨어 차원에서 Context Switch 를 가속화하는 기법 구성: 다중 레지스터 세트, 하드웨어 스케줄러 목적: Context Switch 시간 단축 실제 예시: Sun UltraSPARC 의 다중 레지스터 세트 시스템

2. 소프트웨어 최적화 방식

정의: 운영체제 수준에서 Context Switch 를 최적화하는 기법 구성: 효율적인 데이터 구조, 지연 로딩 목적: 소프트웨어 오버헤드 감소 실제 예시: Linux CFS 스케줄러의 최적화된 컨텍스트 스위칭

3. 경량 스레드 방식

정의: 프로세스보다 작은 단위인 스레드 간의 Context Switch 구성: 스레드 제어 블록 (TCB), 공유 메모리 공간 목적: 스위칭 비용 절감 실제 예시: POSIX 스레드, Windows 스레드

장점과 단점

구분항목설명
✅ 장점멀티태스킹 지원여러 프로세스의 동시 실행으로 시스템 활용도 향상
응답성 향상사용자 인터페이스와 백그라운드 작업의 균형적 처리
자원 효율성CPU, 메모리 등 시스템 자원의 최적 활용
공정성 보장모든 프로세스에 공평한 실행 기회 제공
⚠ 단점성능 오버헤드Context Switch 자체에 소요되는 CPU 시간
캐시 성능 저하프로세스 변경으로 인한 캐시 미스 증가
복잡성 증가동기화, 경쟁 상태 등 복잡한 문제 발생 가능
메모리 사용량 증가각 프로세스의 PCB 및 스택 공간 필요

도전 과제

1. 성능 최적화

도전 과제 (계속)

1. 성능 최적화

설명: Context Switch 로 인한 오버헤드를 최소화하면서 시스템 성능을 향상시키는 과제 해결책:

  • 하드웨어 가속 기술 활용 (다중 레지스터 세트)
  • 효율적인 스케줄링 알고리즘 개발
  • CPU 친화도 (CPU Affinity) 설정을 통한 캐시 지역성 향상
2. 실시간 시스템에서의 예측 가능성

설명: 실시간 시스템에서 Context Switch 시간을 예측 가능하게 만드는 과제 해결책:

  • 우선순위 기반 선점 스케줄링
  • 인터럽트 지연 시간 최소화
  • 결정론적 Context Switch 메커니즘 구현
3. 멀티코어 환경에서의 동기화

설명: 멀티코어 시스템에서 여러 CPU 가 동시에 Context Switch 를 수행할 때의 동기화 문제 해결책:

  • 스핀락 (Spin Lock) 및 뮤텍스 (Mutex) 활용
  • 락프리 (Lock-free) 자료구조 사용
  • NUMA (Non-Uniform Memory Access) 고려한 스케줄링
4. 보안 및 격리

설명: 프로세스 간 정보 유출 방지 및 보안 강화 해결책:

  • 메모리 보호 기법 강화
  • 사이드 채널 공격 방어
  • 하드웨어 지원 보안 기능 활용

분류에 따른 종류 및 유형

분류 기준종류설명
발생 원인자발적 (Voluntary)프로세스가 스스로 CPU 를 양보 (I/O 대기, sleep 등)
비자발적 (Involuntary)운영체제가 강제로 프로세스를 중단 (시간 할당량 만료)
스케줄링 방식선점형 (Preemptive)운영체제가 실행 중인 프로세스를 강제로 중단
비선점형 (Non-preemptive)프로세스가 자발적으로 CPU 를 양보할 때까지 대기
대상 단위프로세스 간 (Process-to-Process)서로 다른 프로세스 간의 전환
스레드 간 (Thread-to-Thread)동일 프로세스 내 스레드 간 전환
모드 전환사용자 - 커널 모드 전환시스템 호출 시 발생하는 모드 변경
커널 내부 전환커널 모드 내에서의 작업 전환

실무 적용 예시

적용 분야사례구현 방법효과
웹 서버Apache HTTP Server멀티프로세스 모델로 각 요청을 별도 프로세스에서 처리요청 간 격리, 안정성 향상
데이터베이스PostgreSQL각 클라이언트 연결마다 별도 프로세스 생성트랜잭션 격리, 장애 격리
게임 엔진Unity Engine렌더링, 물리연산, AI 를 별도 스레드로 분리프레임 드롭 최소화, 반응성 향상
임베디드 시스템FreeRTOS우선순위 기반 선점 스케줄링실시간 응답성 보장
클라우드 플랫폼Kubernetes컨테이너 기반 프로세스 격리 및 스케줄링자원 효율성, 확장성

활용 사례

시나리오: 고성능 웹 서버 환경에서의 Context Switching 최적화

상황 설정: 대규모 전자상거래 플랫폼에서 초당 10,000 개의 HTTP 요청을 처리해야 하는 웹 서버 시스템

시스템 구성:

  • 하드웨어: 16 코어 CPU, 64GB RAM, SSD 스토리지
  • 운영체제: Linux (Ubuntu 22.04 LTS)
  • 웹 서버: Nginx + uWSGI
  • 데이터베이스: PostgreSQL
  • 캐시: Redis

활용된 Context Switching 기법:

  1. CPU 친화도 설정: 특정 워커 프로세스를 특정 CPU 코어에 고정
  2. 논블로킹 I/O: epoll 을 활용한 비동기 I/O 처리
  3. 프로세스 풀링: 미리 생성된 워커 프로세스 재사용
  4. 우선순위 스케줄링: 중요한 요청에 높은 우선순위 부여

Workflow:

1
2
3
4
5
6
1. 클라이언트 요청 수신
2. Nginx가 요청을 적절한 uWSGI 워커로 전달
3. Context Switch를 최소화하기 위해 동일 CPU 코어에서 처리
4. 데이터베이스 쿼리 시 비동기 I/O로 다른 요청 동시 처리
5. 캐시 히트 시 Context Switch 없이 즉시 응답
6. 응답 생성 후 클라이언트로 전송

Context Switching 의 역할:

  • 부하 분산: 여러 워커 프로세스 간 요청 분배
  • 장애 격리: 하나의 프로세스 오류가 다른 프로세스에 영향을 주지 않음
  • 자원 효율성: I/O 대기 시간 동안 다른 요청 처리

성과:

  • Context Switch 횟수 60% 감소
  • 응답 시간 40% 단축
  • CPU 사용률 85% 향상
  • 동시 처리 가능 요청 수 3 배 증가

실무에서 효과적으로 적용하기 위한 고려사항 및 주의할 점

구분고려사항설명권장사항
성능Context Switch 빈도 모니터링과도한 스위칭은 성능 저하 유발vmstat, sar 등으로 지속적 모니터링
메모리PCB 크기 최적화큰 PCB 는 스위칭 시간 증가필요한 정보만 PCB 에 저장
스케줄링적절한 시간 할당량 설정너무 짧으면 오버헤드, 너무 길면 응답성 저하워크로드에 따른 동적 조정
캐시캐시 지역성 고려프로세스 변경 시 캐시 미스 발생CPU 친화도 설정으로 캐시 효율성 향상
동기화경쟁 상태 방지공유 자원 접근 시 동기화 필요적절한 락킹 메커니즘 사용

최적화하기 위한 고려사항 및 주의할 점

구분최적화 기법설명권장사항
하드웨어다중 레지스터 세트 활용하드웨어 지원 시 빠른 컨텍스트 스위칭최신 프로세서 아키텍처 활용
소프트웨어경량 스레드 사용프로세스 대신 스레드로 오버헤드 감소공유 데이터 동기화 주의
I/O비동기 I/O 구현블로킹 I/O 로 인한 불필요한 스위칭 방지epoll, kqueue 등 이벤트 기반 I/O
메모리메모리 지역성 최적화관련 데이터를 가까운 메모리에 배치NUMA 토폴로지 고려한 메모리 할당
스케줄링작업 큐 최적화효율적인 스케줄링으로 불필요한 스위칭 방지우선순위 기반 또는 공정 스케줄링

8. 2025 년 기준 최신 동향

주제항목설명
AI 기반 최적화지능형 스케줄링머신러닝을 활용한 예측적 Context Switch 최적화
적응형 시간 할당량워크로드 패턴 학습을 통한 동적 시간 할당량 조정
하드웨어 발전신경망 처리 장치 (NPU)AI 워크로드 전용 Context Switch 메커니즘
양자 컴퓨팅양자 상태 보존을 위한 새로운 컨텍스트 관리 기법
클라우드/엣지컨테이너 최적화Docker, Kubernetes 에서의 경량화된 Context Switch
엣지 컴퓨팅저지연, 저전력 Context Switch 기술
보안 강화사이드채널 방어Spectre, Meltdown 등 공격에 대한 안전한 Context Switch
하드웨어 보안Intel CET, ARM Pointer Authentication 활용

9. 주제와 관련하여 주목할 내용

주제항목설명
새로운 아키텍처RISC-V오픈소스 프로세서에서의 Context Switch 구현
ARM M-Profile임베디드 시스템 전용 효율적 컨텍스트 스위칭
가상화 기술하이퍼바이저VM 간 Context Switch 최적화 기술
컨테이너 런타임경량 가상화에서의 빠른 프로세스 전환
실시간 시스템시간 결정론적 스위칭정확한 시간 보장이 필요한 시스템에서의 응용
우선순위 역전 방지실시간 스케줄링에서의 Context Switch 최적화
메모리 기술영구 메모리NVM 활용 시 Context 정보 영구 저장
메모리 압축Context 정보 압축을 통한 스위칭 속도 향상

10. 앞으로의 전망

주제항목설명
자율화완전 자율 스케줄링AI 가 최적의 Context Switch 시점을 자동 결정
자기 적응형 시스템시스템이 스스로 성능을 최적화하는 기술
통합 최적화하드웨어 - 소프트웨어 통합맞춤형 프로세서와 운영체제의 공동 설계
크로스 레이어 최적화애플리케이션부터 하드웨어까지 전체 스택 최적화
새로운 패러다임분산 Context 관리클러스터 전체에서의 글로벌 Context 관리
예측적 프리페칭다음 실행될 프로세스를 미리 예측하여 준비
보안 진화하드웨어 보안 강화TEE, Secure Enclave 를 활용한 안전한 Context Switch
제로 트러스트 아키텍처모든 Context Switch 에 대한 보안 검증

11. 하위 주제별 추가 학습 내용

카테고리주제설명
운영체제 이론프로세스 스케줄링FCFS, SJF, Round Robin, Priority Scheduling
메모리 관리가상 메모리, 페이징, 세그멘테이션
동기화 메커니즘세마포어, 뮤텍스, 모니터
컴퓨터 아키텍처CPU 파이프라인명령어 파이프라인과 Context Switch 의 상호작용
캐시 시스템L1/L2/L3 캐시와 Context Switch 성능 영향
인터럽트 처리하드웨어 인터럽트와 Context Switch 관계
시스템 프로그래밍커널 개발Context Switch 구현을 위한 저수준 프로그래밍
디바이스 드라이버하드웨어와 운영체제 간 인터페이스
시스템 호출사용자 모드와 커널 모드 전환 메커니즘

12. 관련 분야 추가 학습 내용

카테고리주제설명
병렬 처리멀티프로세싱다중 프로세서 환경에서의 Context Switch
멀티스레딩스레드 간 Context Switch 와 동기화
GPU 컴퓨팅GPU 에서의 Context Switch 와 CUDA 스트림
실시간 시스템실시간 스케줄링Rate Monotonic, Earliest Deadline First
시간 제약데드라인과 Context Switch 최적화
우선순위 상속우선순위 역전 문제 해결
분산 시스템분산 스케줄링클러스터 환경에서의 작업 분배
로드 밸런싱시스템 간 작업 부하 균형
장애 복구Context 정보를 활용한 장애 시 복구
가상화하이퍼바이저Type 1/Type 2 하이퍼바이저에서의 Context Switch
컨테이너 기술Docker, LXC 에서의 경량 가상화
클라우드 컴퓨팅가상 머신 마이그레이션과 Context 보존

용어 정리

용어설명
Quantum (퀀텀)CPU 스케줄러가 각 프로세스에게 할당하는 시간 단위
Dispatcher (디스패처)스케줄러가 선택한 프로세스에게 실제로 CPU 를 할당하는 모듈
Context Switch OverheadContext Switch 수행에 소요되는 시간과 자원 비용
Lightweight Process (경량 프로세스)스레드의 다른 표현으로, 프로세스보다 생성/전환 비용이 적음
Run Queue (실행 큐)실행 준비가 완료된 프로세스들이 대기하는 자료구조
Process Switching Time한 프로세스에서 다른 프로세스로 전환하는 데 소요되는 시간
Context Switching Rate단위 시간당 발생하는 Context Switch 의 횟수
Process Migration한 프로세서에서 다른 프로세서로 프로세스를 이동시키는 과정
Kernel Stack각 프로세스가 커널 모드에서 사용하는 스택 공간
User Stack프로세스가 사용자 모드에서 사용하는 스택 공간

참고 및 출처