Multi Process와 Multi Thread, Thread Safe, Context Switching

Lee HyeongJong·2022년 9월 23일
0

Multi Process

하나의 프로그램을 여러개의 Process로 나누어 처리하는 방식
장점 : 하나의 Process가 잘못되어도 다른 Process가 처리하기 때문에 문제가 발생되지 않는다
단점 : Context Switching 비용이 발생한다

Multi Thread

프로그램을 여러개의 Thread로 구성하고 작업을 처리한다
장점 : 시스템 자원 소모 감소, 처리비용 감소(실행속도향상), 쓰레드간 자원 공유(stack을 제외한 영역)
단점 : 디버깅이 어렵다, 동기화 이슈발생, 하나의 쓰레드의 오류로 전체 프로세스 오류

Thread Safe

멀티 스레드 프로그래밍에서 일반적으로 어떤 함수나 변수, 혹은 객체가 여러 스레드로부터 동시에 접근이 이루어져도 프로그램의 실행에 문제가 없음을 뜻한다. 하나의 함수가 한 스레드로부터 호출되어 실행 중일 때, 다른 스레드가 그 함수를 호출하여 동시에 함께 실행되더라도 각 스레드에서의 함수의 수행 결과가 올바로 나오는 것으로 정의한다.

Context Switching

CPU에서 여러 Process를 돌아가면서 작업을 처리하는데 이를 Context Switching 이라고 한다
동작중인 Process가 대기 시 Context를 보관하고 대기하다 다시 실행 시 걸리는 시간을 의미한다

profile
코딩을 시작해보자

0개의 댓글