반응형

-메모리 관리 정책

메인 메모리는 운영체제를 위한 영역실행중인 프로그램을 위한 영역으로 구분된다.

:적재 정책 - 디스크에서 메모리로 프로세스 반입 시기를 결정하는 것이다.

:배치 정책 - 디스크에서 반입한 프로세스를 메모리 어느 위치에 저장할 것인지 결정하는 것이다.

:대치 정책 - 메모리가 충분하지 않을 때 현재 메모리에 적재된 프로세스 중 제거할 프로세스를 결정하는 교체법이다.

-메모리 구조

논리적 구조(가상 구조) : 프로그래머가 프로그래밍에 사용하는 공간

물리적 구조 : 실제 데이터나 프로그램을 저장하는 공간

-메모리 장치의 주소 변환

논리적 주소와 물리적 주소의 연결. 메모리 관리 장치(MMU)인 하드웨어에서 실행.

MMU : 재배치 레지스터는 세그먼트의 시작 주소를 가지고 있으며, 논리적 주소가 들어올 때마다 모든 주소에 재배치 레지스터가 가지고 있는 값을 더해서 물리적 주소를 만든다.

-매핑(사상)

논리적 주소와 물리적 주소의 연결

바인딩 : 매핑시켜주는 작업

ex) 변수 : 논리적인 주소, 컴파일 : 논리적인 주소를 물리적인 주소로 바꿔주는 작업

-주소 바인딩 종류

:컴파일 시간

프로세스가 메모리 내에 적재될 위치를 컴파일 과정에서 알 수 있다면 컴파일러는 물리적 주소를 생성할 수 있다.

:적재시간

프로세스가 메모리 내의 어디에 적재되어야 할 것인가를 컴파일 과정에서 알려주지 않으면 컴파일러는 재배치 가능 상대 주소를 생성한다.

:수행시간

현대의 운영체제는 실행시간에 바인딩이 이루어짐

-메모리 적재 방법

:연속 메모리 적재 방법:비연속(분산) 메모리 적재 방법

메모리 적재 방법

가변 분할 : 메모리의 크기를 다르게 표현. 이 분할이 나온 이유는 고정 분할로 하면 메모리 낭비가 있을 경우가 있어서

-연속 메모리 할당

단일 사용자의 연속 메모리 할당 시스템 : 한 번에 한 프로그램만 사용 가능하며, 메모리 효율성이 떨어지고 다중 프로그래밍이 불가능하다. 논리적 메모리가 물리적 메모리보다 작을 때만 프로그램을 수행할 수 있다.(메모리를 보호하기 위해 경계 레지스터가 나왔다. 프로그램이 메모리보다 클 때 => 중첩(오버레이)으로 설정 가능

-기준 레지스터 : 가장 작은 물리적 주소

기준 레지스터 이후로 프로그램이 주소를 가질 수 있다.

기준 레지스터가 변하게 되면 다시 적재해야 한다.

첫 번째 해결 방법 : 기준 레지스터보다 사용자 프로그램을 상위 메모리에 적재하는 것(사용하지 않는 모든 공간이 확보)

두 번째 해결 방법 : 주소 바인딩을 연기시킨다.

-다중 프로그래밍 환경에서 연속 메모리 할당 방법

 

남는 비사용 메모리 공간.. 18k 남음 그러므로 내부 단편화 발생..!

고정 할당을 사용할 경우 생기는 문제점 : 내부 단편화

-고정분할방법 - 주기억 장치를 겹치지 않는 영역들을 집합으로 분할하여 할당하고 관리하는 기법, 파티션 크기 다를 수 있음.

연속 메모리 할당에서는 메모리를 여러 개 고정된 크기로 분할하고 분할된 각 메모리는 프로세스 하나 실행 가능하다.

단점 : 프로그래밍 성능이 분할 수에 제한받는다.

-가변 분할 방법 => 가변 분할 : 고정된 경계를 없애고 각 프로세스가 필요한 만큼 메모리를 할당한다.

분할은 프로세스가 요구하는 크기로 만들어진다.

내부단편화는 거의 없으나 외부 단편화는 발생할 수 있다.

-최초 적합 방법

프로세스 사용 가능 공간 중 충분히 큰 첫 번째 공간에 할당, 검색을 사용가능 공간의 리스트 맨 앞이나 이전 최초 적합 검색이 끝났던 곳에서 시작하면 충분히 큰 사용 공간 빨리 찾기가 가능하다. 단점은 공간 활용률이 떨어질 수 있다. +사용 공간을 계속 정렬하는 과정이 필요해서 비효율적이고 공간 이용률은 향상된다.

-최적 적합 방법

프로세스를 충분히 큰 사용 가능 공간 중에서 들어갈 수 있는 가장 작은 공간에 할당한다. 사용 가능 공간이 크기 순으로 정렬되어 있지 않으면 전체를 검색해야 한다. 계속 정렬해야 하므로 비효율적이고 공간 이용률은 향상될 수 있으나 할당 과정에서 시간이 많이 소요된다.

-최악 적합 방법

프로세스를 가장 큰 사용 가능 공간에 할당한다. 공간이 크기 순으로 정렬되어 있지 않으면 전체 검색을 해야한다. 가장 큰 사용 가능 공간에 할당하기 때문에 가장 작은 또다른 사용 가능 공간을 만드는 최적 적합보다 메모리 활용면에서 유용하다.

 

보통은 최초적합이 최적적합보다 메모리가 빨리 할당된다.

 

-메모리 압축 방법

메모리의 내용을 적절히 움직여 사용 가능 공간을 큰 블록 하나로 만드는 것이다.

압축이 항상 가능한 것은 아니고, 주소 대체가 동적일 때, 실행 시간일 때만 가능하다.

:단점 - 압축하는 동안 시스템 모두 중지 해야함, 실시간 시스템은 심각한 문제가 발생 가능하다. 시스템 자원의 소모가 크다.

-버디 시스템 : 단편화 현상을 해결하는 방법이다.

큰 버퍼들을 반복적으로 이등분하여 작은 버퍼들을 만들며, 가능할 때마다 인접한 빈 버퍼들을 합치는 과정을 반복한다. 버퍼를 나눌 때 각각을 서로의 버디라고 한다.

 

 

이미지 출처 : 저서명: 운영체제 개정 3판, 저자: 구현회, 출판사: 한빛아카데미, 발행년: 2017

 

'Computer Science(cs 지식)' 카테고리의 다른 글

운영체제(페이징 보호, 세그먼테이션)  (0) 2021.10.21
운영체제(페이징)  (0) 2021.10.21
운영체제(스케줄링)  (0) 2021.10.20
운영체제(스레드)  (0) 2021.10.20
운영체제(프로세스)  (0) 2021.10.20

+ Recent posts