기술면접 관련 및 참고하기

기술 면접 스터디 5일 -( 프로세스와 스레드, TCP와 UDP)

지팡구 2023. 3. 31. 14:42

목차

1. 프로세스와 스레드의 차이에 대해 설명해 주세요

프로세스는 하나의 OS로부터 할당받는 작업의 단위입니다. 프로세스는 하나 이상의 스레드를 가지게 됩니다. 스레드는 프로세스의 자원을 이용하는 실행 흐름의 단위 입니다. OS에서는 메모리에 프로세스가 올라갈 때마다 code/data/stack/heap 영역을 할당합니다. 그러니 스레드는 프로세스가 할당받은 메모리 내에서 stack만 할당받고 나머지 영역은 스레드끼리 공유합니다. 프로세스는 다른 프로세스가 오류가 있으면 자신의 프로세스에 영향이 없지만, 스레드는 공유된 메모리를 사용하고있는 다른 스레드도 오류가 발생하는 점이 있습니다.

 

차이점 : 프로세스는 프로세스 단위마다 영역을 할당받아서 사용함, 스레드는 프로세스 속의 stack만 따로 할당받고, 나머지 영역은 나눠서 사용, 또한 프로세스는 다른 프로세스에 문제가 있으면 자신의 프로세스에는 영향이 없지만, 공유된 자원을 사용하는 스레드는 다른 스레드가 문제가 있으면 그 영향이 다른 스레드까지 전달됨.

 

더 나아가서 멀티 프로세스와 스레드가 있습니다.

멀티 프로세스는 하나의 서비스를 여러 개의 프로세스로 구성해서 각 프로세스가 하나의 작업을 처리하도록 하는 것이고, 멀티 스레드는 한 프로세스 내에 여러 개의 스레드가 위치한 방식입니다. 


2. TCP와 UDP의 공통점과 차이점을 설명해보세요.

공통점 : OSI 7계층 중 4계층에서 사용하는 프로토콜의 종류

 

차이점 : TCP는 연결성 프로토콜로 흐름,오류,혼잡 제어를 이용해 데이터의 신뢰성을 보장해주며 연결지향적 성격을 가짐, 그래서 1:1 통신이나 파일 교환과 같은 경우에 많이 사용, 그러나 UDP는 비 연결성 프로토콜로 데이터의 신뢰성을 보장해주지 않으며 TCP에 비해 빠름, 그래서 순서화 되지 않은 데이터그램 서비스를 제공하는데 실시간 응용 및 멀테테스킹이 가능해서 빠른 요청과 응답이 필요한 실시간 서비스에 적합함 (1:1, 1:N, N:N)

 

 

TCP와 UDP는 전송계층의 프로토콜의 종류입니다. TCP는 흐름제어, 혼잡제어, 오류제어를 통해 데이터의 신뢰성을 보장해주고 연결지향적 특징을 가지고 있지만 UDP는 비연결성으로 신뢰성이 낮습니다. 그러나 순서화 되지 않은 데이터그램 서비스를 제공하는데 실시간 응용 및 멀티테스킹이 가능해서 빠른 요청과 응답이 필요한 실시간 서비스에 적합한 장점이 있습니다.