메뉴
brunch
매거진
개발자 성장 일기
실행
신고
라이킷
10
댓글
3
공유
닫기
You can make anything
by writing
C.S.Lewis
브런치스토리 시작하기
브런치스토리 홈
브런치스토리 나우
브런치스토리 책방
계정을 잊어버리셨나요?
by
Noah
Dec 10. 2020
Process, Thread 차이가 뭐예요?
이런거 왜 물어봐요?
카테고리
: 컴퓨터 공학
난이도
: 하
질문자의 의도
잘못된 프로세스, 스레드의 사용은 심각한 오류를 발생할 수 있다.
또한 디버깅이나 오류 해결의 어려움이 크다.
프로세스, 쓰레드의 정의에 대해서 정확히 알고 있는지 확인해야 한다.
아니,
잘못 알고 있는 부분이 없는지
확인해야 한다.
Q. Process 와 Thread 의 차이를 설명해 보세요
프로세스는 운영체제로부터 자원을 할당받는 작업의 단위이다.
스레드는 할당 받은 자원을 이용하는 실행의 단위이고 프로세스 내에 여러개 생길 수 있다.
어플리케이션 하나가 프로세스이고, 그 안에서의 분기 처리가 스레드가 되는 셈이다.
질문자가 면접자가 이 질문을 대답 못할 것이라고 생각하지는 않을 것이다.
기초 질문이기 때문이다. 전공자가 아니여도 대답할 수 있는 수준의 질문이다.
다음 질문을 이끌기 위한
오프너 질문이라고
할 수 있다.
process 와 thread 연관 질문으로는 Multi Procsss, Multi Thread, Context Swiching, Thread Safe 등을 물어 볼 수 있을 것이다.
물론 비동기 처리까지도 자연스럽게 이어질 수 있다.
Q. Multi Procss & Multi Thread
multi process
는 하나의 프로그램을 여러개의 프로세스로 구성하여 각 프로세스가 하나의 작업(task)를 처리하는 것이다.
- 장점 : 하나의 프로세스가 잘못 되어도 프로그램은 동작 함
- 단점 : context switching 비용 발생
multi thread
는 프로그램을 여러개의 쓰레드로 구성하고 각 쓰레드가 작업(task)를 처리하는 것
- 장점 : 시스템 자원 소모 감소, 처리 비용 감소(실행 속도 향상), 쓰레드간 자원 공유(
stack을 제외한
영역)
- 단점 : 디버깅 어려움, 동기화 이슈 발생, 하나의 쓰레드의 오류로 전체 프로세스에 문제 발생
Q. Thread Safe 란?
thread safe란 것은 여러 thread가 동시에 사용되어도 안전하단 것을 뜻한다.
특정 함수 A 와 변수 AA 가 여러 스레드에서 호출되어도 하나의 스레드에서 호출했을 때와 같은 결과가 보장되어야 한다는 의미
함수가 전역 변수를 참조하게 된다면 그 함수는 thread safe 하지 않은 결과가 나올 수 있다.
Thread Safe 하지 않은 조건을 만드는 방법의 예를 들어보라고 한다던가, Thread Safe 하지 않은 환경을 Thread Safe 하게 변경하는 방법등을 물어볼 수 있다.
프로세스와 다르게 쓰레드간에 자원을 공유하고 있고 있고 이 때 무엇을 조심해야 하는지를
묻는 질문이다.
Q. Context Switching 이란?
CPU 에서 여러 프로세스를 돌아가면서 작업을 처리하는데 이 과정을 Context Swiching 이라고 한다. 동작중인 프로세스가 대기를 하면서 해당 프로세스의 상태(Context)를 보관하고 대기 하고 있다가 다시 실행시 복구하는 비용(시간)을 말한다.
프로세스와 쓰레드에 대한 간단한 질문으로 왜 비동기 프로그래밍을 하는지 비동기 프로그래밍이 무엇인지를 연속적으로 물어볼 수 있을 것이다.
Thread Safe: 동기화, mutext, semaphore, synchronized
Thread 의 개수 설정 : 리틀의 법칙
keyword
프로세스
면접
쓰레드
브런치는 최신 브라우저에 최적화 되어있습니다.
IE
chrome
safari