(1) 메모리 관리의 이해와 기법 소개
: 태스크는 실행되기 위해 궁극적으로 주기억 장치인 메모리에 적재되어야 한다. 커널은 태스크를 메모리의 어디에, 언제, 어떻게 적재할 것인지와 같은 관리가 필요하다. 메모리를 다루기 위해 크게 고려할 사항은 속도 / 용량 이다.


(2) 속도
○ 메모리의 속도는 CPU의 속도에 상대적으로 느리다.
○ HDD의 속도는 메모리의 속도보다 상대적으로 느리다.
○ 이러한 단점을 보완하기 위해서
  - H/W적으로 CPU를 캐시 메모리에 두고, 메모리에는 버퍼캐시를 둬서 해결할 수 있다.


(3) 용량
○ 멀티태스킹 환경에서 다수의 태스크가 메모리에 적재되어 실행된다.
○ 태스크 전체의 크기가 물리적 메모리 보다 커지는 문제는, 실행될 프로그램 전체가 메모리에 적재되어야 할 필요가 없으며,
    부분적재를 통해 프로그램의 수행이 가능하다는 개념을 통해 해결할 수 있다.(태스크의 가상 메모리공간에 있는 페이지들
    가운데 현재 수행에 필요한 부분만 올려 수행한다.)
○ 이후 수행에 필요한 부분이 있으면 그때 메모리에 로드하고, 메모리가 부족하다면 이전 부분의 내용을 다시 하드디스크로
    언로드 한다.

○ 기본 핵심
  - 여러 태스크들이 동시에 실행되면서 각기 다른 태스크가 사용하는 메모리영역을 침범하지 않아야 한다.
  - 실제 시스템에 장착된 작은 크기의 물리메모리의 한계를 극복하기 위해 리눅스는 가상메모리, 페이징기법 등을 적용한다.


※ 출처 : http://idkkangjs.blog.me/30091117058

by 민트앤라떼 2011. 9. 27. 10:22