CPU가 직접 접근할 수 있는 기억 장치
메모리 보호나 캐시 관리 등 CPU가 메모리에 접근하는 것을 총 관리해주는 하드웨어
가상 메모리 주소 -> 실제 메모리 주소로 변환
프로세스는 독립적인 메모리 공간을 가져야 되고, 자신의 공간만 접근해야 한다.
따라서 한 프로세스에게 합법적인 주소 영역을 설정하고, 잘못된 접근이 오면 trap을 발생시키며 보호한다.
base
와 limit
레지스터를 활용한 메모리 보호 기법이다.
base
레지스터: 시작 physical 주소limit
레지스터: 크기base <= x < base + limit
프로세스의 접근 가능한 메모리 영역(x) 밖에서 접근을 요구하면 trap을 발생시킴으로써 메모리를 보호한다.
💡 안전성을 위해 base와 limit 레지스터는 커널 모드에서만 수정 가능하도록 설계한다.
실제 메모리의 사이즈보다 더 큰 사이즈의 메모리를 프로세스에 할당한 상황
이러한 과할당을 해결하기 위해선, 빈 프레임을 확보할 수 있어야 한다.
1번은 사용자에게 페이징 시스템을 들킬 가능성이 매우 높아서 하면 안 된다.
따라서, 2번과 같은 해결책을 통해 페이지 교체가 이루어져야 한다.
주기억장치에 저장된 내용의 일부를 임시로 저장해두는 기억 장치
Hit
: 캐시 기억장치에 명령이 존재
(CPU에서 주소 전달 -> 캐시 기억장치 확인 -> 해당 명령어 CPU로 전송)
Miss
: 캐시 기억장치에 명령이 존재하지 않음
(CPU에서 주소 전달 -> 캐시 기억장치 확인 -> 주기억장치로 접근 -> 해당 명령어를 가진 데이터 인출 -> 데이터를 캐시에 저장 -> 해당 명령어 CPU로 전송)
따라서 CPU가 어떤 데이터를 원할지 어느정도 예측할 수 있어야 함 !!
이러한 예측 적중률을 높이기 위해 사용하는 것이 바로 지역성의 원리
기억 장치 내의 정보를 균일하게 액세스 하는 것이 아니라 한 순간에 특정 부분을 집중적으로 참조하는 특성
캐시에 데이터를 저장할 시, 자료구조를 활용해 묶어서 저장하는 것
https://ko.wikipedia.org/wiki/%EB%A9%94%EB%AA%A8%EB%A6%AC_%EA%B4%80%EB%A6%AC_%EC%9E%A5%EC%B9%98