● 논리(물리) 메모리와 태스크 메모리 레퍼런스 사이에서 매핑을 관리한다.
● 이용 가능한 메모리 공간으로 어떤 프로세스가 로드될지를 결정한다.
● 시스템을 구성하는 메모리 프로세스를 위한 메모리를 할당 및 해제한다.
● C 언어의 'alloc'과 'dealloc' 함수처럼,(프로세스 내에서) 코드 요청의 메모리 할당 및 해제 또는 특정 버퍼 할당 및 해제 루틴을 지원한다.
● 시스템 컴포넌트들의 메모리 사용을 추적한다.
● 프로세스 메모리 보호를 보장한다.
대부분의 OS 프로세스들은 보통 실행되는 루틴에 따라 kernel mode와 user mode의 두 모두 중 하나에서 동작한다. 커널 루틴들은 미들웨어 또는 어플리케이션과 같은 소프트웨어의 상위 계층들과는 다른 메모리 공간 및 계층 안의 커널모드(관리자모드)에서 동작한다. 전형적으로 소프트웨어의 이러한 상위 계층들은 사용자 모드에서 동작하며, 시스템호출(system call), 커널의 서브루틴으로서의 상위 레벨 인터페이스를 통해서만 커널 모드에서 동작하는 것에 접근이 가능하다.
처리를 위해 RAM으로 로드 될때 다중 프로세스는 동일한 물리 메모리를 공유하고 있기 때문에, 프로세스들이 하나의 물리 메모리 공간의 안팎으로 교체될 때 서로서로에게 의도 하지 않은 영향을 미치지 못하도록 보호 메커니즘이 있어야 한다. 보통 운영체제에 의해 메모리 스와핑이라는 방법으로 해결하는데 이것은 메모리의 일부분이 런타임시 메모리 안팎으로 교체되는것을 말한다.
댓글 없음:
댓글 쓰기