프로세스와 쓰레드에 대해서 설명하고 그 차이에 대해서 설명해주세요.
프로그램: 어떤 작업을 위해 실행할 수 있는 파일
프로세스
- 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램
- 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립개체)
- 동적인 개념으로는 실행된 프로그램을 의미한다.
- 각각의 독립된 메모리영역을 할당받음(code, data, stack, heap)
- 기본적으로 프로세스당 최소 1개의 스레드를 가지고 있다.
- 한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스간의 통신(IPC)을 사용해야한다.
ex) 파이프, 파일, 소켓등을 이용
스레드
- 프로세스내에서 실행되는 여러 흐름의 단위
- 프로세스의 특정한 수행 경로
- 프로세스가 할당받은 자원을 이용하는 실행의 단위
- 스레드는 프로세서 내에서 각각 stack만 할당받고 code, data, heap영역은 공유한다.
차이점
프로세스는 하나의 프로그램이 os에게 메모리를 할당받아 실행되고 있는것이며, 스레드는 그 프로세스 내에서 실행되는 작업의 흐름 단위이다.
노드가 싱글스레드이기때문에 이런 면접 많이 받을것. 어케 멀티스레드처럼 학습을 시키는지?
노드엔진이 어떻게 구성되어있는지 잘 아는게 좋다.
멀티프로세스와 멀티쓰레드의 특징에 대해 설명해주세요.
'기술면접' 카테고리의 다른 글
http, https / OSI 7계층 (0) | 2024.04.04 |
---|---|
JWT, 토큰인증, OAuth (0) | 2024.04.02 |
대용량 트래픽 발생시 대응, ORM 사용시 쿼리가 복잡해진다면? (0) | 2024.04.01 |
RDBMS 정규화, PK & FK (0) | 2024.03.29 |
HTTP 메서드 (0) | 2024.03.28 |