목표
- 메모리 하드웨어를 구성하는 다양한 방법 소개
- 프로세스에게 메모리를 할당하는 다양한 기법 설명
- 현대 컴퓨터 시스템에서 paging 동장 방법 논의
1. 배경지식
- 프로그램은 디스크에서 메모리로 적재된 후 실행됨 → 프로세스
- CPU가 직접 접근 가능한 기억장치 - CPU register, main memory
- CPU registers - 1 CPU clock에 접근 가능
- main memory - 접근에 여러 CPU cycle이 소요 → processor stall(지연) 발생
- cache 메모리를 CPU 와 main memory 사이에 추가하여 processor stall 빈도를 감소시킴
- 메모리 보호 (Protection)
- 올바른 동작을 보장하기 위해서 메모리 보호가 필요
- 메모리를 보호를 위해 하드웨어 지원이 필요, 운영체제는 이를 관리
메모리 보호 - Base 와 Limit Registers 사용
- 메모리 보호 방법 - 프로세스에게 독립된 주소 공간을 제공
- base register 와 limit register를 사용한 방법
- 프로세서의 합법적인 주소공간 : base ≤ address < base + limit
- 하드웨어를 통한 주소 검사
- CPU에서 주소나오면 바로 메모리 access하는게 아니고 검사를 함
- 합법적인 주소가 아니면 trap을 발생시켜 메모리를 보호
주소 바인딩 (Address Binding)
- 주소 바인딩
- 한 주소 공간에서 다른 주소 공간으로 맵핑하는 것
- 프로그램의 명령어/데이터 주소(논리)를 물리적 메모리 주소(물리)로 바인딩
- 링커(linker, linkage editor)와 로더(loader)
- linker : 모듈을 함께 묶어서 실행파일을 생성
- loader : 프로그램 실행을 위해서 프로그램의 전부 또는 일부를 메모리에 적재