CS/OS

[운영체제] 메모리 분할 ( Memory Partioning ) [ 비연속 메모리 할당 ]

IT록흐 2021. 10. 29. 11:50
반응형
 

[운영체제] 메모리 분할 ( Memory Partioning ) [ 연속 메모리 할당 ]

다수의 프로세스에게 메모리를 분할해줘야 한다. 이번 포스팅에서는 연속 메모리 할당 방식의 메모리 분할법을 다루겠다. 연속 메모리 할당이란? 프로세스의 구성요소가 메모리에 연속된 주소

lordofkangs.tistory.com

 

지난 포스팅에서는 연속 메모리 할당방식에서의 메모리 분할기법을 알아보았다. 이번 포스팅은 실제 환경에서 사용되는 비연속 메모리 할당방식의 메모리 분할 기법을 알아보겠다.

 

 

비연속 메모리 할당

 

 

비연속 메모리 할당은 프로그램의 코드가 메모리에 비연속적으로 할당되는 방식을 의미한다. 

 

 

페이징기법 (Paging)

 

주기억장치를 고정된 크기의 파티션으로 나누고 프로세스 또한 같은 고정된 크기의 조각으로 나눈다.

 

프레임(Frame) : 주기억장치를 고정된 크기로 나누어 만든 파티션 ( 물리적 개념 )

페이지(Page) : 프로세스를 고정된 크기로 나누어 만든 조각 ( 논리적 개념 )

 

페이징기법의 관건은 페이지를 어떻게 프레임과 매핑하느냐이다. 

 

프로그램이 연속적으로 할당되었다면 상대주소만 알면된다. 프로그램의 메모리 시작위치만 알면 연속적으로 모든 데이터를 읽어올 수 있다. 그러나 페이징 기법은 비연속적 메모리 할당의 분할 기법이다. OS가 프로세스를 관리하려면 프로세스 조각이 저장된 프레임에 접근할 수 있는 매커니즘이 필요한다. 

 

 

세그먼테이션 기법(Segmentation)

 

동일하지 않은 크기로 주기억장치와 프로세스를 분할하는 방식이다. 이때 분할된 프로세스의 조각을 '세그먼테이션'이라 부른다. 

 

세그먼테이션 기법은 연속메모리할당기법의 동적분할과 유사하다. 다른 점이 있다면 하나의 세그먼트가 하나 이상의 파티션을 차지할 수 있고 파티션들이 연속적일 필요가 없다. 동적분할의 문제점은 '외부단편화'였다. 세그먼테이션도 외부단편화 문제가 있지만 세그먼테이션이 파티션보다 작은 크기의 여러 조각으로 나뉘어지기에 상대적으로 적게 발생한다.

 

 

 

논리주소 - 물리주소 변환 ( 페이징 기법 )

 

MMU( Memory Management Unit)은 논리주소를 물리주소로 변환하는 작업을 담당한다.

*MMU : CPU 내에 독립적으로 존재하는 회로로 주소변환을 담당

 

비연속적으로 메모리를 할당했기에 페이지의 물리주소는 비연속적이다. 비연속적인 주소는 관리가 힘들다. 그러므로 논리주소가 필요하다. 논리주소는 비연속적 물리주소를 연속적인 방식으로 표현한 주소이다.

 

 

 

OS는 물리적으로 비연속적이게 저장된 데이터를 페이지테이블을 통해 연속적으로 접근할 수 있다. 

 

 

논리주소 구조

 

 

 

논리주소는 어렵지 않다. 우리가 사용하는 주소를 생각하면 간단하다.  '경복궁 아침'이라는 건물을 가려고 한다. '경복궁 아침' 건물의 주소는 아래와 같다.

 

도로명주소: 서울특별시 서대문구 북아현로22마길

상세주소 : 21-8 (북아현동, 경복궁아침)

 

도로명 주소는 건물이 위치한 도로(프레임)을 가리킨다. 그리고 상세주소는 도로(프레임) 안에서 정확한 위치를 나타낸다. 

 

도로명 주소 : 페이지번호 ( 프레임 번호 )

상세 주소 : 오프셋

 

 

물리주소 구조

 

 

프레임 번호 : 논리주소의 페이지번호로 페이지테이블에 접근하여 프레임번호를 파악한다. 

 

오프셋 : 페이징기법은 주기억장치의 프레임과 프로세스의 페이지를 동일한 크기로 자른다. 그러므로 논리주소의 오프셋을 그대로 물리주소 오프셋으로 받아온다.

 

오프셋은 10bit이므로 총 1024가지 주소를 표현할 수 있다. 이를 1K라 부른다. 페이지와 프레임을 1K 크기로 동일하게 잘랐다. 이제 상세주소를 계산해보자. '0111011001'은  '473'이다.

 

 

 

 

 

이와같이, OS는 논리주소로 동일한 프로세스의 데이터를 연속적으로 접근하면 MMU가 논리주소를 물리주소로 변환해주어 비연속적으로 메모리가 할당되었음에도 임의접근(Random-Access)이 가능해진다.

 

 


 

참고문헌

 

운영체제

컴퓨터 공학 전공자들을 위한 운영체제 내부구조 및 설계원리를 소개하는 책이다.

book.naver.com

 

반응형