저우즈밍 님의 "JVM 밑바닥까지 파헤치기" 책을 정리한 포스팅 입니다
1. 컴퓨터가 여러 작업을 동시에 수행하는 이유
- 연산 성능과 저장 및 통신 성능의 격차가 크기 떄문
- 프로세서가 요청한 자원의 대기 시간을 활용
- 서버는 여러 클라이언트 요청을 동시에 처리하므로 동시 처리가 필수적
JVM은 동시성 프로그래밍의 어려움을 낮춰줌
- 하드웨어 자원 분배
- 동시성 프로그래밍
2. 하드웨어의 효율과 일관성
캐시
- 메모리 I/O는 연산작업에 비해 매우 느림
- 이를 보완하고자 메모리와 CPU 사이의 계층을 둠
- 필요한 데이터를 캐시에 복사해 두어 작업을 빠르게 수행
- 작업이 완료되면 결과 데이터를 캐시에서 메모리로 동기화
공유 메모리 멀티프로세스 시스템
- 프로세서별 캐시는 각각 존재
- 캐시 일관성 프로토콜
- 공유 공간인 메인 메모리와 동기화를 수행
- MSI, MOSI, MESI, Synapse, Firefly
비순차 실행 최적화
- 프로세서가 명령어를 실행하는 순서가 입력 코드에 기술된 명령어 순서와 다를 수 있음
- 프로세서의 컴퓨팅 능력을 끌어냄
'Java' 카테고리의 다른 글
[JVM 밑바닥까지 파헤치기] 12-3. 자바 메모리 모델과 스레드: 스레드 (1) | 2024.12.26 |
---|---|
[JVM 밑바닥까지 파헤치기] 12-2. 자바 메모리 모델과 스레드: 자바 메모리 모델 (1) | 2024.12.26 |
[JVM 밑바닥까지 파헤치기] 11-2. 백엔드 컴파일과 최적화: JIT 컴파일러 (0) | 2024.12.25 |
[JVM 밑바닥까지 파헤치기] 11-1. 백엔드 컴파일과 최적화: 백엔드 컴파일 (0) | 2024.12.25 |
[JVM 밑바닥까지 파헤치기] 10-2. 프런트엔드 컴파일과 최적화: 편의 문법 (0) | 2024.12.25 |