imort 박뉴프

멀티프로세스(Multi Process)와 멀티스레드(Multi Thread) 본문

Develop/Operating System

멀티프로세스(Multi Process)와 멀티스레드(Multi Thread)

박뉴프 2022. 8. 5. 13:41

2022.08.05

프로세스

-운영체제에서 자원을 할당받는 작업의 단위

-구조적으로 코드영역,데이터영역,스택영역,힙영역을 갖는다.

-최소 1개 이상의 스레드를 갖는다.

-한 프로세스는 다른 프로세스에 접근할수 없다. 접근하기 위해서는 프로세스간 통신 = IPC(Inter-Process Communication)를 사용해야한다.

 

멀티 프로세스

-여러 개의 프로세스가 하나의 작업을 처리하는 것

-프로세스 하나에 문제가 생겨도 다른 프로세스에 영향을 끼치지 않는다.

-그러나 프로세스끼리 공유하는 데이터 공간이 없기 때문에 문맥교환(Context Switching) 과정에서 캐시 초기화하고 다시 불러오는 과정이 필요하다. 문맥교환과정에서 오버헤드를 일으킬 수 있다. 

 

 

스레드

-스레드란 프로세스내에서 수행되는 흐름의 단위

-구조적으로 스택영역만 따로 할당받고 코드영역,데이터영역, 힙영역을 공유한다.

-프로세스보다 가볍다.

-한 스레드가 프로세스 자원을 변경하면 다른 이웃 스레드들도 바로 변화를 볼 수 있다.

 

멀티스레드

-여러 개의 스레드에서 하나의 작업을 처리하는 것

-시스템 자원의 효율성이 증대된다.

-시스템 처리 비용이 감소한다.

-통신방법이 상대적으로 간단해 응답시간이 단축된다.

-멀티 스레드의 경우에 동기화 문제가 발생하기 쉽다.

-하나의 스레드에 문제가 발생하면 전체 프로세스가 영향을 받는다.

 

 

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

1. 멀티 스레드는 멀티 프로세스보다

-적은 공간을 차지한다.

-문맥전환이 빠르고 간단하다.

-서로 간 데이터를 통신하기가 쉽다.

-자원이 효율적으로 관리된다.

 

2. 멀티 프로세스는 멀티 스레드보다

-전역변수로 인한 동기화 문제가 적다

-하나에 문제가 생겨도 전체 프로세스의 문제가 되지 않아 안정성이 높다.

-각각의 장단점이 있으므로 적용하는 시스템에 맞추어 선택하고 적용해야한다.

 

 


🔍 블로그 https://parkmj236.tistory.com

🔍 Notion 이력서 https://branch-frog-b20.notion.site/Park-Minji-e4fa8aa44b8c48b582a9082515dbc15e

🔍 Github https://github.com/Park-New-project/Projects


참고

https://parkmj236.tistory.com/4

 

로드밸런싱(Load Balancing)과 로드밸런서(Load Balancer)

2022.07.02 인프라 업그레이드 방법 -Scale-up 서버동작을 빠르게 하기 위해 하드웨어 성능을 높임 -Scale-out 여러대의 서버가 나누어 일함 (비용이 적고 무중단 서비스 제공가능) Scale-out 하는 방

parkmj236.tistory.com

https://parkmj236.tistory.com/11

 

교착상태(Deathlock)

교착상태(Deathlock) -두 개 이상의 프로세스가 자원 할당을 무한정 대기하는 상태이다. 교착상태 발생조건 상호배제 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 한다. 점유와 대

parkmj236.tistory.com

 

Comments