본문 바로가기
면접 질문/운영체제

[운영체제/OS] 프로세스와 스레드 면접 질문 및 답변

by 그적 2024. 1. 22.
  • 프로세스란 무엇인가요?
더보기

프로세스를 설명하기 전, 프로그램은 디스크에 저장된 실행 파일을 의미합니다. 프로그램을 실행시키기 위해 메모리에 프로그램을 적재하고 CPU를 할당받아야 하는데, 이러한 실행 중인 프로그램을 프로세스라고 합니다.

 

  • 스레드란 무엇인가요?
더보기

먼저 프로그램은 디스크에 저장된 실행 파일, 프로세스는 이러한 프로그램이 실행되고 있는 상태, 스레드는 프로그램이 동작할 수 있는 실행의 단위입니다. 프로그램이 동작할 때 컴퓨터가 이해할 수 있는 명령어로 해석되고, 이러한 명령어를 스레드라고 부릅니다.

 

  • 프로세스와 스레드 차이점에 대해 설명해 주세요.
더보기

여러 개의 스레드를 구성해 프로세스가 됩니다. 먼저 프로세스가 생성이 되면 메모리에 각 프로세스마다 독립적인 영역이 할당됩니다. 하지만 스레드는 생성 시 메모리 영역 중 스택 영역만 독립적으로 할당받고, 스택을 제외한 코드, 데이터, 힙 영역을 공유하면서 동작합니다.

따라서 각 프로세스는 독립적으로 메모리를 할당받기 때문에, 서로의 자원을 필요로 할 때 위해 IPC 통신이 필요로 합니다. 하지만 스레드는 코드, 힙, 데이터 영역을 공유하기 때문에, 공유 자원에 대한 동기화를 지원해야 합니다.

 

  • 멀티 스레드란 무엇인가요?
더보기

컴퓨터를 할 때 여러 개의 프로그램이 동시에 실행되는 것처럼 보입니다. 하지만 실제로 CPU는 한 번에 한 가지 일만 처리할 수 있는데, 이는 빠른 속도로 여러 개의 스레드를 교체해 가면서 실행하기 때문에 동시에 실행되는 것처럼 보이는 것입니다. 즉, 멀티 스레드는 CPU가 여러 개의 스레드를 교체해 가면서 작업을 처리하는 것을 의미합니다.

 

  • 멀티 프로세스 대신 멀티 스레드를 사용해야 하는 이유는 무엇인가요?
더보기

멀티 프로세스 대신에 멀티 스레드를 이용해야 하는 가장 큰 이유는 컨텍스트 스위칭에 발생하는 비용이 적기 때문입니다. 컨텍스트 스위칭은 컴퓨터가 동시에 여러 일을 처리하지 못하기 때문에, 여러 프로그램이 동작하도록 프로세스나 스레드를 교체해 가면서 처리할 수 있도록 동작하는 것입니다. 각 스레드 정보를 저장해 둔 Thread Control Block의 크기가 프로세스보다 더 작아서 컨텍스트 스위칭에 드는 오버헤드도 더 작다는 장점을 가집니다.

 

  • 멀티 스레드를 사용하는 이유는 무엇인가요?
더보기

멀티 스레드는 컨텍스트 스위칭에 필요한 비용이 작기 때문에 효율성이 좋다는 장점을 가집니다. 또한, 코드, 데이터, 힙 영역을 공유하기 때문에 응답 속도가 증가하고, 자원의 중복을 막을 수 있기 때문에 멀티 스레드를 이용합니다.

 

  • 스레드 장단점을 말씀해 주세요.
더보기

스레드는 프로세스에서 실행되는 작업의 단위를 의미합니다. 따라서 프로세스보다 더 적은 정보를 가지고 있기 때문에, 컨텍스트 스위칭에 드는 비용이 더 작다는 장점을 가집니다. 또한, 코드, 데이터, 힙 영역을 공유하기 때문에 별도의 통신 없이 데이터를 공유해 경제성이 좋지만, 공유 데이터에 대한 동기화 문제가 발생할 수 있고, 하나의 데이터에 문제가 생길 경우 다른 스레드에 영향을 끼칠 수 있는 단점을 가지고 있습니다.

 

  • Process Control Block에 저장되는 데이터를 아는 대로 말씀해 주세요.
더보기

프로세스의 PID 값, 상태 정보, 레지스터와 메모리 주소 등이 저장됩니다.

 

  • Thread Control Block에 저장되는 데이터를 아는 대로 말씀해 주세요.
더보기

스레드의 PID 값, PC, SP 레지스터, 우선순위 등이 저장됩니다.

 

댓글