티스토리 뷰
반응형
멀티 프로세스(Multi process)
멀티 프로세스는 다수의 프로세서(CPU)가 협력적으로 하나 이상의 작업을 동시에 처리하는 것이다.
병렬처리의 개념이라고 생각할 수 있다.
스레드와 프로세스의 차이점으로는 주소공간이나 공유하는 점이 있고 없고의 차이가 있다.
thread: code, file, data를 공유한다.
따라서, 프로세스를 여러게 쓰는 경우에는 메모리의 구분이나 독립된 주소 공간을 가져야 할 때이다.
장점
- 하나의 프로세스가 장애가 나더라도 다른 프로세스에 영향을 미치지 않는다.
- 별도의 동기화 작업이 필요없다.
단점
- 독립된 메모리 영역으로 인해 작업량이 많아질수록
문맥교환
(Context Switching)이 많이 일어나 오버헤드가 발생해 성능저하가 발생할 수 있다.
멀티 스레드(Multi thread)
멀티 스레드는 하나의 프로세스에서 여러 스레드로 자원을 공유하며 작업을 나누어 수행하는 것이다.
예를 들어 여러개의 트래픽(traffic)이 발생해서 한번에 동일한 기능을 여러명이 사용할 경우에 사용되곤 한다.
장점
- 자원 효율성의 증대
- 시스템 처리율 향상
- 간단한 통신 방법으로 인한 응답시간 단축
- process의 경우는 IPC를 사용해야하지만 스레드는 힙영역을 공유해 데이터를 주고 받을 수 있다.
단점
- 자원의 공유로 인한 동기화 문제
- deadlock, bottle neck
- 프로그래밍 시에 설계에 시간이 많이 들고 디버깅이 어렵다.
- 하나의 스레드 문제가 전체에 영향을 준다.
참고
728x90
반응형
'CS' 카테고리의 다른 글
[OS] 5. System call(시스템 콜) (0) | 2022.08.29 |
---|---|
[OS] 3. CPU Scheduling (0) | 2022.08.23 |
[OS] 2. 스레드(Thread) (0) | 2022.08.23 |
[OS] 1. 프로세스 (0) | 2022.08.23 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- feign client
- 프론트엔드
- spring boot
- apache kafka
- cs
- K8S
- frontend
- Firebase
- zookeeper
- Linux
- consumer
- JPA
- rhel
- Data Engineering
- OS
- API
- apache
- KAFKA
- NextJS
- spring
- React
- broker
- Java
- 리액트
- Container
- Front
- Producer
- docker
- logback
- centos
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함
250x250