Contigous Memory allocatoin (연속할당)을 구현해보려고 합니다!ㅠ
늘빈
지금 설계중인데요..
개념적인 문제가 있어서 고수님들한테 이렇게 여쭈어 보게 되었습니다.
메모리 관리 프로그램인데요 .
예를 들어
초기 메모리 사이즈 200;
첫번째로 , 50 size 만큼 메모리를 할당하려고 합니다.
두번쨰로, 30 size 만큼 메모리를 할당합니다.
세번째로, 50size 를 프리 시킵니다.
궁금한 점은, 우선 링크드 리스트로 구현을 할지 배열로 구현을 할지.. 어떤게 효율적인지 잘 모르겠습니다.
또 다른 궁금점은 메모리에 대한 구조체를 만들어서 사용하려고 하는데요..
size 50이 할당되었다면 200 사이즈에서 0~ 50 사이즈를 할당 받게 되잖아요
그럼 그담에 30 size를 할당할때는 앞에 할당된게 있나 없나를 검사한다음에 51~ 80까지 입력하면 될까요..?
정확히 말하자면(제가 생각하기로는) 노드 사이즈를 검색한다음에 그 담사이즈부터 입력을 하는것이죠
노드 1 은 50size 이렇게 있으면 검사를 해서 사이즈가 50이다 이러면 다음 할당은 51부터 할당
이런식으로 size 로 구분해서 할당하는 방법.. 될까요..? 생각이 많습니다 ㅠㅠ 도와주세요 ㅠㅠ
혹시몰라 과제 파일 첨부합니다.
-
자올
매우감사합니다~!
배열보다는 리스트 스타일이 나을까요?
제 생각에는 배열은 이미 메모리 할당을 해서 잡아먹고 있지만
링크드 리스트 새로운 메모리가 들어올때만
할당을 하니까.. 좀 더 효율적일거라고 생각하는데..
제가 너무 단편적으로 생각하는건가요..?ㅠ -
우울녀
사용중인 메모리 공간에 대한 정보는 시작주소와 사용하는 길이겠죠.
새로운 메모리 공간을 확보하기 위해 필요한 공간이 있는지 확인하려면
하나의 메모리 공간이 끝난 지점이나 전체 메모리의 시작에서부터 그 다음 메모리 공간이 시작하기 전까지의 공간이, 지금 필요한 메모리의 크기보다 크다면 그곳을 할당하면 됩니다.
이것이 next-fit가 되겠죠.
그러니까 이중 루프가 되려나요 -_-;;
바깥 루프는 빈공간의 시작주소를 찾고, 안쪽 루프는 현재 시작주소보다 뒤