[기술 면접] 멀티 스레드와 멀티 프로세스의 차이

ayboori·2023년 11월 6일
0

CS Study

목록 보기
10/22
post-custom-banner

스레드

  • 프로세스의 자원을 이용하여 실제로 작업을 수행하는 단위
  • 운영체제는 각 작업에 대한 스레드를 생성하여 관리

프로세스

  • 연산이나 데이터를 처리하기 위해 현재 실행 중인 작업이나 프로그램
  • 프로그램을 실행시키면 OS로부터 실행에 필요한 자원을 할당받아 프로세스가 된다
  • 자원 (프로그램 수행에 필요한 데이터와 메모리 등), 스레드로 구성되어 있음

멀티 스레드

  • 하나의 응용프로그램을 동시처리가 가능한 여러 작업 (스레드) 으로 분할하는 기법
  • 두 개 이상의 스레드가 번갈아 가면서 작업을 수행하여 동시에 두 작업이 처리되는 것처럼 느끼게 한다
  • 자원을 효율적으로 사용하고, CPU의 사용률을 향상시킨다
  • 싱글 스레드로 사용할 시 사용자의 요청 마다 새로운 프로세스를 생성해야 해서 효율성이 떨어진다.
  • 여러 스레드가 같은 프로세스 내에서 자원을 공유하면서 작업을 하기 때문에 동기화, 교착상태 등의 문제가 발생할 수 있다

멀티 프로세스

  • 하나의 응용프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 하는 기법 (=두 개 이상의 프로세서가 하나 이상의 작업을 동시에 처리하는 것)
  • 각 프로세스는 변수를 공유할 수 없다
    - IPC가 어렵고 수행한다고 해도 오버헤드가 크다
    • 프로세스 간의 context switch에 따른 과도한 작업량, 시간 소모의 문제점이 있다.
  • 하나의 프로세스가 수행 불가한 상태가 되더라도 다른 프로세스에 영향을 주지 않는다

프로세서

  • 컴퓨터 내부의 처리장치
  • 컴퓨터 내부에 포함된 하나의 모듈, CPU 칩 혹은 컴퓨터 자체

멀티 스레드와 멀티 프로세스의 차이

프로세스는 연산이나 데이터를 처리하기 위해 현재 실행 중인 작업이나 프로그램이다. 이때 이 프로세스의 자원을 이용하여 실제로 작업을 수행하는 단위를 스레드라고 한다. 멀티 스레드는 한 프로세스 내에서 두 개 이상의 스레드가 자원을 공유하며 작업을 나누어 수행하는 것이다. 멀티 프로세스는 두 개 이상의 프로세서가 하나 이상의 작업을 동시에 처리하는 것이다. 두 방법은 동시에 여러 작업을 수행한다는 점에서는 동일하지만, 멀티 스레드는 멀티 프로세스보다 적은 메모리를 사용하여 작업할 수 있지만 동기화, 교착상태 등의 문제가 발생할 수 있다. 멀티 프로세스는 멀티 스레드와 다르게 하나의 프로세스가 사용 불가 상태가 되어도 다른 프로세스에 영향을 주지 않는다.

profile
프로 개발자가 되기 위해 뚜벅뚜벅.. 뚜벅초
post-custom-banner

0개의 댓글