[운영체제] 멀티 프로세스 vs 멀티 스레드

혀니앤·2022년 9월 14일
0

컴퓨터 지식 공부

목록 보기
2/10

✔️ 멀티 프로세스 (Mulit-Process)

  • 하나의 프로그램을 여러 개의 프로세스로 나누어 작업 처리
  • 장점
    • 여러 프로세스 중에 하나에 문제가 생기면 해당 프로세스만 종료됨
  • 단점
    • Context Switching 과정에서의 오버헤드 : 캐시 메모리 초기화 등에서의 시간이 오래걸림, 공유 데이터가 없기 때문에 계속해서 캐시에 새로운 데이터를 가져와야하기 때문
    • 프로세스들 간에 IPC를 사용해서만 통신할 수 있음

✔️ 멀티 스레드 (Multi-Thread)

  • 하나의 프로세스 안에서 여러 개의 스레드를 사용하여 작업 처리
  • 장점
    • 메모리 효율 : 메모리 공간과 자원 소모 감소
    • 통신 편이 : 전역 변수 공간, Heap을 사용해서 다른 스레드와 통신할 수 있음
    • Context Switching 빠름 : 캐시 메모리 초기화할 필요 없음
    • Throughput 감소, 응답시간 감소, 자원 사용량 감소
  • 단점
    • 동기화 문제 : 각 스레드가 동일한 자원에 동시에 접근하는 문제 발생 ⇒ 작업 처리 순서 정의 ⇒ 병목현상 ⇒ Lock 을 이용하여 해결
    • 하나의 스레드에 문제가 생기면 전체 프로세스에 영향을 끼침

✔️ 멀티 프로세스 vs 멀티 스레드

멀티 프로세스멀티 스레드
메모리메모리 큼메모리 작음
Context Switching느림빠름
종료시다른 프로세스에 영향 X다른 스레드에 영향 O
통신복잡 (IPC)간단 (Heap, Data 사용)
동기화필요 없음 (각각 다른 자원 사용)필요함 (병목 현상 발생 가능)

참고

https://velog.io/@dbsrud11/CS-면접-질문-정리#️-os-thread-vs-process

https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html

profile
일단 시작하기

0개의 댓글