Multi Process & Multi Thread

yshjft·2022년 1월 4일
0

운영체제

목록 보기
4/8

멀티 프로세스

  • 특정한 작업을 처리하기 위해 프로세스를 여러개 만드는 것(여러개의 프로그램 실행)

  • 독립 적인 주소 공간으로 인해 안정성이 높다

  • but 프로세스간 전환 비용이 많이 들어 효율이 떨어진다.

    • 프로세스간 context switching은 비용이 비싸다. → CPU 레지스터 교체 & 캐시 메모리 초기화

멀티 스레드

  • 특정한 작업을 처리하기 위해 한 프로세스 안에서 스레드를 여러개 만드는 것

  • 자원 효율성 증대

    • 멀티 스레드는 프로세스를 생성하여 자원을 할당하는 시스템콜이 줄어들어 자원을 효율적으로 관리할 수 있다.
    • 스레드는 프로세스 내의 메모리를 공유하기 때문에 스레드간 데이터를 주고 받는 것이 간단하며 시스템 자원 소모 줄어듬
  • 처리 비용 감소 및 응답 시간 단축

    • 스레드간 통신 비용 줄어듬
    • 스레드간 전환 속도 빠름(stack을 제외한 나머지 영역 공유)
  • But 스레드간 자원 공유는 전역 변수를 이용하므로 함께 사용할 경우 충돌이 발생할 수 있다.
    동기화로 해결 → 자원에 대한 접근 순서 컨트롤 → 이로 인한 병목 현상 발생할 수 있으며 성능까지 저하됨

멀티 스레드 & 멀티 프로세스 정리

멀티 스레드

  • 적은 메모리 공간
  • 빠른 문맥 전환
  • 오류로 인해 전체 스레드가 종료 될 수 있는 문제
  • 자원을 동시 접근하여 발생하는 문제

멀티 프로세스

  • 독립적이기에 다른 프로세스에 영향을 주지 않는다
  • BUT 많은 메모리 공간 사용, 전환속도 느림

참고

profile
꾸준히 나아가자 🐢

0개의 댓글