2015-01-25 1 views

답변

0

최신 OS에서는 가상 주소 공간이 프로세스마다 사용됩니다 (커널은 고유 한 가상 범위를 가짐). 이는 전체 OS에 비해 요구 사항이 훨씬 적음을 의미합니다. 가상 주소 공간은 대개 충분히 크며 (x64 시스템에서는 2-3GB, 다중 TB (Windows에서는 8 개)), 조각화는 OS 전반의 물리적 주소 공간만큼 큰 문제는 아닙니다. 여전히 문제가 발생할 수 있습니다. 특히 x86 또는 다른 32 비트 아키텍처에서 장 시간 실행되고 메모리가 부족한 응용 프로그램의 경우. 이를 위해 OS는 예를 들어 힙 코드의 형태로 메커니즘을 제공합니다. 응용 프로그램은 일반적으로 하나 이상의 메모리 범위를 시작할 때 힙 (heap)으로 예약하고 나중에 필요한 메모리 덩어리를 나중에 할당합니다 (예 : malloc). 여러 가지 방법으로 힙의 조각화를 처리하는 다양한 구현이 있습니다. Windows는 원한다면 사용할 수있는 특별한 낮은 조각화 힙 구현을 제공합니다. 다른 모든 것은 대개 응용 프로그램 또는 라이브러리에 달려 있습니다.

0

성명에 자격을 추가하겠습니다. 페이징 시스템은 커널이 페이지 가능할 때 물리적 주소 공간에서 분열을 거의 제거합니다.

일부 시스템에서는 사용자 모드 페이지 테이블 자체가 페이지 가능합니다. 다른 것들은 페이징 할 수없는 물리적 위치입니다. 그런 다음 분열을 일으킬 수 있습니다.

힙 할당에서 가상 주소 공간의 조각화가 발생하는 경향이 있습니다. 힙 관리자의 과제는 조각화를 최소화하면서 공간을 관리하는 것입니다.

관련 문제