캐시 메모리를 사용하면 컴퓨터의 성능이 향상되는 이유
지역성(Locality)
- 프로그램이 메모리에 접근할 때, "특정 부분을 집중적으로 사용"하는 경향
시간적 지역성(Temporal Locality)
- 한 번 접근된 데이터는 가까운 미래에 다시 접근될 가능성이 높다.
- ex) 루프 내에서 반복적으로 사용되는 변수
공간적 지역성(Spatial Locality)
- 메모리의 특정 주소에 접근한 후, 그 주변 주소에 있는 데이터에 접근될 가능성이 높다
- ex) 배열, 연속적인 메모리 블록 등
캐시 메모리는 지역성 원리를 활용하여, 자주 사용되거나 연속적으로 사용될 가능성이 높은 데이터를 미리 캐시에 저장한다. 이로 인해 CPU는 필요한 데이터를 캐시에서 빠르게 찾을 수 있다.
메모리 계층구조
L0 : 레지스터 파일
L1 ~ L3 : CPU 내에는 L1, L2 캐시가 있고 L3까지 있을 수 있다.
L4 : 메인 메모리
L5 : 하드디스크, SSD 등 로컬 저장장치
L6 : 원격 저장장치
- 한 레벨의 저장장치는, 하위 레벨의 캐시 역할을 한다.
- ex ) 레지스터 파일은 L1의 캐시, 메인메모리는 로컬저장장치의 캐시이다.
- 피라미드의 위로 올라갈수록 "작고, 빠르고, 비싸다"
- 피라미드의 아래로 내려갈수록 "크고, 느리고, 싸다"
- 물리학적인 이유로, 큰 저장장치들이 작은 저장장치보다 느린 속도를 갖는다.
프로세스와 쓰레드의 차이점
정의 - 프로세스 : 프로그램의 실행중인 인스턴스이다. 자체 주소공간, 메모리 등을 가진다.
정의 - 쓰레드 : 프로세스 내부의 공유 메모리 단위이며, 작업을 효율적으로 병렬 실행 가능하게 한다.
자원 공유 - 프로세스 : 프로세스는 독립적인 메모리 공간과 자원을 가지기 때문에, 프로세스간 자원 공유는 IPC 매커니즘을 통해 이루어진다.
자원 공유 - 쓰레드 : 같은 프로세스 내의 쓰레드들은 코드, 데이터, 시스템 자원을 공유한다.
IPC(Inter-Process Communication, 프로세스 간 통신)
- 프로세스들 사이에 서로 데이터를 주고받는 행위나 방법 또는 경로
B-Tree 인덱스를 사용할 때와, 사용하지 않을 때의 시간 복잡도
- B-Tree 사용 시간 복잡도 : O(logN), N은 DB 내 레코드 수이다.
- B-Tree 미사용 시간 복잡도 : O(N), 선형 검색을 수행해야 한다.
-> 데이터 양이 많을수록 B-tree 인덱스를 사용하는 것이 성능 면에서 훨씬 유리하다.
운영체제(Operation System)
- 하드웨어와 소프트웨어 사이에 위치한 소프트웨어 계층.
- 응용프로그램이 하드웨어를 제어하려면 언제나 운영체제를 통해서 해야 한다.
운영체제의 두 가지 주요 목적
- 제멋대로 동작하는 응용프로그램들이 하드웨어를 잘못 사용하는 것을 막기 위해
- 응용프로그램들이 단순/균일한 매커니즘을 사용하여, 복잡하고 매우 다른 저수준 하드웨어를 조작할 수 있도록 하기 위해
네트워크는 일종의 입출력 장치이다
- 개별 시스템의 관점에서 볼 때, 네트워크는 입출력 장치로 볼 수 있다.
- 메인 메모리로부터 네트워크 어댑터로 데이터를 복사하고, 네트워크를 통해 다른 컴퓨터로 이동된다. 다른 컴퓨터는 이 데이터를 읽어서 자신의 메인메모리에 복사한다. 이 일련의 과정을 입출력 기능이라고 볼 수 있다.
'크래프톤 정글 > TIL' 카테고리의 다른 글
[크래프톤 정글 5기] week03 알고리즘 주차 열다섯번째 날, DP, 그리디, LCS (0) | 2024.04.04 |
---|---|
[크래프톤 정글 5기] week02 알고리즘 주차 열네번째 날, 최소 스패닝 트리, 프림 알고리즘, 이분 그래프 (0) | 2024.04.03 |
[크래프톤 정글 5기] week02 알고리즘 주차 열두번째 날, 다익스트라 알고리즘(최단 경로 알고리즘), B-Tree (0) | 2024.04.01 |
[크래프톤 정글 5기] week02 알고리즘 주차 열한번째 날, 파이썬 나눗셈, 위상 정렬 (0) | 2024.03.31 |
[크래프톤 정글 5기] week02 알고리즘 주차 아홉번째 날, 분할 정복, 뮤터블, 그래프, 트리, DFS/BFS, 이진검색트리, 서로소집합 (2) | 2024.03.29 |