malloc lab - explicit list (말록랩 직접 리스트) 방식 해결방법에 대한 자세한 보고서
- 최초 등록일
- 2012.11.19
- 최종 저작일
- 2011.11
- 16페이지/ 어도비 PDF
- 가격 6,000원
소개글
★과제할 때 참고만하시고 !!!! 열공하세요!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!★
- 해당 보고서에서 발췌한내용으로 해피캠퍼스에 보고서올린것을 발견하였을 경우 신고조치하겠습니다.
전자정보통신공학부의
운영체제 , unix 프로그래밍 , 시스템 프로그래밍 과제로 나오는 malloc lab (말록 랩) 의
explicit list 구현에 대한 방법과 함수 설명 등을 매우 자세하게 기록했던 보고서입니다. (가산점)
목차
1. 이 과제의 목표
2. Support Routines & 참고용 매크로
3. 구현 함수 설명
4. implicit 와 explicit 를 비교
본문내용
1. 이 과제의 목표
explicit list 방법을 이용하여 동적할당기를 mm-explicit.c 파일에 구현합니다.
2. Support Routines & 참고용 매크로
※ memlib.c안에 구현되어있는 support함수들!
▶ void *mem_sbrk(int incr);
Called by request More Space to increase heap size
힙사이즈를 증가시키기 위해 공간을 더 요구할 때 호출
▶ void *mem_heap_lo(void);
Returns a pointer to the first byte in the heap.
힙의 첫 번째 바이트를 가리키는 포인터를 리턴해주는 함수
▶ void *mem_heap_hi(void);
Returns a pointer to the last byte in the heap.
힙의 마지막 바이트를 가리키는 포인터를 리턴해주는 함수
▶ size_t mem_heapsize(void);
Returns the current size of the heap in bytes.
현재 힙의 크기를 바이트로 리턴해줌!
▶ size_t mem_pagesize(void);
Returns the system’s page size in bytes (4K on Linux systems).
시스템의 페이지 사이즈를 리턴......
<중 략>
extend heap함수는 malloc에서 맞는 블록을 찾지 못했을 경우, 힙을 확장하는데 호
출 됩니다. implicit과 완전 똑같은 함수라고 할 수 있습니다.
요청 받은 사이즈 words가 2의 배수일 경우 WSIZE인 4를 곱하고, 2의 배수가 아닌
경우에는 words에 1을 더해 2의 배수로 만들고 WSIZE를 곱하게 됩니다. 그래서
size는 8의 배수가 되게 됩니다.(2x4의 배수가 됨!) -> 정렬을 유지하기 위하여
요청한 크기를 인접한 2워드(8바이트)의 배수로 반올림! (책)
그리고 mem_sbrk함수를 호출하여 요청한 크기(words)를 8의 배수로 올린 크기
(size)로 heap을 늘려주고, 늘린 heap의 첫 부분을 가리키는 포인터를 bp에 저장해
줍니다.
참고 자료
없음