개발놀이터

면접 준비 : 프로레스와 스레드 본문

CS 지식/면접준비

면접 준비 : 프로레스와 스레드

마늘냄새폴폴 2023. 4. 8. 18:43

Q. 프로세스와 스레드의 차이에 대해서 설명해주세요. 
A. 프로세스는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램이고 스레드는 프로세스 내에서 실행되는 여러 흐름의 단위입니다. 각각의 프로세스는 고유한 주소와 메모리 공간이 부여되고 독립적입니다. 반면에 스레드는 부모 프로세스에서 자원을 공유하기 때문에 논리적으로 연결되어 있습니다. 즉, 스레드는 프로세스 안에 포함된 개념이며 스레드는 경량화된 프로세스라고 볼 수 있습니다. 

Q. Context Switching에 대해서 설명해주세요. 
A. Context Switching은 동작 중인 프로세스가 대기하면서 해당 프로세스의 상태를 보관하고, 대기하고 있던 다음 순서의 프로세스가 동작하면서 이전에 보관했던 프로세스의 상태를 복구하는 작업을 말합니다. 보통의 경우 Context Switching은 멀티프로세싱에서 발생하며 오버헤드가 발생하기 때문에 멀티스레딩으로 작업할 수 있는 것들은 멀티스레딩으로 작업하는 것이 프로그램 성능상 이점을 가지고 있습니다. 하지만 Context Switching은 장애가 발생했을 때 장애를 해결하고 원상복구 하기 위해 주로 사용됩니다. 또한, 높은 우선순위의 프로세스가 생겨서 기존 프로세스가 ready queue로 떨어진다면 현재 실행중인 프로세스가 정지하게 되고 우선순위 프로세스가 완료되고 다시 원래대로 돌아갈 때 사용됩니다.