프로세스(process)란?
단순히 실행중인 프로그램 👉 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행중인 것을 말함
프로세스 구조
1. 프로그램에 사용되는 데이터와 메모리등의 자원
2. 스레드
스레드(thread)란?
프로세스 내에서 실제로 작업을 수행하는 주체를 의미!
멀티스레드란?
1. 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것을 의미
2. 일반적으로 하나의 프로세스는 하나의 스레드를 가지고 작업을 수행
멀티 프로세스란?
멀티 프로세스는 여러개의 CPU를 사용하여 여러 프로세스를 동시에 수행하는 것을 의미
멀티 프로세스와 멀티 스레드
공통점
멀티 스레드와 멀티 프로세스 모두 여러 흐름을 동시에 수행한다는 공통점이 있음
차이점
멀티 프로세스는 각 프로세스가 독립적인 메모를 가지고 별도로 실행되지만, 멀티 스레드는 각 스레드가 자신이 속한 프로세스의 메모리를 공유 한다는 점이 다름
멀티 프로세스의 장단점
장점
1. 각 스레드가 자신이 속한 프로세스의 메모리를 공유하므로, 시스템 자원의 낭비가 적음
2. 하나의 스레드가 작업을 할때 다른 스레드가 별도의 작업을 할 수 있어 사용자와의 응답이 좋아짐
단점
스레드가 서로 교체될 때 스레드 간의 문맥교환(context switching)이 발생하는데, 문맥교환은 시간이 길어질수록 멀티 스레딩의 효율이 떨어짐
👉 많은 양의 단순계산은 싱글 스레드로 동작하는게 효율적!
--많은 수의 스레드를 실행하는 것이 언제나 좋은 성능을 보이는 것은 아니라는 점을 유의--
ps) 문맥교환이란
- 컴퓨터에서 동시에 처리할 수 있는 최대 작업수(CPU 코어 수)보다 더 많은 스레드가 실행되면, 각 고어가 정해진 시간동안 여러 작업을 번갈아가며 수행하게 되는데, 이때 각 스레드가 서로 교체될 때 스레드 간의 문맥교환이 발생함.
- 문맥교환이란 현재까지의 작업 상태나 다음 작업에 필요한 각종 데이터를 저장하고 읽어오는 작업!
'CS' 카테고리의 다른 글
로컬환경에서 더 많은 메모리를 할당할 수 있는 이유 (0) | 2024.04.22 |
---|---|
POST 요청을 보낼 때 Authorization을 헤더에 넣는 이유 (0) | 2024.02.13 |
얕게 생각하고 경험에 바탕하는 객체지향(내 주관) (1) | 2024.01.28 |
CSR VS SSR (장단점, 개념, 나만의 로직정리) (0) | 2022.12.06 |
CORS (0) | 2022.10.11 |
댓글