SSAFY-CSStudy / OS

SSAFY CS 운영체제 스터디입니다.
11 stars 0 forks source link

[3. 프로세스 관리] 문맥교환(Context Switching)이란? #26

Open dahyunko opened 8 months ago

dahyunko commented 8 months ago

1Depth

Question

문맥교환(Context Switching)이란?

Answer

CPU를 한 프로세스에서 다른 프로세스로 넘겨주는 과정이다.
CPU가 현재 처리중인 프로세스의 PCB(Process Controll Block)을 따로 저장하고 다른 PCB를 가져오는 것으로 현재 상태를 대기 상태로 만들고, 다른 프로세스를 실행시키는 과정이다.

2Depth

Question

모드 스위치와 프로세스 스위치 간의 차이점은 무엇인가

Answer

모드 스위치 : user mode에서 kernel mode로 변경할 때 발생하는 것으로 Interrupt나 System Call 발생 시 일어난다.
프로세스 스위치 : 문맥 교환으로 실행중인 프로세스를 멈추고 새 프로세스를 실행하는 것

3Depth

Question

System call 이나 Interrupt 발생 시 반드시 context switch가 일어나는가?

Answer

아니다. 프로세스가 변경되어야 발생한다.

Additional Explain

dahyunko commented 8 months ago

thread 와 process의 context switching에서의 차이점

한마디로 쓰레드는 프로세스의 자원을 공유하여 사용하고 프로세스가 바뀌지 않는 이상 데이터가 그대로 남아있기 때문에 그대로 가져다가 쓰면되지만  프로세스가 변경되게 되면 cache의 정보, 가상 메모리, TLB등의 정보가 모두 지워지기 때문에 데이터 접근하는데 오래걸린다.