일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Oracle 논리적 저장 구조
- 통계분석
- airflow 정리
- eda
- 데이터 분석
- git stash
- 랜덤포레스트
- 추천시스템
- 리눅스 환경변수
- 의사결정나무
- Spark jdbc parallel read
- BFS
- 오라클 데이터 처리방식
- Decision Tree
- enq: FB - contention
- git init
- SQL
- git 기본명령어
- 데이터분석
- Spark 튜닝
- Collaborative filtering
- Python
- 알고리즘
- CF
- Spark Data Read
- 앙상블
- Linux
- 배깅
- 네트워크
- Oracle ASSM
- Today
- Total
[Alex] 데이터 장인의 블로그
[OS] 캐시메모리와 버퍼메모리 정리(+ 레지스터) 본문
캐시메모리
속도 차이
CPU (빠름) > 메모리 (느림)
- CPU는 상대적으로 빠르고 , 메모리는 상대적으로 속도가 느리다.
- CPU는 빠르게 일처리를 마치고 있는데, 메모리가 느려서 이 일에 필요한 데이터를 넘기는 속도를 맞추지 못해 발생하는 문제(병목 현상)을 해결하기 위해 사용하는 것이 캐시메모리.
- CPU와 메모리 중간에서 데이터를 미리 들고 서있다고 생각하면 된다.
캐시메모리 간단 정리.
CPU가 메모리에 접근하는 횟수를 줄여 성능을 향상하는 방법.
- 즉, 자주 사용하는 데이터를 CPU와 더 가까운 캐시메모리에 '잠시' 저장함으로써, 필요할 때마다 꺼내서 바로 사용할 수 있도록 하는 방법. +) 보통 CPU에 cache memory는 2~3개 사용 됨 (L1, L2, L3 캐시 메모리)
- CPU 내 존재할수도, CPU외에 존재할 수도 있음.
Cache Hit, Miss
- CPU가 기억장치의 데이터를 읽을 때, cache에 존재하는지 확인⇒ CPU는 cache에서 해당 데이터 읽음⇒ 주기억장치에서 데이터를 읽어서 사용 & cache에 적재시킴
- 2) cache에 존재 X (miss)
- 1) cache에 데이터가 존재 (hit)
Cache Hit (cache에 필요한 데이터가 있는 경우)
- Hit rate (적중률)
- 요청한 데이터를 cache 메모리에서 찾을 확률
- cache 메모리의 성능은 적중률에 의해 결정 됨
Cache Miss (cache에 찾는 데이터가 없는 경우)
- Miss rate (실패율)
버퍼메모리 간단 정리.
버퍼란 컴퓨터의 주기억 장치와 주변장치 사이에서 데이터를 주고받을 때 정보를 임시로 기억해 두고 사용할 수 있는 공간입니다. 즉, 속도가 비교적 빠른 쪽에서 데이터가 느린 쪽으로 갈 때 데이터 손실이 나지 않게 합니다.
만약 타자 속도가 2,000인 사용자가 컴퓨터에 빠른 속도로 키보드로 타자를 입력한다고 가정해봅니다. 만약 컴퓨터의 성능이나 상황에 따라 이 속도에 맞춰 데이터를 입력하지 못하는 상황에 처한다면, 타이핑되는 데이터를 '유실'할 가능성이 존재해버립니다. 이 문제를 해결하기 위해 버퍼메모리는 타이핑된 정보를 일시적으로 보관합니다.
- 일시적인 데이터 저장소로 이용하는 곳 = 버퍼메모리
- 캐시메모리와 비슷한 역할을 하지만 데이터가 유실이 나지 않게 만들어준다는 점에서 차이가 납니다.
컴퓨터의 주기억 장치와 주변장치 사이에서 데이터를 주고받을 때 각 장치들 사이에 존재하는 전송되는 속도 차, 또는 시간 차로 인해 발생되는 문제점을 해결할 수 있는 고속의 임시 기억장치를 말합니다.
즉, 데이터의 처리속도나 처리단위, 데이터 사용시간이 서로 다른 두 장치나 프로그램 사이에서 데이터를 주고받기 위한 목적으로 사용되는 임시 기억장소 입니다.
레지스터
레지스터는 CPU가 요청을 처리하는 데이터의 임시저장 공간. 공간은 작고 가격은 비싸지만 CPU에 직접 연결되어 있어 연산속도가 매우 빠름. CPU는 자체적으로 데이터를 저장할 수 없기 때문에 레지스터를 이용해서 연산처리 및 데이터 주소 지정을 도움
참조
https://velog.io/@dbswl31024/Cache-Memory-%EC%BA%90%EC%8B%9C-%EB%A9%94%EB%AA%A8%EB%A6%AC
'Linux&OS' 카테고리의 다른 글
[운영체제] 메모리 구조 정리 (0) | 2022.04.05 |
---|---|
[Linux] grep, awk를 활용한 kill process (1) | 2022.03.21 |
[Linux] Bash 쉘스크립트 사용법 정리 (0) | 2021.12.12 |
[Linux] 데이터 엔지니어링을 위한 sed, xargs, nohup, scp 기본 명령어 정리 (0) | 2021.12.11 |
[Linux] 데이터 엔지니어링을 위한 awk 명령어 정리 (0) | 2021.12.11 |