Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- KebabCase
- 카멜케이스
- PascalCase
- camelcase
- ServerSocket
- udp
- tcp
- 스네이크케이스
- DatagramPacket
- 파스칼케이스
- Socket
- 명명규칙
- NamingRule
- 케밥케이스
- DatagramSocket
- UDP통신
- SnakeCase
- Java
Archives
- Today
- Total
MATT's
Process와 Thread 본문
<Memory 구조>
- code 영역
- 실행 명령을 포함하는 코드들이 저장
- data 영역
- static / global 변수들이 저장
- heap 영역
- 동적 메모리 영역
- Object 클래스를 상속받는 변수 들이 저장
- stack 영역
- 지역 변수, 매개 변수, 반환 값 등 일시적인 데이터 들이 저장되는 영역
<컨텍스트 스위칭>
- 여러 프로세스가 실행을 위해 cpu에 번갈아가며 적재되는 동작
- 프로세스가 계속 컨텍스트 스위칭을 하는게 부담스럽기 때문에 스레드가 생김
<스레드>
- 경량화된 프로세스
- 프로세스를 쪼개어 놓은 것
- 한 프로세스 내에서 구분 지어진 실행 단위
- 같은 부모 프로세스를 갖는 스레드 끼리는 자원 (code, data, heap, stack)을 공유함
- 컨텍스트 스위칭 시에 공용으로 사용될 자원은 그대로 두고 변경되기 때문에 훨씬 효율적 (ex. 회의실 이용 후에 tv랑 화이트보드는 두고 나가는 것과 동일)
<Multi-process>
- 각 프로세스는 독립적
- IPC를 사용하여 프로세스 간의 통신을 해야함
- 자원 소모적, 개별 메모리 차지
- context-switching 비용이 큼
- 프로세스 간의 동기화 작업이 필요하지 않음 (독립적으로 동작해야하기 때문)
<Multi-thread>
- thread 끼리 연결되어 있음
- 공유된 자원으로 통신 비용 절감 (메모리를 좀 더 효율적으로 이요 ㅇ가능)
- context-switching 비용이 적음
- 공유 자원 관리가 필요함
<Multi-core>
- core : cpu 안에 프로세스를 올릴 수 있는 장치
- 동시성
- core 한 개가 여러 개의 프로세스를 빠른 속도로 전환하며 처리하여 마치 동시에 처리되는 것처럼 보이게 하는 것
- 병렬 처리
- core 여러 개가 속도 증가를 위해 한 개의 프로세스를 나누어 처리하는 것
'CS' 카테고리의 다른 글
JVM과 Garbage Collector (0) | 2022.11.02 |
---|