둥근돔
검색
메뉴
고정 헤더 영역
글 제목
메뉴
좋아요
-
댓글달기
-
공유하기
메뉴 레이어
둥근돔
메뉴 리스트
홈
태그
방명록
분류 전체보기
(47)
검색 레이어
둥근돔
검색 영역
컨텐츠 검색
블로그 내 검색
상세 컨텐츠
본문 제목
멀티 프로세스와 멀티 쓰레드
카테고리 없음
by
둥근돔
2023. 11. 6. 15:34
본문
좋아요
-
댓글달기
0
멀티 프로세스(Multi Process)란?
개념
하나의 프로그램을 여러 개의 프로세스로 구성하여,
각 프로세스가 하나의 작업을 처리하는 것을 의미한다.
장점
하나의 프로세스에 문제가 생겨도, 전체적인 프로그램은 동작한다.
단점
프로세스 끼리는 공유하는 메모리가 없기 때문에, Context Switching 에 많은 비용이 발생한다.
프로세스의 Context Switching 에는,
단순히 CPU 레지스터 교체 뿐만 아니라
RAM과 CPU 사이의 캐쉬 메모리도 초기화되므로 오버헤드가 크다.
멀티 쓰레드(Multi Thread)란?
개념
하나의 프로그램을 여러 개의 쓰레드로 구성하고, 각 쓰레드가 하나의 작업을 처리하는 것을 의미한다.
프로세스는 한 개일수도, 여러 개일수도 있다.
장점
자원의 효율성 증대
많은 프로세스를 생성함으로써 각 프로세스에 자원을 할당하는 작업(시스템 콜)이 줄어든다.
Context Switching 처리 비용 감소
쓰레드는 프로세스 메모리의 코드/데이터/힙 영역을 공유하고 있으므로,
Context Switching 이 발생할 때, Stack 영역만 처리하면 된다.
응답 속도 향상
쓰레드는 프로세스 메모리의 코드/데이터/힙 영역을 공유하고 있으므로,
프로세스 간의 통신(IPC)보다 쓰레드 간의 통신의 응답 속도가 빠르다.
단점
쓰레드 하나에 문제가 생기면, 모든 프로세스가 종료된다.
자원을 공유하기 때문에 필연적으로 동기화 문제가 발생한다.
쓰레드의 스케줄링은 운영체제가 관리하지 않기 때문에,
동기화 문제를 해결하기 위해, 프로그래머의 주의 깊은 설계가 필요하다.
공유하기
게시글 관리
둥근돔
추가 정보
인기글
최신글
티스토리툴바