컴파일 된 포트란에 코드가 있으며 수퍼 컴퓨터에서 pbs 작업으로 실행되도록 보냈습니다. 을 이미 실행중인 프로그램으로 유지하면서 소스 코드를 수정하고 다시 컴파일하려고합니다. 제 질문은 소스 코드 을 수정하고 다른 실행 파일로 실행중인 pbs 작업이있는 경우 새 실행 파일을 만들면 어떻게됩니까? 원본 실행 파일의 결과가 수정 되었습니까?토크가있는 프로그램 실행
감사합니다.
컴파일 된 포트란에 코드가 있으며 수퍼 컴퓨터에서 pbs 작업으로 실행되도록 보냈습니다. 을 이미 실행중인 프로그램으로 유지하면서 소스 코드를 수정하고 다시 컴파일하려고합니다. 제 질문은 소스 코드 을 수정하고 다른 실행 파일로 실행중인 pbs 작업이있는 경우 새 실행 파일을 만들면 어떻게됩니까? 원본 실행 파일의 결과가 수정 되었습니까?토크가있는 프로그램 실행
감사합니다.
rename() 시스템 호출로 실행 파일을 원자 단위로 대체하는 경우 실행중인 프로그램이 이전 실행 파일을 계속 사용하도록 작동해야합니다. OTOH 기존의 실행 파일에 비트와 조각을 쓰는 것으로 교체가 발생하면 실행중인 실행 파일이 영향을받을 수 있습니다.
FWIW는 fortran, pbs 또는 torque와는 아무 관련이 없으며 POSIX 파일 시스템 의미와 관련이 있습니다. POSIX 파일 시스템은 본질적으로 참조 카운트 된 객체 저장소이며, 마지막으로 삭제시 삭제가 가능합니다. rename()을 사용하여 실행 파일을 바꾸면 디렉토리에 더 이상 참조가 없으므로 이전 실행 파일의 참조 횟수가 1 씩 줄어 듭니다. 그러나 실행 프로그램은 여전히 참조를 보유하고 있으며이를 계속 사용할 수 있습니다. 새로운 실행 파일은 자체 참조 카운트를 가진 별도의 객체입니다.