Home interview - operated
Post
Cancel

interview - operated

프로세스, 스레드 차이
  • 프로세스
    • 운영체제로부터 자원을 할당받는 작업의 단위
    • 프로세스 간의 통신은 IPC(Inter-Process Communication)을 사용
    • 프로세스는 각각 독립된 메모리 영역을 할당받는다.
    • 프로세스 간의 전환 속도가 느리다.
  • 스레드
    • 프로세스 내에서 실행되는 여러 흐름의 단위
    • 스레드는 프로세스 내의 메모리를 공유
    • 스레드 간의 전환 속도가 빠르다.
    • 스레드는 프로세스 내의 메모리를 공유하기 때문에 데이터를 주고 받는 것이 간단하다.
멀티 프로세스, 멀티 쓰레드 차이
  • 멀티 프로세스
    • 여러 개의 프로세스가 동시에 실행되는 것
    • 여러 개의 자식 프로세스 중 하나에 문제가 발생하면 그 자식 프로세스만 죽어 다른 영향이 확산되지 않음
  • 멀티 쓰레드
    • 하나의 프로세스에 여러 개의 스레드가 동시에 실행되는 것
    • 스레드는 프로세스 내의 메모리를 공유
    • 스레드 간의 전환 속도가 빠르다.
    • 스레드는 프로세스 내의 메모리를 공유하기 때문에 데이터를 주고 받는 것이 간단하다.

프로세스 간의 통신보다 스레드 간의 통신 비용이 적어 멀티 쓰레드를 사용하는게 낫다.

뮤텍스, 세마포어 차이
  • 뮤텍스
    • 상호배제를 위한 동기화 기법
    • 뮤텍스를 획득한 스레드만이 임계영역에 접근 가능
    • 뮤텍스를 획득한 스레드가 뮤텍스를 해제하기 전까지 다른 스레드는 대기
  • 세마포어
    • 동기화 기법 중 하나로, 상호배제와 동기화를 위해 사용
    • 세마포어는 뮤텍스와 달리 여러 스레드가 동시에 임계영역에 접근 가능
    • 세마포어는 뮤텍스와 달리 카운트를 가지고 있어, 카운트가 0이면 대기하고, 1이상이면 통과

주로 뮤텍스는 동기화 대상이 하나일때, 세마포어는 동기화 대상이 여러개일때 사용한다.

데드락이란?
  • 두 개 이상의 프로세스나 스레드가 서로 상대방의 작업이 끝나기만을 기다리고 있어 무한 대기 상태에 빠지는 현상
  • 데드락을 해결하기 위해선 4가지 조건을 하나라도 제거하면 된다.
    • 상호배제(Mutual Exclusion)
    • 점유대기(Hold and Wait)
    • 비선점(No Preemption)
    • 순환대기(Circular Wait)
동기와 비동기 차이
  • 동기
    • 요청과 그 결과가 동시에 일어남
    • 요청한 작업이 끝날 때까지 대기

즉, 처리과정이 직렬로 이루어짐

  • 비동기
    • 요청과 그 결과가 동시에 일어나지 않음
    • 요청한 작업이 끝나지 않아도 다른 작업을 수행할 수 있음
    • 콜백함수를 통해 결과를 받을수 있음

즉, 처리과정이 병렬로 이루어짐

블로킹과 논블로킹 차이
  • 블로킹
    • 작업이 완료될 때까지 제어권을 가지고 있음
    • 작업이 완료되기 전까지 다른 작업을 수행할 수 없음
  • 논블로킹
    • 작업이 완료되지 않아도 제어권을 가지고 있지 않음
    • 작업이 완료되지 않아도 다른 작업을 수행할 수 있음
This post is written by PRO.