-메모리 관리 정책
메인 메모리는 운영체제를 위한 영역과 실행중인 프로그램을 위한 영역으로 구분된다.
:적재 정책 - 디스크에서 메모리로 프로세스 반입 시기를 결정하는 것이다.
:배치 정책 - 디스크에서 반입한 프로세스를 메모리 어느 위치에 저장할 것인지 결정하는 것이다.
:대치 정책 - 메모리가 충분하지 않을 때 현재 메모리에 적재된 프로세스 중 제거할 프로세스를 결정하는 교체법이다.
-메모리 구조
논리적 구조(가상 구조) : 프로그래머가 프로그래밍에 사용하는 공간
물리적 구조 : 실제 데이터나 프로그램을 저장하는 공간
-메모리 장치의 주소 변환
논리적 주소와 물리적 주소의 연결. 메모리 관리 장치(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 |