-
CPU / RAM
CPU(중앙처리장치) = 연산
CPU가 들고있는 저장장치 = 레지스터
RAM(Random Access Memory)
저장 인덱스
캐시(cache)
데이터를 CPU에 더 가까운곳에 두고 사용
CPU의 레지스터 (캐시 메모리)= RAM에 비하면 캐시
RAM의 데이터를 가져오는 속도보다 CPU의 계산속도가 빠름
반도체
전류가 흐르면 도체 / 안흐르면 부도체
반도체 전류가 흐를수도 있고 안흐를수도 있다
흐르면 1, 안흐르면 0
bit
2bit
00 = 0
01 = 1
10 = 2
11 = 3
이진수를 십진수로(인간이 읽기 쉽게) = 파싱
8bit
0~127까지 알파벳 등을 대응해서
아스키 코드
8bit = 1Byte
RAM 공간 하나 = 1Byte
1024Byte = 1KB
1024KB = 1MB
1024MB = 1GB
CPU가 한번에 가져올수있는 데이터
32bit = 4Byte
64bit = 8Byte
RAM(주기억장치) 빠르지만 휘발성
HDD(보조기억장치) 하드디스크는 RAM보다 훨씬 느림
HDD에 접근하지 않는걸 I/O(input/output)가 발생하지 않았다
프로그래밍 할때는 HDD에 최대한 가지 않게
HDD가 찾아가는 과정 = seek
시퀀셜(Sequential, 순차적) 엑세스 = 풀스캔 = 처음부터 전부 찾기(데이터가 1개라는 보장이 없을때)
랜덤 엑세스 = 데이터가 여러개라면 데이터 군집화하고 목차(인덱스)를 만들어두고 찾기
데이터가 너무 많아서 인덱스가 너무 많으면(15% 이상) 풀스캔이 나을수도 있다
제일 좋은건 RAM에 데이터를
데이터를 찾았는데 RAM에 저장할 공간이 없다면 RAM에서 가장 오래된 데이터를 HDD로 (LRU)
가상메모리 = HDD 일부를 메모리처럼 보고 저장
commit = 영구히 기록