2013-03-02 6 views
0

메모리 관리 작동 방식을 이해할 수 없습니다. 누군가가 어떻게 설명 할 수 있습니까? 어떤 조언을 주셔서 감사합니다. 메모리 관리 할당

  • 우리는 작업 P1과 P2가 메모리

    의 연속 영역을 할당

    1. 연속 시간에 온다.

    2. P1에는 123kB의 메모리가 필요하고 P2에는 240kB의 메모리가 필요합니다.

b) P2의 출현 상태 3 위치 메모리 P1

c) 그리의 출현 상태 2 메모리 위치에 그려!

사진 설명 : 메모리 할당은 어떤 OS가 완료되면 일반적으로, 그것은 일반적으로 위치를 쉽게 찾을 수 있기 때문에 첫 번째 작은 값을 할당하는 작업을 완료 http://i.imgur.com/OpfucGA.png

+0

개인 할당 자에 크게 의존 *하지 않습니까? – delnan

+0

잘 할당 자에 따라 달라지지 않는다고 생각합니다. 내가 잘못하지 않는다면 다중 프로그래밍을 지원하지 않기 때문에 항상 한 가지 작업 만 수행 할 수 있기 때문에 쉽습니다. 그러나 나는 재배치 등록의 가치를 찾아야 만하는 다음 문제를 겪었다. 아무도 내가 그들을 어떻게 찾을 수 있는지 아니? "압축해야하는 경우 각 주 및 역할에 대한 재배치 레지스터의 값을 적어 둡니다". 나는 내가 그것을 어떻게 찾을 수 있는지 전혀 모른다. –

+0

적어도 두 가지 할당 체계가있어 메모리 사용량이 다소 다릅니다. [버디 할당 자] (http://en.wikipedia.org/wiki/Buddy_memory_allocation)는 OS와 프로세스의 크기를 둘 다 올림합니다 (2의 제곱으로). 반면에 충분히 작은 세분성을 가진 first-fit allocator는 조각화없이 블록을 서로 옆에 놓을 것입니다. 이제는 클래스가 특정 (클래스의) 메모리 할당 스키마에만 관심을 가질 수 있지만이 방법이 여러 가지있을 수 있다는 것을 알고 있습니다. – delnan

답변

0

.

대용량 공간 요구가있는 경우 OS는 먼저 물리적 RAM에서 이러한 공간을 찾으려고 시도합니다. 실패하면 OS가 페이징 또는 다른 가상 메모리 메소드를 사용합니다. 일반적으로 더 많은 시간이 소요됩니다 따라서 더 작은 공간의 할당이 먼저 수행됩니다.

따라서 귀하의 경우에는 작업 P1이 우선 순위가 높아지고 123kB가 먼저 할당 된 다음 작업 P2가 할당됩니다.

그러나 프로그램의 프로세스 우선 순위가 달라질 수 있습니다. 예를 들어 작업 P2의 우선 순위가 작업 P1보다 높으면 작업 P2의 우선 순위가 높아지고 우선 240kB가 할당되고 그 다음에 작업 P1.