8장. 메모리 관리

  • 페이지 교체 기법 : 요청된 모든 데이터가 실 메모리에 모두 매핑되어 있고, 다른 주소의 데이터를 프로그램에서 요청 할 경우, 현재 사용 중인 어떤 페이지를 새로 요청한 페이지로 교체해야 하는데 이를 페이지 교체 기법이라 한다.
  • 페이지 테이블을 1단계로 하게 되면, 각 프로세스가 4GB 까지 매핑 가능하다고 할 때, 각 엔트리는 프레임 번호를 가지고 있게 된다. 한 엔트리의 크기가 4Bytes가 될 것이고, 갯수는 1048576 개가 되므로, 총 4MB가 된다. 프로세서가 3개 수행되는 경우에는 12MB 가 필요하게 될 것이다. 프로세서 갯수에 따라 메모리 정보 표시를 위해 상당한 메모리가 요구된다. 그래서 이를 두 단계로 나누게 되면 프로세서 갯수에 상관없이 Page Directory(4KB), Page Tables(4MB) 가 필요하게 된다.
  • Page Directory 부분만 메모리에 올려놓고, Page Table 에 대해서는 필요 시에만 만들어 메모리에 올려 놓아서 이와 같은 낭비를 줄이고 있다.
  • 세그먼트 기법 : 프로그램과 관련된 데이터들에 대하여 여러 개의 세그먼트들로 나누어 다루게 되며 이 세그먼트의 크기는 똑같을 필요가 없다.
  • 응용 프로그램 수행시 세그먼트 형태로 코드부, 리소스부, 데이터부, 디버깅 정보, 스택 메모리 등의 부분을 따로 만들어 배치 하게 된다. 각 세그먼트의 세부 사항은 인텔 매뉴얼을 참고 하기 바란다. 마이크로프로세서는 세그먼트 테이블을 참조하여 해당 세그먼트의 시작 주소와 더해져 실제적인 물리적 위치로 변환해 주기 때문에 다른 세그먼트의 데이터를 다루기 편리하다.

    1.JPG 

 

  •  이러한 세그먼트 기법은 문제점이 있는데, 세그먼트 크기가 크고, 메모리가 모든 세그먼트를 올리기에 불충분 하게 되면, 세그먼트 들을 올리고 내리는 작업을 반복해야 되고, 크기가 커서 큰 오베헤드를 지불해야한다. 해결방법으로, 세그먼트의 크기를 가능한 작게 만들어 배치하는 것인데 즉, 세그먼트와 페이징 기법을 병합하여 사용하는 것이다.
  • 페이징은 외부 단편화가 존재하지 않고 주기억장치를 효율적으로 사용할 수 있으며, 세그먼트의 경우 가변적인 자료구조, 모듈성의 처리, 그리고 공유와 보호를 지원하는 등의 장점을 가제 된다.

설정

트랙백

댓글