Fundamental Notes/Operating Systems

Main Memory - Swapping & Contiguous Memory Allocation

콩콩댕 2009. 1. 7. 20:20
반응형
1. 기억장치의 계층구조

소용량, 고속, 고가






대용량, 저속, 저가

Register
Cache Memory
Associative memory(CAM)
주기억
CCD(Charge Coupled Device)
보조기억
(Magnetic Drum, Magnetic Disk
Magnetic Tape , Card)
* Virtual Memory


주기억장치는 프로그램이 실행되기 위한 실행코드와 데이터가 저장되는 메모리로 CPU에서 필요시 빠르게 접근할 있다.

 

2. 연속할당과 불연속 할당기법

 

. 연속할당(contiguous storage allocation)

① 프로그램을 연속된 메모리 공간에 할당하는 방법으로 초기의 주기억장치 할당 방법으로 사용되었다.
② 기억장치의 공간보다 프로그램은 적재하지 한다.
이런 문제 해결을 위해서 Overlay기법 등을 사용하였다.

 

. 불연속 할당(non-contiguous storage allocation, = 산재할당)

① 프로그램을 이상의 조각(Page, Segment)으로 나누어 필요한 조각만 주기억장치에 할당하는 방법으로 최근 사용하는 방법이다.
② 가상기억장치 기법으로 사용한다.
③ 프로그램의 크기에 상관없이 적재하여 실행할 있다.

 

3. 주기억장치 관리 : 연속 할당의 경우

단일 사용자 연속 기억장치 할당

다중 프로그래밍

고정분할 방식
절대 번역 및 적재 방식

재배치 가능 번역 및 적재 방식

가변분할 방식



. 단일 사용자 연속 기억장치 할당(single user contigious storage allocation system)

① 한번에 사용자만 메모리를 사용하는 방법으로 컴퓨터 시스템의 모든 자원은 사용자가 마음대로 사용할 있다.
② 프로그램의 크기는 주기억장치 용량보다 없다.
, Overlay 기법을 이용하여 주기억장치 용량보다 프로그램을 실행 있다.
③ 경계레지스터(limit register, bound register, fence register) 사용하여 시스템 영역보호를 한다.

 

. 다중 프로그래밍(multiprogramming)

① 고정분할 다중 프로그래밍(fixed partition multiprogramming)

·         주기억장치를 여러 사용자가 동시에 사용할 있도록 하여 CPU 이용률을 높이고 처리량(Throughtput) 늘릴 있는 방법이다.

·         ·사용전에 미리 영역을 나누어 놓고 적당한 곳에 프로세스를 할당한다.

() 절대번역(absolute translation) 적재(loading)
절대번역이 되어 정해진 영역에서만 실행되는 것으로 기억장치를 낭비가 있을 있지만 구현하기가 쉽다.
(
) 재배치 가능번역(relocatable translation) 적재(loading)
어떤 영역에서도 영역에 수용될 프로그램이 있으면 실행 가능한 경우를 말한다. 절대번역과 적재 상에서 발생하는 기억장치의 낭비를 막을 있으나 운영체제를 구현하는 측면에서 복잡하다.

② 가변분할 다중 프로그래밍(variable partition multiprogramming)

·         실행 중에 프로세스가 필요로 하는 크기만큼의 메모리를 할당하여 적재하는 방식이다.

·         가변분할 방식은 단편화 문제를 줄이기 위해서 고안이 되었지만 단편화 문제를 해결하지 못했다. (초기에는 단편화 현상이 나타나지 않지만 기억장소의 사용과 반납이 반복되면서 단편화 공간이 생긴다.)

 

4. 기억장치 관리기법

 

. 반입기법(fetch strategy) : When
보조기억장치에서 주기억장치로 언제 프로그램과 데이타를 이동할 것인가에 관한 문제

요구호출(demand fetch)
현재 실행되는 프로그램에 의해 참조될 프로그램과 데이타를 주기억장치로 옮기는 기법
② 예상호출(anticipatory fetch)
실행되는 프로그램에 의해 참조될 가능성이 있는 프로그램과 데이터를 예측하여 미리 옮겨놓아 효율성을 향상시키기 위한 기법, 예상이 맞지 않을 경우 오버헤드가 발생 하게 된다.

 

. 배치기법(placement strategy) : Where
새로 반입된 프로그램을 주기억장치 내의 어느 곳에 것인가에 관한 문제

① 최초적합(first-fit) : 주기억장치 내에 분할된 공간 반입된 프로그램을 수용할 있는 첫번째 공간에 배치하는 기법
② 최적적합(best-fit) : 주기억장치 내의 분할된 공간 적재시 단편화 공간이 가장 적게 발생하는 공간에 배치하는 기법
③ 최악적합(worst-fit) : 주기억장치 내의 분할된 공간 적재시 단편화 공간이 가장 크게 발생하는 공간에 배치하는 기법

 

. 교체기법(replacement strategy, swapping) : What
새로 반입된 프로그램이 들어갈 장소가 없을 경우 주기억장치상의 어떤 프로그램이나 데이타를 교체대상으로 것인가를 결정하는가에 관한 문제

 

5. 단편화(fragmentation) 문제

연속으로 기억장치를 할당하여 사용할 경우 크기가 맞지 않아서 사용되지 못하는 공간이 생길 있는데, 이러한 공간을 단편화 공간이라고 한다.

 

. 단편화의 종류

① 내부 단편화(internal fragmentation)
분할의 사용하고 남은 일부분을 말한다. 예를 들어 '100'크기를 갖는 분할에 '80'크기를 갖는 프로그램을 배치하였을 경우 '20' 공간이 내부 단편화 공간이 된다.


② 외부 단편화(external fragmentation)
분할의 크기가 프로그램의 크기보다 작아서 사용되지 못한 것을 말한다. 예를 들어 '100' 크기를 갖는 분할이 있을 '120' 크기를 갖는 프로그램은 배치 되지 못하며 '100' 공간이 외부 단편화 공간이 된다.

. 단편화의 해결 : 재배치(relocation) 이용한 해결
기억장치의 단편화 공간을 주소 재배치를 통하여 묶는 방법인 통합(coalescing) 압축(compaction) 사용하여 해결 있다.

 

기억장치의 통합(coalescing)

·  인접된 공백들을 하나의 공백으로 만드는

·  통합을 하여도 공백이 분산되어 있는 경우(사용공간이 사이에 있는 경우) 큰공간이 생기지 않으므로 단편화 문제를 해결하지 못할 수도 있음

 

기억장소의 압축(compaction)

·  주기억장치내의 모든 공백들을 하나의 공백으로 모으는 작업

·  기억장소의 트림(burping the storage) 또는 쓰레기 수집(garbage collection)이라고도

·  압축하는 동안 시스템은 모든 일을 중단해야

·  압축은 기억장치상의 모든 작업들을 재배치시키게 되며, 프로그램이 로드 잃기 쉬운 재배치 관련 정보를 즉각 사용할 있는 형태로 유지하여야

압축을 하므로 소모되는 시스템 자원이 압축을 통해 얻는 이익보다 커질 있음



'Fundamental Notes > Operating Systems' 카테고리의 다른 글

Virtual Memory  (0) 2009.01.07
Main Memory - Paging & Segmentation  (0) 2009.01.07
Deadlock  (0) 2009.01.07
Process Synchronization  (0) 2009.01.07
CPU Scheduling  (0) 2009.01.07