[pintOS] Palloc과 bitmap의 연관성

c4fiber·2024년 1월 3일
0

SW사관학교 정글7기

목록 보기
47/49

pintOS는 페이지 관리를 어떻게 하는가?

pintOS에서는 Palloc 기능을 제공합니다. 이는 4kb 페이지크기 만큼 메모리를 할당해서 전달하는 방식입니다.
thread에 사용할 메모리를 할당받거나, 일부를 쪼개서 system call 의 malloc에 활용하기도 합니다.

  1. OS는 가용가능한 메모리 정보를 BIOS interrupt 0x15, Subfunction 0xE820 로 부터 전달받습니다.

  2. 가용한 메모리 크기를 4KB 단위로 쪼개서 개수를 셉니다. 이때 페이지의 개수가 bitmap의 크기가 되며 메모리의 시작주소를 함께 보관합니다.

  3. palloc을 통해 메모리 할당요청이 들어오면 bitmap을 순회하며 1인 값을 찾습니다. 이는 사용가능하다는 의미이며 몇번째 bit인지 + 메모리 시작주소를 이용해 전달할 주소값을 계산해 반환합니다.

profile
amazing idiot

0개의 댓글