반응형

 

 

 

 

 

 

 

 

 

1. 메모리 관리 기법 분류

 

1) 연속 메모리 할당 방식

: 프로그램(프로세스)를 적재하는 과정에서 연속적으로 메모리를 할당한다.

: 직접 배치, 중첩(오버레이), 분할 기법이 해당한다.

 

- 고정 분할 기법 : 메모리를 고정된 크기로 분할하여 프로세스에 제공한다. 

- 가변 분할 기법 : 각 프로세스의 크기에 따라 메모리를 분할한다.

 

 

2) 분산 메모리 할당 방식

: 프로세스가 페이지나 세그먼테이션 등의 단위로 보조기억장치에 적재되어 있다가, 프로세스의 요구에 의해 메모리의 여러 영역에 할당된다.

: 현재의 가상 메모리 관리 기법으로 발전하였다. (MMU)

 

 

 

 

2. 연속 메모리 할당

메모리 분할 : 운영 체제 부분과 사용자 부분 둘로 나눈다.

 

 

1) 고정 분할

 

 

 

: 고정된 크기로 분할하기 때문에 논리 주소와 크기가 맞지 않으면 내부에 낭비되는 공간이 생긴다.

이를 "내부 단편화"라고 한다.

 

 

ex) 내부 단편화 예제

(a) 메모리 영역을 10KB, 4KB, 4KB, 4KB 로 나누는 경우

내부 단편화 = 3KB + 1KB = 4KB 이다. 메모리 할당이 되지 않은 영역은 내부 단편화가 아니다.

 

(b) 메모리 영역을 10KB, 8KB, 4KB 로 나누는 경우

내부 단편화 = 4KB + 1KB + 1KB = 6KB 이다. 

 

 

 

 

 

2) 가변 분할

: 고정된 경계를 없애고 각 작업이 필요한 만큼 메모리를 할당한다.

 

: 각 작업이 필요한 메모리만큼 메모리를 할당하기 때문에 해당 작업이 끝났을 때 동일한 크기의 메모리 할당이 필요치 않는다면 낭비되는 공간이 생긴다.

이를 "외부 단편화"라고 한다.

 

 

 

 

- 메모리 적합 기법

: 최초 적합, 최상 적합, 최악 적합

 

1) 최초 적합 기법

: 사용가능공간 리스트에서 충분히 큰 첫 번째 공백 분할 공간에 할당한다.

- 검색은 빠르나 공간 활용도가 떨어진다.

 

 

 

 

 

2) 최상 적합 기법

: 들어갈 수 있는 공간 중 가장 작은 크기의 공간에 할당한다.

- 사용가능공간에 대해 지속적으로 정렬해야 하므로 비효율적이다.

- 공간 활용도는 향상되나, 할당되는 과정에서 많은 시간이 소요된다.

 

 

 

3) 최악 적합 기법

: 작업을 가장 큰 사용가능공간에 할당한다. 

: 공간이 크기순으로 정렬되지 않았다면 전 리스트를 검색한다.

 

 

 

 

 

 

3. 단편화를 해결할 방법

 

1) 압축 (외부단편화 해결)

: 메모리의 여러 영역들을 옮겨 모든 작은 빈 공간들을 연속된 하나의 큰 빈 공간으로 만드는 작업이다.

: 재배치가 실행시간에 동적으로 이루어지는 경우에만 가능하다.

 

단점

- 압축할 동안 시스템은 모든 일을 정지한다.

- 재배치 정보를 관리할 필요가 있다.

 

 

 

 

 

 

2) 버디 시스템

: 요청된 크기가 버퍼보다 작으면 버퍼를 동일한 크기의 2개 버디로 나눈다.

: 가능할 때마다 인접한 자유로운 버퍼들을 합치는 과정을 반복한다.

+ 2의 배수로 설정한다.

 

 

ex) 7K, 6K, 3K 프로세스 할당

 

 

 

 

 

 

 

 

 

 

4. 분산 메모리 할당

 

1) 페이징 기법

: 프로그램을 페이지라는 고정 크기 단위로 나누어 분산 적재한다.

 

 

 

 

 

 

 

2) 페이징 시스템 하드웨어

: 논리 페이지에 물리 메모리(페이지) 프레임을 적재하는 과정을 수행하는 페이지 시스템 하드웨어 구조이다.

 

논리 주소 = 페이지 번호(p) + 페이지 변위(d)

p에 저장된 f값은 물리 메모리 페이지 번호이다.

페이지 변위란, 테이블의 자리 번호이다.

 

물리 주소 = 메인 메모리의 프레임 번호(f) + 페이지 변위(d)

f는 실제 메모리의 페이지 기준 주소로 메인 메모리의 프레임 번호이다.

 

 

 

 

페이징 시스템의 물리적 주소 변환의 예)

 

 

 

 

 

 

 

3) 페이징 스케줄링

: 새로운 프로세스를 페이지 단위로 표현하고 순서대로 사용가능한 프레임 리스트에 할당한다.

 

 

 

- 페이지 크기

: 페이지 크기는 하드웨어에 따라 결정된다.

: 일반적으로 2의 제곱, 512bytes ~ 16Kbytes

단순한 내부 단편화만 생각하면 페이지 크기가 작은 것이 바람직하다.

다만, 페이지 크기가 작을수록 페이지 테이블 유지 부담이 커지기 때문에 적절한 페이지 크기를 산정해야 한다.

 

 

 

 

 

 

 

 

 

 

 

5. 페이지 테이블의 구현

1) 전용 레지스터의 집합

: 페이지 테이블이 cpu에 위치한다. 

- 페이지 테이블이 작은 경우에만 가능하다.

 

2) 주기억 장치에 유지

: CPU 내의 테이블 기준 레지스터(PTBR) 에 저장한다.

- 기억 장치 위치에 접근하는 데 많은 시간이 소요된다. ( 두 번의 기억장치 접근 필요 )

 

 

 

 

 

 

3) 변환 우선참조 버퍼 TLB 사용

: 페이지 테이블을 캐시에 저장한다.

- 탐색은 빠르지만, 하드웨어가 고가이다.

 

-> 주기억 장치에 유지하는 것처럼 기억 장치 위치에 접근하는 데 많은 시간이 소요되지는 않는다.

다만, 연관사상표에 일치하는 항목이 없을 때, 더 시간이 많이 걸리기 때문에 이 점을 감안해야 한다.

 

 

 

* 적중률 및 실제 접근 시간 *

- 연관 레지스터(캐시) 탐색 시 50ns, 메모리에 접근 시 750ns

IF 연관 레지스터에 있는 경우 : 50 + 750 = 800ns

IF 연관 레지스터에 없는 경우 : 50 + 750 + 750 = 1550ns

 

- 적중률 80%인 경우, 실제 접근 시간 = 800 * 0.8 + 1550 * (1-0.8) = 950ns

- 적중률 90%인 경우, 실제 접근 시간 = 800 * 0.9 + 1550 * (1-0.8) = 875ns

 

 

 

 

 

 

 

6. 페이지 보호 및 공유

: 페이지 단위로 판독 전용, 판독/기록 전용, 실행 전용 등의 보호를 지정한다.

 

 

 

- 공유 페이지

( 분산 메모리 관리의 장점 )

: 시분할 환경에서 중요한 공통된 코드들을 프로세스 사이에서 공유할 수 있다.

: 비슷한 프로세스끼리 논리 주소 공간에서 같은 위치에 놓을 수 있기 때문이다.

 

 

 

 

 

 

 

7. 페이징 기법의 장단점

장점

- 공유 페이지를 이용한다.

- 외부 단편화를 제거할 수 있다. ( 끼워 넣으면 되니까 )

- 외부 단편화가 없기 때문에 압축 기능이 필요없다. 

 

단점 

- 페이징 사상을 위한 하드웨어 준비로 인한 가격 상승

- 속도 저하 -> 캐시 사용으로 속도 향상 가능하다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'Computer Science > Operating System' 카테고리의 다른 글

이론 7) 가상 메모리  (0) 2020.12.03
이론 6) 주 메모리 관리 기법 3  (0) 2020.12.02
이론 6) 주 메모리 관리 기법  (0) 2020.12.02
이론 5) 교착 상태 2  (0) 2020.12.02
이론 5) 교착 상태  (0) 2020.12.02

+ Recent posts