2011-09-14 3 views
2

컴파일 된 포트란에 코드가 있으며 수퍼 컴퓨터에서 pbs 작업으로 실행되도록 보냈습니다. 을 이미 실행중인 프로그램으로 유지하면서 소스 코드를 수정하고 다시 컴파일하려고합니다. 제 질문은 소스 코드 을 수정하고 다른 실행 파일로 실행중인 pbs 작업이있는 경우 새 실행 파일을 만들면 어떻게됩니까? 원본 실행 파일의 결과가 수정 되었습니까?토크가있는 프로그램 실행

감사합니다.

답변

7

rename() 시스템 호출로 실행 파일을 원자 단위로 대체하는 경우 실행중인 프로그램이 이전 실행 파일을 계속 사용하도록 작동해야합니다. OTOH 기존의 실행 파일에 비트와 조각을 쓰는 것으로 교체가 발생하면 실행중인 실행 파일이 영향을받을 수 있습니다.

FWIW는 fortran, pbs 또는 torque와는 아무 관련이 없으며 POSIX 파일 시스템 의미와 관련이 있습니다. POSIX 파일 시스템은 본질적으로 참조 카운트 된 객체 저장소이며, 마지막으로 삭제시 삭제가 가능합니다. rename()을 사용하여 실행 파일을 바꾸면 디렉토리에 더 이상 참조가 없으므로 이전 실행 파일의 참조 횟수가 1 씩 줄어 듭니다. 그러나 실행 프로그램은 여전히 ​​참조를 보유하고 있으며이를 계속 사용할 수 있습니다. 새로운 실행 파일은 자체 참조 카운트를 가진 별도의 객체입니다.