[OS] 3-2. 기억장치의 구조 및 관리 기법
기억장치의 계층적 구조
- 레벨-1 (L1) 캐시(cache)는 마이크로프로세서와 같은 칩 내에 있음
- 레벨-2 캐시는 보통 별도로 분리된 SRAM 칩
- 메인 메모리는 보통 DRAM 칩을 사용
- RAM은 DRAM과는 달리 전자기적으로 재생시킬 필요가 없기 때문에 값이 더 비쌈
기억장치 계층
- 상위 층으로 갈수록 비트당 가격이 높아지고, 용량이 감소하며, 액세스 시간은 짧아지고, CPU에 의한 액세스 빈도는 높아짐
- 내부 기억장치(internal memory)
- CPU가 직접 액세스할 수 있는 기억장치들
- 예) CPU 레지스터, 캐시 기억장치, 주기억장치, 디스크 캐시
- 외부 기억장치(external memory)
- CPU가 직접 액세스할 수 없고, 장치 제어기(device controller)를 통해서만 액세스할 수 있는 기억장치들
- 예) 디스크, CD-ROM
캐시 기억장치 / 디스크 캐시
- 캐시 기억장치(cache memory)
- 주기억장치의 액세스 속도가 CPU에 비하여 현저히 느리기 때문에 주기억장치로부터 데이터를 읽어오는 동안에 CPU가 오랫동안 기다려야 하는데, 그에 따른 성능 저하를 줄이기 위하여 CPU와 주기억장치 사이에 설치하는 고속의 반도체 기억장치
- 디스크 캐시(disk cache)
- 디스크와 주기억장치의 액세스 속도 차이를 줄이기 위하여 그 사이에 설치하는 반도체 기억장치
- 주기억장치로부터 디스크로 읽혀나갈(swap-out) 정보들을 일시적으로 저장하는 버퍼 역할
- 위치 : 주기억장치, I/O 프로세서 보드, 혹은 제어기 보드
- 디스크 캐시의 장점
- 디스크 쓰기 동작들을 묶음 별로 처리할 수 있게 해줌
- 적은 수의 데이터들을 여러 번에 걸쳐서 디스크로 저장하는 대신에, 그들을 모아서 큰 단위로 한 번에 디스크에 저장
- 디스크 캐시
- CPU와 장치 제어기 모두 직접 액세스 할 수 있으므로, 내부 및 외부 기억장치에 모두 속함
제조 기술에 따른 분류
- DRAM (Dynamic RAM)
- 캐패시터(capacitor)에 전하(charge)를 충전하는 방식으로 데이터를 저장하는 기억 소자들(memory cells)로 구성
-> 집적 밀도가 높음
- 데이터의 저장 상태를 유지하기 위하여 주기적인 재충전(refresh) 필요
- 집적 밀도가 더 높으며, 같은 용량의 SRAM 보다 가격이 더 쌈
- 용량이 큰 주기억장치로 사용
- SRAM (Static RAM)
- 기억 소자로서 플립-플롭(flip-flop)을 이용
-> 집적 밀도가 낮음
- 전력이 공급되는 동안에는 재충전 없이도 데이터를 계속 유지 가능
- DRAM보다 다소 더 빠름
- 높은 속도가 필요한 캐시 기억장치로 사용
기억장치 관리 기법(3가지 범주)
- 인출(fetch) 기법
- 주기억장치에 적재할 다음 프로그램이나 데이터를 언제 가져올 것인가를 결정하는 문제
- 요구 인출(demand fetch) 기법
- 실행 프로그램에 의해 어떤 프로그램이나 데이터가 참조될 때 그것을 주기억장치로 옮기는 기법
- 예상 인출(anticipatory fetch) 기법
- 앞으로 요구될 가능성이 큰 데이터 또는 프로그램을 예상하여 주기억장치로 미리 옮기는 방법
- 배치(placement) 기법
- 새로 인출된 데이터나 프로그램을 주기억장치의 어디에 위치시킬 것인가를 결정하는 기법
- 최초 적합(first-fit), 최적 적합(best-fit) 및 최악 적합(worst-fit) 등이 있음
- 교체(replacement) 기법
- 새로 들어온 프로그램이 들어갈 장소를 마련하기 위해서 어떤 프로그램 및 어떤 데이터를 제거할 것인가를 결정함