운영체제 ) 가상 메모리 관리 기법의 기본 동작 원리와 페이징 기법과 세그먼트 기법, 그리고 구역성(Locality)이 페이징 기법에서 가지는 중요한 의미에 대해서 조사하시오.
본 내용은
"
운영체제 ) 가상 메모리 관리 기법의 기본 동작 원리와 페이징 기법과 세그먼트 기법, 그리고 구역성(Locality)이 페이징 기법에서 가지는 중요한 의미에 대해서 조사하시오.
"
의 원문 자료에서 일부 인용된 것입니다.
2023.08.13
문서 내 토픽
  • 1. 가상 메모리 관리 기법의 기본 동작 원리
    컴퓨터는 프로그램을 수행하기 위해 프로그램을 메인 메모리(주기억장치)에 탑재해야 한다. 그러나 실제 장치의 물리적인 메모리 용량에는 한계가 있기 마련이고, 또 프로그램을 실행할 때 프로그램 전체를 동시에 실행하는 경우도 없다. 이러한 상황에서 컴퓨터 공학자들은 좀 더 효율적인 컴퓨터 사용을 위해 당장 실행하는 프로그램의 일부분만 메인 메모리에 저장하고 필요할 때마다 나머지 부분을 하드 디스크와 같은 보조 장치에서 불러오는 메모리 관리 기법을 떠올렸고, 이를 가상 메모리 관리 기법이라고 부르게 되었다.
  • 2. 페이징 기법
    페이징 기법은 작업을 크기가 동일한 페이지로 나누고 페이지 테이블이라는 자료구조를 활용하여 페이지 번호를 부여하고 매핑 관계를 관리하여 처리하는 방법이다. 실제 사례를 들면, 리눅스 운영체제에서는 가상 메모리 관리 기법으로 4KB 크기의 페이지를 사용하여 작업을 분할해 처리한다. 이 기법을 활용하면 페이지를 분산하여 메인 메모리에 적재할 수 있게 되어 메인 메모리 내에 존재하는 작은 크기의 빈 프레임에도 작업의 페이지를 적재할 수 있어 메인 메모리를 효율적으로 사용할 수 있다는 장점이 있다. 그러나 운영체제가 작업을 잘라 만든 페이지들을 관리해야 한다는 부담이 발생하기도 하며, 작업을 페이지로 나누는 과정에서 크기가 맞지 않아 마지막 페이지가 완전히 차지 않는 경우 낭비되는 바이트가 발생하게 된다. 이런 경우 내부 단편화가 일어났다고 표현한다.
  • 3. 세그먼트 기법
    페이징 기법과 유사하게 작업을 나누는 기법이지만 크기가 다양한 세그먼트로 나누는 방법이다. 또 무작정 분할하는 것이 아니라 하나의 모듈 프로그램으로 나누게 된다. 즉 작업을 연관된 기능을 수행하는 여러 개의 세그먼트의 집합으로 생각하고 자르게 되는 것이다. 이는 페이징 기법과는 목적이 다르기 때문인데, 페이징 기법은 물리적 메모리가 부족하더라도 큰 가상 메모리 공간을 사용할 수 있도록 하기 위해 등장한 기술이고, 세그먼트 기법은 프로그램과 데이터를 논리적으로 독립된 메모리에 나누어 쉽게 공유하고, 또 보호할 수 있도록 하는 것이 목적이었기 때문이다. 따라서 목적과 관련된 부분에 있어서는 페이징 기법보다 유리하지만 메인 메모리를 낭비하는 외부단편화 문제가 많이 발생한다.
  • 4. 구역성(Locality)이 페이징 기법에서 가지는 의미
    제한된 메모리에서 더 많은 작업을 하기 위해 개발한 가상 메모리 관리 기법이지만 메인 메모리에 아무렇게 흩어진 페이지를 전부 탐색해야 한다면 페이지를 교체하는 데에 드는 시간이 작업을 하는 과정에 걸리는 시간보다 더 길어지는 문제가 발생할 것이다. CPU는 사용자가 실행하려는 프로그램에 적절히 자원을 할당하지 못하고, 컴퓨터의 성능 저하로 이어지는 쓰래싱(Thrashing)이 발생하는 것이다. 여기에서 구역성(Locality) 개념이 등장한다. 구역성에는 세 가지 종류가 있다. 인접한 메모리에 앞으로 참조될 데이터가 있을 가능성이 높은 공간적 구역성, 최근 사용된 데이터가 다시 사용될 가능성이 높은 시간적 구역성, 데이터가 기억장치에 저장된 순서대로 순차적으로 인출 및 실행될 가능성이 높은 순차적 구역성이다. 즉 메모리 공간의 일정부분을 집중 참조한다는 것이다. 이를 활용하여 프로세스가 참조하고 있는 페이지를 워킹 세트(Working Set)로 묶어 메모리에 올리는 것으로 쓰래싱을 방지할 수 있다.
Easy AI와 토픽 톺아보기
  • 1. 가상 메모리 관리 기법의 기본 동작 원리
    가상 메모리 관리 기법은 프로세스가 필요로 하는 메모리 공간을 실제 물리적 메모리 공간보다 크게 할 수 있도록 해주는 기술입니다. 이를 통해 프로세스는 자신의 주소 공간을 마음껏 사용할 수 있게 되며, 운영 체제는 물리적 메모리 공간을 효율적으로 관리할 수 있습니다. 가상 메모리 관리 기법의 핵심은 프로세스의 논리적 주소 공간과 실제 물리적 메모리 공간 간의 매핑을 통해 이루어집니다. 운영 체제는 이 매핑 정보를 페이지 테이블에 저장하고, 프로세스가 메모리에 접근할 때마다 이 테이블을 참조하여 실제 물리적 주소로 변환합니다. 이러한 과정을 통해 프로세스는 자신의 논리적 주소 공간을 사용할 수 있게 되며, 운영 체제는 물리적 메모리 공간을 효율적으로 관리할 수 있습니다.
  • 2. 페이징 기법
    페이징 기법은 가상 메모리 관리 기법 중 하나로, 프로세스의 논리적 주소 공간을 고정 크기의 페이지로 나누고, 이를 실제 물리적 메모리 공간의 프레임에 매핑하는 방식입니다. 이를 통해 프로세스는 자신의 주소 공간을 연속적으로 사용할 수 있게 되며, 운영 체제는 물리적 메모리 공간을 보다 효율적으로 관리할 수 있습니다. 페이징 기법의 장점은 메모리 단편화 문제를 해결할 수 있다는 점, 프로세스의 주소 공간 관리가 용이하다는 점, 그리고 메모리 공간 활용도가 높다는 점 등입니다. 다만 페이지 테이블 관리, 페이지 교체 알고리즘 등 추가적인 오버헤드가 발생한다는 단점도 있습니다.
  • 3. 세그먼트 기법
    세그먼트 기법은 가상 메모리 관리 기법 중 하나로, 프로세스의 논리적 주소 공간을 가변 크기의 세그먼트로 나누고 이를 실제 물리적 메모리 공간에 매핑하는 방식입니다. 이를 통해 프로세스는 자신의 주소 공간을 보다 효율적으로 사용할 수 있게 됩니다. 세그먼트 기법의 장점은 프로세스의 논리적 주소 공간 관리가 용이하다는 점, 메모리 단편화 문제를 해결할 수 있다는 점 등입니다. 다만 세그먼트 테이블 관리, 세그먼트 교체 알고리즘 등 추가적인 오버헤드가 발생한다는 단점도 있습니다.
  • 4. 구역성(Locality)이 페이징 기법에서 가지는 의미
    구역성(Locality)은 프로세스가 메모리에 접근할 때 특정 영역에 집중적으로 접근하는 경향을 의미합니다. 이는 페이징 기법에서 매우 중요한 의미를 가집니다. 구역성이 높은 프로세스의 경우, 페이지 교체 알고리즘이 효과적으로 작동하여 페이지 부재 발생 빈도를 낮출 수 있습니다. 반면 구역성이 낮은 프로세스의 경우, 페이지 부재 발생 빈도가 높아져 성능 저하가 발생할 수 있습니다. 따라서 운영 체제는 프로세스의 구역성을 고려하여 페이지 교체 알고리즘을 선택하고, 메모리 관리 정책을 수립해야 합니다. 이를 통해 가상 메모리 시스템의 전반적인 성능을 향상시킬 수 있습니다.