Base Limit
논리 주소는 범위 검사 후 물리 주소로 바뀐다
CPU가 만든 offset이 limit보다 작으면 base를 더해 실제 메모리 주소를 만들고, 범위를 넘으면 trap으로 보호한다.
base
프로세스가 배치된 물리 메모리 시작 주소
limit
프로세스가 접근 가능한 논리 주소 길이
offset
명령어가 요구한 프로세스 내부 위치
논리 주소
offset 추출
프로세스는 자신이 0번지부터 시작한다고 생각한다.
범위 검사
offset과 limit 비교
작으면 정상 접근, 같거나 크면 보호 위반이다.
주소 생성
base에 offset을 더함
물리 메모리의 실제 위치로 변환된다.
보호
범위 밖이면 trap
다른 프로세스의 메모리를 침범하지 못하게 막는다.
예시
판정
결과
base 4000, limit 1000, offset 240
offset이 limit보다 작음
물리 주소 4240으로 접근한다.
base 4000, limit 1000, offset 1200
offset이 limit 이상
trap으로 접근을 차단한다.
문맥 교환
프로세스마다 레지스터 값 교체
같은 논리 주소도 다른 물리 위치를 가리킨다.
재배치
base만 바꾸면 프로세스 위치를 옮겨도 논리 주소는 유지된다.
보호
limit은 프로세스 경계를 넘는 접근을 가장 먼저 걸러낸다.
비용
매 접근마다 비교와 덧셈이 필요해 하드웨어 지원이 중요하다.