2011-09-01 5 views
0

사용자 공간에 파일 시스템을 설계하고 테스트해야합니다. 요구 사항이 다르므로 사용 가능한 벤치마킹 도구를 사용하고 싶지 않습니다. 따라서 파일 시스템을 테스트하려면 파일 액세스 작업을 시뮬레이트하고 싶습니다. 이를 위해 먼저 ftw() 함수를 사용하여 기존 파일 시스템 (experimental) 중 하나를 살펴보고 파일의 모든 파일과 디렉토리를 나열합니다.파일 시스템 액세스 시뮬레이션

그런 다음 시뮬레이터를 호출하여 여러 프로세스에서 파일 액세스를 시뮬레이션합니다. 따라서, 시뮬레이터는 프로세스를 무작위로 시작한다. 즉, 실제 프로세스가 행했던 것을 수행하는 스레드를 생성한다. 스레드는 임의로 파일 작업 (읽기, 쓰기, 이름 바꾸기 등)을 선택하여이 작업에 대한 인수를 목록 (ftw()에 의해 생성됨)에서 선택합니다. 스레드는 이러한 파일 작업을 여러 번 수행 한 다음 프로세스 끝을 표시합니다. 시뮬레이터는 계속 스레드를 생성합니다. 스레드 실행은 실제 프로세스와 마찬가지로 중복 될 수 있습니다. 이제 스레드가 작업을 수행 할 때 파일이 삽입되고 삭제되고 이름이 바뀌며 파일 목록에서 업데이트됩니다.

아직 코딩을 시작하지 않았습니다. 그 계획은 제정신이 아닌가? 또한 시뮬레이터를 코딩하는 방법을 확신하지 못합니다. 일정 기간 동안 어떻게 스레드를 생성합니까? 이 작업을 수행 할 때 임의의 지연을 사용해야합니까?

고마워요.

+0

달성하려는 목표는 무엇입니까? 나는 플라이 낚시에 충실 할 것이다 - 모자는 더 멋지다. –

답변

0

그래, 나에게 상당히 합당한 것 같습니다. 필자는 예상 작업량과 어떻게 든 일치하는 파일 작업 (및 특정 파일에 대한 액세스)에 대한 통계적 분포를 시도하는 것을 고려할 것입니다. 일반적인 파일 시스템 작업 부하에 대한 통계를 시작으로 삼을 수 있습니다.

+0

@ Gian..Thanks. 나는 비슷한 라인에서 힌킹을하고 있었지만 어떻게 해야할지 잘 모르겠다. 내가 읽을만한 참조가있다. –

+1

http://www.debian-administration.org/articles/388 그들이 사용했던 작업량에 대해 이야기하는 것 같다. 파일 시스템을 비교하십시오. 파일 트리를 복사 한 다음 다시 복사하는 것과 같은 일은 멋진 테스트처럼 보일 것입니다. – Gian

0

제대로 작동하는지 확인하기 위해 괜찮은 테스트 케이스가 필요한 것 같습니다. 잠자기()를 사용하여 산란하는 스레드 사이에서 기다리거나 한 번에 모두 스폰하고 작업을 수행 한 다음 조금만 기다린 다음 다른 작업을 수행 할 수 있습니다. IMO가 많은 요청을하면 그러면 파일 시스템이 정상적으로 작동 할 가능성이 있습니다. PostMark의 예는 다른 파일과 페이지를 디스크에서 읽어야하는지 확인하기 위해 임의의 위치에서 읽기/쓰기를 수행하는 다른 벤치 마크에 미친 듯이 덧붙입니다.

+0

감사합니다 ... 제 요구 사항은 프로세스 간 파일 공유를 유도하는 것입니다. –

+0

사실 OSC 및 공유 메모리 페이지에서 파일 *로 IPC를 수행해야합니다. 한 번에 여러 프로세스에서 파일을 열어 편집 한 경우 OS를 수정하지 않는 한 정확성이 확보되지 않을 수 있습니다. 블록 I/O 벡터를 재정렬하고 병합하여 잘못된 출력을 생성 할 수 있습니다. –

+0

나는 공유를 처리하는 코드를 작성했습니다 ... 그리고 그것이 제가 확인하고 싶은 것입니다. –

관련 문제