프로세스(Process)와 스레드(Thread)의 차이, 컨텍스트 스위칭(Context Switching)

jaeyong Lee·2024년 7월 18일

프로세스(process)

프로세서에 의해 처리되는 프로그램, 실행 중인 프로그램

자원을 독립적으로 가짐

PCB(Process Control Block)

프로세스마다 하나씩 존재하는 프로세스의 정보를 저장,관리하고 컨텍스트 스위칭 수행하는 데이터 구조

스레드(thread)

프로세스 내에서 실행되는 작업단위

자원을 공유한다.

컨텍스트 스위칭

프로세스는 독립적으로 실행됨으로 단일 CPU에서는 동시에 여러 프로세스가 실행될 수 없다. 그래서 운영체제는 컨텍스트 스위칭을 사용하여 프로세스들을 빠르게 번갈아 가며 실행시킨다.
이 과정은 사용자에게 마치 프로세스들이 동시에 실행되는 것처럼 보이게 한다.

컨텍스트 스위칭 과정
1.현재 프로세스의 상태 저장: 현재 실행중인 프로세스의 pcb는 cpu에서 실행 중
2.다음 프로세스 선택: 스케줄러가 다음에 실행할 프로세스를 결정합니다.
3.선택된 프로세스의 상태 복원: 다음 프로세스의 상태를 PCB에서 가져와 CPU에 설정합니다.
4.프로세스 실행 재개: 선택된 프로세스가 실행을 재개합니다.

정리)

즉 프로세스가 실행되는 동안 계속해서 컨텍스트 스위칭이 일어난다.

0개의 댓글