- 프로세스와 쓰레드 비교
- 운영체제는 프로세스마다 독립된 메모리 영역을 Code/Data/Stack/Heap의 형식으로 할당합니다.
- 각각 독립된 메모리 영역을 할당해주기 때문에 프로세스는 다른 프로세스의 변수나 자료에 접근할 수 없습니다.
- 이와 다르게, 스레드는 메모리를 서로 공유할 수 있습니다.
- 프로세스가 할당받은 메모리 영역 내에서 Stack 형식으로 할당된 메모리 영역은 다로 할당받고, 나머지 Code/Data/Heap 형식으로 할당된 메모리 영역을 공유합니다.
- 따라서, 각각의 스레드는 별도의 스택을 가지고 있지만 힙 메모리는 서로 읽고 쓸 수 있게 됩니다.
- 즉, 치킨집에서 각자 일하는 공간이 있지만, 같이 보는 업무 가이드(Code)가 있고, 주문도 같이 받고(Data), 손님이 오고가는 홀 공간도 같이 쓴다(Heap)는 점과 비슷합니다.
- 운영체제는 프로세스마다 독립된 메모리 영역을 Code/Data/Stack/Heap의 형식으로 할당합니다.
쓰레드는 운영체제의 스케줄러에 의해 독립적으로 관리될 수 있는 프로그래밍된 명령어의 가장 작은 흐름 입니다. 하나의 프로세스는 하나 이상의 쓰레드를 갖고 있습니다.
- 멀티 프로세스 : 하나의 운영체제 안에서 여러 프로세스가 실행되는 것
- 멀티 쓰레드 : 하나의 프로세스가 여러 작업을 여러 쓰레드를 사용해 동시에 처리하는 것
'TIL(Today I Learned)' 카테고리의 다른 글
TLI 87일 (23. 9. 12. 화) 최종프, 풀캘린더 기능 (0) | 2023.09.13 |
---|---|
TLI 86일 (23. 9. 11. 월) 최종프 (0) | 2023.09.12 |
TLI 84일 (23. 9. 7. 목) 최종프, aws, Tdd (0) | 2023.09.07 |
TLI 83일 (23. 9. 6. 수) 최종프, CI/CD, 코드 정리 (0) | 2023.09.06 |
TLI 82일 (23. 9. 5. 화) 최종프, 템플릿 조각 기능, 상단바 (0) | 2023.09.05 |
댓글