소개글
** 제목 : 조각 모음 시뮬레이터 만들기** 하는일 : 필요한 상황이 되었을때 여러곳에 흩어져 있는 데이터를 한곳으로 모으는 역할
** 구현 내용
1. 1000개 이상의 크기를 가지는 데이터 저장 영역을 만든다. (데이터는 예를 들면 character)
2. 1<= n <= 100개의 임의의 크기를 가지는 데이터 묶음(파일이라고 생각)을 랜덤하게 생성하여
할당한다.
3. 위 할당에 대한 정보를 별도의 할당Table에 둔다. (한 파일이 어느어느 레코드에 할당되어
있는지를 기록)
4. 생성된 데이터는 언제든 삭제 할 수 있다. 단 삭제는 테이블의 해당 영역을 초기화(할당 해제)
하면 됨. 데이터 저장영역에서 데이터를 지울 필요는 없음.
5. 데이터는 모든 영역을 골고루 사용하기 위해 주소가 증가하는 방향으로 할당하는 것을
원칙으로 한다.
1000개까지 할당하고 나면(중간에 삭제되었다 하더라도), 더이상 주소를 증가 시킬수 없으므로
처음부터 확인해서 삭제되고 빈 영역에 할당하면 됨.
6. 위의 과정을 필요한 만큼 반복시킨다.
* 처음에는 임의의 크기만큼 데이터들이 계속 할당되어도 연속적으로 할당되겠지만,
위 과정이 반복되면 연속된 공간이 부족해져서 여기저기 흩어진 상태로 할당하게 된다.
따라서 할당 Table을 잘 설계해야 하나의 파일이 데이터를 어디어디 할당하고 있는지를
잘 기록할 수 있게 된다.
7. 원하는 경우 전체 1000여개의 영역에 파일데이터가 어떻게 할당되었는지를 visual하게 보일수
있어야 한다.
8. 원하는 경우 효율을 높이기 위해 여기저기 흩어져 있는 파일 데이터들을 연속적으로 모을 수
있도록 해당 기능을 구현한다.(이 기능이 조각 모음 기능임)
9. 조각 모음이 이루어 지고 있는 과정을 역시 visual하게 보일 수 있어야 한다.
컴파일 실행환경
Microsoft visual studio 2010 같은거압축파일 내 파일목록
2701339_김형복_Simulator.docx
test/Debug/test.exe
test/Debug/test.ilk
test/Debug/test.pdb
test/ipch/test-95e98a61/test-2434c52c.ipch
test/test/Debug/cl.command.1.tlog
test/test/Debug/CL.read.1.tlog
test/test/Debug/CL.write.1.tlog
test/test/Debug/link-cvtres.read.1.tlog
test/test/Debug/link-cvtres.write.1.tlog
test/test/Debug/link.1020-cvtres.read.1.tlog
test/test/Debug/link.1020-cvtres.write.1.tlog
test/test/Debug/link.1020.read.1.tlog
test/test/Debug/link.1020.write.1.tlog
test/test/Debug/link.1208-cvtres.read.1.tlog
test/test/Debug/link.1208-cvtres.write.1.tlog
test/test/Debug/link.1208.read.1.tlog
test/test/Debug/link.1208.write.1.tlog
test/test/Debug/link.1248-cvtres.read.1.tlog
test/test/Debug/link.1248-cvtres.write.1.tlog
test/test/Debug/link.1248.read.1.tlog
test/test/Debug/link.1248.write.1.tlog
test/test/Debug/link.1404-cvtres.read.1.tlog
test/test/Debug/link.1404-cvtres.write.1.tlog
test/test/Debug/link.1404.read.1.tlog
test/test/Debug/link.1404.write.1.tlog
test/test/Debug/link.1456-cvtres.read.1.tlog
test/test/Debug/link.1456-cvtres.write.1.tlog
test/test/Debug/link.1456.read.1.tlog
test/test/Debug/link.1456.write.1.tlog
test/test/Debug/link.1848-cvtres.read.1.tlog
test/test/Debug/link.1848-cvtres.write.1.tlog
test/test/Debug/link.1848.read.1.tlog
test/test/Debug/link.1848.write.1.tlog
test/test/Debug/link.2204-cvtres.read.1.tlog
test/test/Debug/link.2204-cvtres.write.1.tlog
test/test/Debug/link.2204.read.1.tlog
test/test/Debug/link.2204.write.1.tlog
test/test/Debug/link.2356-cvtres.read.1.tlog
test/test/Debug/link.2356-cvtres.write.1.tlog
test/test/Debug/link.2356.read.1.tlog
test/test/Debug/link.2356.write.1.tlog
test/test/Debug/link.2892-cvtres.read.1.tlog
test/test/Debug/link.2892-cvtres.write.1.tlog
test/test/Debug/link.2892.read.1.tlog
test/test/Debug/link.2892.write.1.tlog
test/test/Debug/link.3012-cvtres.read.1.tlog
test/test/Debug/link.3012-cvtres.write.1.tlog
test/test/Debug/link.3012.read.1.tlog
test/test/Debug/link.3012.write.1.tlog
test/test/Debug/link.3456-cvtres.read.1.tlog
test/test/Debug/link.3456-cvtres.write.1.tlog
test/test/Debug/link.3456.read.1.tlog
test/test/Debug/link.3456.write.1.tlog
test/test/Debug/link.356-cvtres.read.1.tlog
test/test/Debug/link.356-cvtres.write.1.tlog
test/test/Debug/link.356.read.1.tlog
test/test/Debug/link.356.write.1.tlog
test/test/Debug/link.3632-cvtres.read.1.tlog
test/test/Debug/link.3632-cvtres.write.1.tlog
test/test/Debug/link.3632.read.1.tlog
test/test/Debug/link.3632.write.1.tlog
test/test/Debug/link.4276-cvtres.read.1.tlog
test/test/Debug/link.4276-cvtres.write.1.tlog
test/test/Debug/link.4276.read.1.tlog
test/test/Debug/link.4276.write.1.tlog
test/test/Debug/link.4776-cvtres.read.1.tlog
test/test/Debug/link.4776-cvtres.write.1.tlog
test/test/Debug/link.4776.read.1.tlog
test/test/Debug/link.4776.write.1.tlog
test/test/Debug/link.5888-cvtres.read.1.tlog
test/test/Debug/link.5888-cvtres.write.1.tlog
test/test/Debug/link.5888.read.1.tlog
test/test/Debug/link.5888.write.1.tlog
test/test/Debug/link.command.1.tlog
test/test/Debug/link.read.1.tlog
test/test/Debug/link.write.1.tlog
test/test/Debug/main.obj
test/test/Debug/mt.command.1.tlog
test/test/Debug/mt.read.1.tlog
test/test/Debug/mt.write.1.tlog
test/test/Debug/rc.command.1.tlog
test/test/Debug/rc.read.1.tlog
test/test/Debug/rc.write.1.tlog
test/test/Debug/test.exe.embed.manifest
test/test/Debug/test.exe.embed.manifest.res
test/test/Debug/test.exe.intermediate.manifest
test/test/Debug/test.lastbuildstate
test/test/Debug/test.log
test/test/Debug/test_manifest.rc
test/test/Debug/vc100.idb
test/test/Debug/vc100.pdb
test/test/main.c
test/test/test.vcxproj
test/test/test.vcxproj.filters
test/test/test.vcxproj.user
test/test.sdf
test/test.sln
test/test.suo
test/Debug/test.exe
test/Debug/test.ilk
test/Debug/test.pdb
test/ipch/test-95e98a61/test-2434c52c.ipch
test/test/Debug/cl.command.1.tlog
test/test/Debug/CL.read.1.tlog
test/test/Debug/CL.write.1.tlog
test/test/Debug/link-cvtres.read.1.tlog
test/test/Debug/link-cvtres.write.1.tlog
test/test/Debug/link.1020-cvtres.read.1.tlog
test/test/Debug/link.1020-cvtres.write.1.tlog
test/test/Debug/link.1020.read.1.tlog
test/test/Debug/link.1020.write.1.tlog
test/test/Debug/link.1208-cvtres.read.1.tlog
test/test/Debug/link.1208-cvtres.write.1.tlog
test/test/Debug/link.1208.read.1.tlog
test/test/Debug/link.1208.write.1.tlog
test/test/Debug/link.1248-cvtres.read.1.tlog
test/test/Debug/link.1248-cvtres.write.1.tlog
test/test/Debug/link.1248.read.1.tlog
test/test/Debug/link.1248.write.1.tlog
test/test/Debug/link.1404-cvtres.read.1.tlog
test/test/Debug/link.1404-cvtres.write.1.tlog
test/test/Debug/link.1404.read.1.tlog
test/test/Debug/link.1404.write.1.tlog
test/test/Debug/link.1456-cvtres.read.1.tlog
test/test/Debug/link.1456-cvtres.write.1.tlog
test/test/Debug/link.1456.read.1.tlog
test/test/Debug/link.1456.write.1.tlog
test/test/Debug/link.1848-cvtres.read.1.tlog
test/test/Debug/link.1848-cvtres.write.1.tlog
test/test/Debug/link.1848.read.1.tlog
test/test/Debug/link.1848.write.1.tlog
test/test/Debug/link.2204-cvtres.read.1.tlog
test/test/Debug/link.2204-cvtres.write.1.tlog
test/test/Debug/link.2204.read.1.tlog
test/test/Debug/link.2204.write.1.tlog
test/test/Debug/link.2356-cvtres.read.1.tlog
test/test/Debug/link.2356-cvtres.write.1.tlog
test/test/Debug/link.2356.read.1.tlog
test/test/Debug/link.2356.write.1.tlog
test/test/Debug/link.2892-cvtres.read.1.tlog
test/test/Debug/link.2892-cvtres.write.1.tlog
test/test/Debug/link.2892.read.1.tlog
test/test/Debug/link.2892.write.1.tlog
test/test/Debug/link.3012-cvtres.read.1.tlog
test/test/Debug/link.3012-cvtres.write.1.tlog
test/test/Debug/link.3012.read.1.tlog
test/test/Debug/link.3012.write.1.tlog
test/test/Debug/link.3456-cvtres.read.1.tlog
test/test/Debug/link.3456-cvtres.write.1.tlog
test/test/Debug/link.3456.read.1.tlog
test/test/Debug/link.3456.write.1.tlog
test/test/Debug/link.356-cvtres.read.1.tlog
test/test/Debug/link.356-cvtres.write.1.tlog
test/test/Debug/link.356.read.1.tlog
test/test/Debug/link.356.write.1.tlog
test/test/Debug/link.3632-cvtres.read.1.tlog
test/test/Debug/link.3632-cvtres.write.1.tlog
test/test/Debug/link.3632.read.1.tlog
test/test/Debug/link.3632.write.1.tlog
test/test/Debug/link.4276-cvtres.read.1.tlog
test/test/Debug/link.4276-cvtres.write.1.tlog
test/test/Debug/link.4276.read.1.tlog
test/test/Debug/link.4276.write.1.tlog
test/test/Debug/link.4776-cvtres.read.1.tlog
test/test/Debug/link.4776-cvtres.write.1.tlog
test/test/Debug/link.4776.read.1.tlog
test/test/Debug/link.4776.write.1.tlog
test/test/Debug/link.5888-cvtres.read.1.tlog
test/test/Debug/link.5888-cvtres.write.1.tlog
test/test/Debug/link.5888.read.1.tlog
test/test/Debug/link.5888.write.1.tlog
test/test/Debug/link.command.1.tlog
test/test/Debug/link.read.1.tlog
test/test/Debug/link.write.1.tlog
test/test/Debug/main.obj
test/test/Debug/mt.command.1.tlog
test/test/Debug/mt.read.1.tlog
test/test/Debug/mt.write.1.tlog
test/test/Debug/rc.command.1.tlog
test/test/Debug/rc.read.1.tlog
test/test/Debug/rc.write.1.tlog
test/test/Debug/test.exe.embed.manifest
test/test/Debug/test.exe.embed.manifest.res
test/test/Debug/test.exe.intermediate.manifest
test/test/Debug/test.lastbuildstate
test/test/Debug/test.log
test/test/Debug/test_manifest.rc
test/test/Debug/vc100.idb
test/test/Debug/vc100.pdb
test/test/main.c
test/test/test.vcxproj
test/test/test.vcxproj.filters
test/test/test.vcxproj.user
test/test.sdf
test/test.sln
test/test.suo