메모리(RAM) : 컴퓨터가 수행해야할 명령어와 데이터를 쌓는 공간
프로세스(CPU) : 메모리에서 명령어와 데이터를 읽어 계산하는 공간
한 덩어리의 데이터를 전송하는 전선 모음
ex)
프로그램 카운터가 가리키는 메모리 주소에서 명령어를가져온다.
프로그램 카운터를 1 증가시킨다.
가져온 명령을 수행한다.
무한반복한다.
CPU 클락
CPU가 1초 동안 실행하는 기본 연산이 몇 개인지 나타내는 단위
CPU 아키텍쳐
CPU의 아키텍처가 다르다는 것은 명령어 집합이 다르며, 명령어에 숫자 번호를 매기는 방법도 다르다는 것을 의미한다.
따라서 아키텍처가 다른 다비아스 간에는 프로그램이 호환되지 않는다.
리틀 엔디언과 빅 엔디언
에뮬레이터
- 특정 장치를 위해 설계된 코드를 다른 장치에서 실행하고 싶을 때 사용
- 목표로하는 기계를 흉내내는 프로그램
- 그 기계와 동일한 CPU, RAM, 기타 하드웨어의 가상 기계 구성
운영체제
스크립트 언어
역어셈블리어와 역공학
오픈 소스 소프트웨어
RAM에 접근 횟수를 최소화하는 방법을 연구한 결과
시간 인접 주소
어떤 메모리 주소에 접근한 경우, 잠시 후 같은 주소에 다시 접근 할 가능성이 높다.
공간 인접 주소
어떤 메모리 주소에 접근한 경우, 잠시 후 인접한 주소에 접근할 가능성이 높다.
이를 근거로 조만간에 접근할 가능성이 높은 메모리 주소들을 예측하여 CPU 레지스터에 저장해둔다. 그럼 연산량을 줄일 수 있다. 그러나 이렇게 되면 레지스터 용량이 더 커져야 하는데 현실적으로 불가능하다.
1차 캐시 메모리(L1)
2차 캐시 메모리(L2)
1차 메모리와 2차 메모리
RAM이 가득 찼을 때, 당장 사용하지 않아 우선순위가 낮은 데이터는 하드 디스크에 저장된다. (문제는 하드 디스크가 느리다는 것)
RAM을 1차 메모리, 하드 디스크를 2차 메모리라고 한다.
CPU는 2차 메모리에는 접근할 수 없다. CPU가 쓰기 위해서는 2차 메모리에 있는 데이터가 1차 메모리로 복사되어야 한다.
만약 RAM 이 초가되면 1차 메모리와 2차 메모리가 끊임없이 소통하는데 2차 메모리 속도가 느려서 성능이 잘 나오지 않는다.
외부 저장 장치와 3차 저장 장치