[OS] Chapter.9 Memory Management

Computer/OS | 2006/07/06 09:06 | adioshun

Memory Management

주소의 할당

컴파일 시간 : 기억장치 내의 자리를 미리 알수있으면 컴파일러는 절대 코드를 생성한다.

적재 시간 : 컴파일기간동안 기억장치 자리를 모르면 재배치가느오드를 만든다.

실행 시간 : 바인딩이 실행 시간 까지 허용되면 사용가능


Logical, Physical 주소공간

ㅁ Logical address : CPU가 생성하는 주소, virtual address라함

ㅁ Physical address : 기억장치가 취급하는 주소

논리와 물리 주소공간은 컴파일시간, 적재시간 address binding일때는 같다.

실행시간 address binding일때는 논리와 물리 주소공간이 틀리다.


Dynamic Loading

ㅁ 실제 호출되기 전까지 기억장치에 올라오지 않음

ㅁ 메모리 효율성 증대

ㅁ 큰 프로그램에서 효율적이다.


Dynamic Linking

ㅁ 연결(linking)을 실행시간까지 연장시킴

ㅁ 라아브러리를 부르는곳마다 stub이 생기는데 이것은 라이브러리를 어떻게 찾을지를 알려주는코드

ㅁ stub은 라이브러리의 번지를 알아내고 자신의 번지와 대체한다.

ㅁ 운영체제는 이미 메모리에 존재하는가를 검사하고 없으면 디스크에서 가져온다.

ㅁ 라이브러리 루틴을 바꿀때 특히 유용하다.


Overlays(중첩)

ㅁ 어느 주어진 시간에는 꼭 그 당시에 필요한 것들만을 기억장치에 유지시키는것

ㅁ 프로세스에게 할당된 기억장치보다 커질때 사용된다.

ㅁ 운영체제가 할일없음 프로그래머가 할일 많음


Swapping

ㅁ 필요한 경우 기억장치로 보내어졌다가 다시 기억장치로 되돌아 올수 있다.

ㅁ Backing Store : 저장장소-_-;

ㅁ transfer time이 swapping의 대부분의 시간을 차지한다.


Memory Allocaiton

ㅁ 메인메모리는 OS와 사용자껄로 나뉨

ㅁ 여러파티션 배치 : Hole을 나눔, OS는 파티션과 hole을 기억한다.


Dynamic sttorage allocation problem

First-fit(최초 적합) : 첫번째로 만나는 공간을 들어간다

Best-fit(최적 적합) : 자신의 크기와 맞는 Hole을 찾아 들어간다

Worst-fit(최악 적합) : 가장큰곳을 찾아 들어가 버린다.


Fragmentation(단편화)

ㅁ External Fragmentation : 조각들을 합치면 만족하지만 분산되어 있어 만족안함

ㅁ Internal Fragmentation : 미리작개 나누고 그만큼 씩만 줘서 결과적으로 배정된것이 약간더클수 있는데 남는 부분은 사용하지 못함

ㅁ External fragmentation은 압축(compation)으로 해결가능(한쪽으로 모음, 비용 증가) 그래서 paging과 segmentation을 사용


Paging

- 물질적 저장소를 frame이라는 저장된 크기ㅗ 나눈다.

- 논리적 저장소를 page라는 지정된 크기로 자른다.

- 실행되기위해 n page는 n free frame으로 간다.

- Internal Fragmentation이다.


Page Table 구현

- 페이지테이블은 main memory에 있다.

- PTBR은 페이지 테이블을 가리킨다.

- PRLR(Page-table length register)는 page table의 크기를 가진다.

- 이런 상태로는 두번의 메모리 접근을 하게됨(페이지테이블에 1번, 물리메모리에 1번)

- associative memory로 해결된다.(TLB)(translation look-aside buffer)


associative memory - 병렬적 찾기

ㅁ 만약에 A'이 TLB에 있으면 frame #을 뽑아낸다.

ㅁ 그렇지않으면 frame #은 페이지테이블에 의해 뽑아진다.


EAT = 0.80 * (100 + 20) + 0.20 * (100 + 20 + 100)

        확률   A.M  A.TLB 확률    A.M A.TLB A.M


Page Table 구조

- 계층적 페이징

  ㅁ 페이지 테이블을 여러개의 작은 조각으로 나눔

- 해시된 페이지 테이블

  ㅁ 해시함수를 가지고 리스트를 가져 비교하여 물리주소를 찾는다.

- 역 페이지 테이블

  ㅁ 물리적프래임마다 항목을 할당

  ㅁ 각 항목은 논리주소와 프로세스에 대한 정보를 가지고 있다.

  ㅁ 메모리 요구공간 감소, 소요 시간 증가(가리키는 page찾기 위해)


Shared Pages

- 페이지를 공유하여 메모리 절약

- 역 페이지 테이블은 구현이 어려움


Segmentation

ㅁ 메모리 메니지먼트 방식

ㅁ External Fragmentation


Segmentation 구조

ㅁ 논리주소부 : <세그먼트번호, offset>

ㅁ segment table은 base와 limit를 가지고 있음

ㅁ 동적 기억 장치 할당 방법

  - 최초 적합

  - 최상 적합

ㅁ segment의 공유가 좋다( 딱딱 끊어져서 )

2006/07/06 09:06 2006/07/06 09:06
Trackback address :: http://4ellene.net/tt/trackback/963

Comments List

  1. sperm have taste 2008/05/24 00:31

Write a comment.

[로그인][오픈아이디란?]