yoongrammer
문맥 교환 (Context switch) 알아보기 본문
728x90
문맥 교환 (Context switch) 알아보기
문맥(context)
은 프로세스의 상태 정보를 의미합니다.
문맥 교환(context switch)
은 프로세스의 상태 정보를 교환하는 작업입니다.
자세히 설명하자면 하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해 이전의 프로세스의 상태를 PCB에 보관하고 또 다른 프로세스의 정보를 PCB에서 읽어 레지스터에 적재하는 과정입니다.
문맥 교환은 멀티태스킹(=멀티프로세싱)이 가능하도록 해줍니다.
- 멀티태스킹 : 다수의 프로세스가 하나의 CPU 자원을 나누어 사용하는 것
하나의 CPU에서 여러 개의 프로세스가 동시에 수행되는 것처럼 보이는 이유는 문맥 교환이 빠르게 일어나고 있기 때문입니다.
문맥 교환 중에는 다른 작업을 할 수 없기 때문에 이 시간을 오버헤드
라고 할 수 있습니다.
오버헤드 해결 방안은 다음과 같습니다.
- 문맥 교환이 자주 발생하지 않도록 다중 프로그래밍의 정도를 낮춥니다.
- 스택 중심의 장비에서는 Stack 포인터 레지스터를 변경하여 프로세스 간 문맥 교환을 수행합니다.
- 스레드(Thread)를 이용하여 문맥 교환 부하를 최소화시킵니다.
문맥 교환이 일어나는 시점은 다음과 같습니다.
- 멀티 태스킹
멀티 태스킹 환경에서 프로세스 전환 과정에서 문맥 교환이 일어납니다.
선점 형 시스템에서는 스케줄러가 프로세스를 전환할 수 있습니다. - 인터럽트 처리
인터럽트가 발생할 때 문맥 교환이 일어납니다. - 사용자 및 커널 모드 전환
운영 체제에서 사용자 모드와 커널 모드 사이의 전환이 필요할 때 문맥 교환이 발생할 수 있습니다.
728x90
'운영체제(OS)' 카테고리의 다른 글
process synchronization : 임계구역 (critical section) & 경쟁상태 (race condition) (0) | 2021.02.03 |
---|---|
프로세스 간 통신 (IPC : Interprocess Communication) 알아보기 (0) | 2021.02.01 |
스레드(Thread) 알아보기 (0) | 2021.01.28 |
프로세스 제어 블록 (PCB: Process Control Block) 알아보기 (0) | 2021.01.23 |
프로세스 알아보기 (메모리 구조, 상태 전이) (0) | 2021.01.22 |
Comments