728x90
반응형
프로세스
- 운영체제로부터 자원을 할당받은 작업의 단위
- 메모리에 올라와 실행되고 있는 프로그램의 인스턴스
- 컴퓨터에서 연속적으로 실행되고 있는 프로그램
- 각 프로세스는 별도의 주소 공간에서 실행되고 프로세스끼리 자원을 공유하지 않음
프로세스 특징
- 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당
- 기본적으로 프로세스 당 최소 1개의 스레드를 가지고 있음
- 각 프로세스는 별도의 주소 공간에서 실행되며 한 프로세스는 다른 프로세스의 변수, 자료에 접근 불가
- 한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스 간의 통신을 사용
스레드
- 프로세스가 할당 받은 자원을 이용하는 실행 흐름의 단위
- 하나의 프로세스 안에서 여러 가지 작업들 흐름이 동시에 진행되는 것을 스레드라 하며 여러 개가 있는 경우 멀티(다중) 스레드라 한다.
스레드 특징
- 프로세스 내에서 각각 Stack만 따로 할당 받고, Code, Data, Heap 영역은 공유
- 한 프로세스 내에서 동작되는 여러 실행의 흐름으로 프로세스 내의 주소 공간, 자원들을 같은 프로세스 내에 공유하면서 실행
- 같은 프로세스 안에 있는 여러 스레드 들은 같은 힙 공간을 공유
- 각각의 스레드는 별도의 레지스터, 스택을 갖고 있지만 힙 메모리는 서로 읽고 사용 가능
- 스레드가 프로세스 자원을 변경하는 경우 다른 스레드도 그 변경 결과 확인 가능
멀티 프로세스
- 하나의 응용 프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 하는 것
- 장점 :
- 여러 개의 자식 프로세스 중 하나에 문제가 발생해도 다른 자식 프로세스에 영향이 확산되지 않음
- 간단하게 구현 가능
- 각 프로세스들이 독립적으로 동작(자원이 서로 다르게 할당됨) 하여 안정적
- 단점 :
- 멀티 스레드 보다 많은 메모리, CPU 시간을 차지
- 작업량이 많을수록 오버헤드가 발생하고 Context Switching으로 인한 성능 저하 우려
- 프로세스 간의 통신을 하기 위해 IPC를 통해야함
- 장점 :
멀티 스레드
- 하나의 응용 프로그램을 여러 개의 스레드로 구성하여 각 스레드가 하나의 작업을 처리하도록 하는 것
- 장점 :
- 시스템의 자원, 처리 비용 감소(실행 속도 상승)
- Context Switching이 빠름( 스레드는 Stack 영역만 처리하면 되기 때문)
- 스레드 간의 자원을 공유하고 있기 때문에 통신의 부담이 적어 응답 시간이 빠름
- 단점 :
- 스레드가 개별로 유기적으로 움직이고 있기 때문에 프로그램 테스트, 디버깅이 어려움
- 스레드 간의 데이터 공유 시 동기화 문제 발생
- 하나의 스레드 오류로 전체 프로세스에 문제 발생
- 하나의 스레드 오류로 전체 프로세스에 문제 발생
- 스레드를 많이 사용하는 경우 오버헤드 발생
- 장점 :
728x90
반응형
'백수 > 컴퓨터구조' 카테고리의 다른 글
15. 데드락이 무엇이고, 해결방법에 대해 설명해 보세요 (0) | 2023.08.04 |
---|---|
일반PC, 서버 구분 (0) | 2023.07.06 |
컴퓨터 구조 기초 1 (0) | 2023.06.26 |
HTTP (0) | 2023.06.12 |
컴퓨터 기초 13 (0) | 2023.01.18 |