메모리 계층 구조
목적은?
CPU의 메모리 액세스 시간을 줄이기 위함이다.
참조의 지역성
참조의 지역성은 코드나 데이터, 자원 등이 아주 짧은 시간 내에 다시 사용되는 특성이다.
CPU는 작은 캐시 메모리에 적재된 코드와 데이터로 한동안 실행한다.
메모리를 관리 이유
1. 메모리는 공유 자원이기 때문이다.
여러 프로세스 사이에 메모리 공유가 일어나기 때문에 관리 되어야 한다.
2. 메모리 보호되어야 하기 때문이다.
프로세스의 독립된 메모리공간을 보장해주고, 사용자로부터 커널 공간을 보호해야 한다.
3. 메모리 용량 한계 극복할 필요가 있다.
설치된 물리 메모리보다 큰 프로세스 프로세스에게 지원이 필요하다.
4. 메모리 효율성 증대를 위해서이다.
가능하면 많은 프로세스를 실행시키기 위해서이다.
논리 주소가의 필요
개발자로 하여금 모든 하드웨어 상황을 고려하지 않고 논리주소를 이용해 개발에 용이하게 하는 목적이 있다.
매핑 테이블을 이용해 프로세스간의 메모리 침범이 나지 않게 관리 할 수 있다.
사용자로 하여금 물리주소를 모르게 하여 메모리를 보호 할 수 있게 한다.
MMU
기능
논리 주소를 물리 주소로 바꾸는 하드웨어 장치
하드웨어? 소프트웨어?
하드웨어 장치이다.
존재위치
오늘날 MMU는 CPU 패키지에 내장되어 있다.
MMU가 없는 컴퓨터가 없다면
MMU는 논리주소를 물리주소로 변환 해 주는 매핑 테이블인데, 이가 없다는 것은 논리주소를 활용하지 않고, 물리주소만 활용한다는 뜻이다.
물리 주소만 사용할 경우, 다중 프로세스를 이용하는 범용 컴퓨터에서 프로세스간의 메모리 침범이 일어나 보호가 불가능해 MMU를 이용해 논리 주소로 관리 되어야 한다.
IBM OS/360 MVT vs IBM OS/360/MFT
MFT는 메모리 전체를 n개의 고정 크기로 분할. 프로세스마다 하나씩 할당하여, 필요한 메모리보다 많은 메모리 공간을 할당받게 되어 비어있는 메모리 공간이 발생했다.
이를 해결하기 위해 MVT는 프로세스마다 프로세스의 메모리 크기만큼 연속으로 메모리 할당하였다. 하지만, 프로세스 할당과 반환이 반복되어, 프로세스를 수용하지 못할 크기의 연속적인 메모리 공간들이 생기면서 메모리 공간이 낭비 되었다.
단편화
단편화란?
단편화란, 프로세스에게 할당할 수 없는 조각 메모리들이 생기는 현상이다. 조각 메모리를 홀(hole)이라고 부른다.
내부 단편화는 이미 할당된 메모리가 활용되지 않아 홀이 생기는 현상이다.
외부 단편화는 할당될 수 없는 연속적인 메모리 공간이 생겨 홀이 생기는 현상이다.
4가지 메모리 할당 기법과 단편화
연속 메모리 할당 - 고정크기 에서는 파티션 내에 내부 단편화가 생긴다.
연속 메모리 할당 - 가변크기 에서는 파티션 사이에 외부 단편화가 생긴다.
분할 할당 - 세그먼테이션 에서는 세그먼트 사이에 외부 단편화가 생긴다.
분할 할당 - 페이징 에서는 페이지 내부에 내부 단편화가 생긴다.
고정 크기 할당 정책 구조
메모리 보호를 위해 0 <= 논리 주소 <= limit 주소 인지 확인한다. 이때, 범위 밖이라면 시스템 오류를 발생시키고, 범위 안이라면 base 주소에 논리주소를 더해 물리주소를 찾아간다.
세그먼테이션 메모리 관리 정책 구조
논리주소 offset이 해당 세그먼트의 limit 범위 안에 있는디 확인한다. (0 <= offset <= segment_limit)
범위 밖이라면 시스템 오류를 발생시키고, 범위 안이라면 세그먼트 base 주소를 더해 물리 주소를 찾아간다.
캐시의 유효성
참조의 지역성 때문이다. 참조의 지역성은 코드나 데이터, 자원 등이 아주 짧은 시간 내에 다시 사용되는 특성이다.
CPU는 작은 캐시 메모리에 적재된 코드와 데이터로 한동안 실행한다.
캐시 용량에 따른 성능 비교
2023.05.04 - [분류 전체보기] - [컴퓨터 구조] 메모리 구조와 유용성(HMB, DRAM, CACHE)
논리주소의 유효성
개발자로 하여금 모든 하드웨어 상황을 고려하지 않고 논리주소를 이용해 개발에 용이하게 하는 목적이 있다.
매핑 테이블을 이용해 프로세스간의 메모리 침범이 나지 않게 관리 할 수 있다.
사용자로 하여금 물리주소를 모르게 하여 메모리를 보호 할 수 있게 한다.
홀(hole) 할당 기법
흰색으로 비어있는 부분이 할당되지 않은 빈 메모리(홀)이며 적힌 숫자는 홀의 크기이다.
2KB의 메모리 할당을 요청시 first-fit, best-fit, worst-fit 알고리즘
first-fit : 3KB
bset-fit : 2.2KB
worst-fit : 8KB
best-ft 알고리즘으로 2KB의 메모리를 할당하고 나서 생기는 새로운 홀의 크기
0.2KB