1. 페이징이 필요한 이유

 

 

 

 1) 메모리 단편화

 

   메인 메모리에 여러 프로세스를 연속적으로 할당한 후에 몇몇 프로세스를 종료하게 되면 프로세스들이 종료된

   자리 앞 뒤로는 다른 프로세스가 여전히 올라가 있고 종료된 자리만 비게 된다(Hole).

 

   이 빈자리들이 다양한 크기로 여러 개 생기게 될 경우 빈자리들의 총합이 다음에 올라갈 프로세스보다 큼에도

   불구하고 맞는 자리가 없어서 프로세스가 올라오지 못하는 현상이 발생하게 되는 것을 외부 단편화라고 한다.

   (external fragmentation)

 

   단편화가 발생할 경우 메모리를 효율적으로 사용할 수 없게 된다.(일반적으로 1/3 정도를 못쓰게 된다고 함.)

 

 

 

 

 

2. 페이징

 

 

 

 1) 프로세스를 일정 크기로 쪼갠 것을 page라고 하고 메모리를 일정 크기(page의 크기와 같음)로 쪼갠 것을

    frame이라고 한다.

 

 2) cpu가 알고 있는 logical address를 page table(MMU)에 매칭 시켜 실제 메모리에는 logical address와는

  다른 주소(physical address)에 할당한다.

   (page를 frame에 할당)

 

 3) page를 연속적으로 가지고 있는 가상 메모리와 page table을 이용하면, 실제로 메모리 상에 프로세스가

  쪼개져서 존재하더라도 프로세스를 실행시킬 수 있게 된다.

 

 4) 실제 메모리 상에 프로세스가 연속적이지 않고, 더 작은 크기로  존재할 수 있게 되므로 메모리 단편화

  문제를 해결할 수 있다.

 

 

 

BELATED ARTICLES

more