Unix에서 레코드 잠금은 파일에 동시에 액세스할 때 데이터 일관성을 유지하기 위해 특정 기간 동안 파일의 일부를 잠그는 데 사용되는 기술입니다. 이 메커니즘에서 강제 잠금은 파일의 일부를 독점적으로 잠그는 데 사용되는 기술입니다. 파일에 강제 잠금이 활성화되면 다른 프로세스는 파일의 잠긴 부분에 있는 데이터를 읽거나 쓸 수 없습니다. 따라서 파일 강제 잠금을 활성화하려면 다음 절차를 수행하십시오.
Turn ON the set group id bit and turn OFF the group execute bit for the file to be lock.
따라서 이러한 그룹 ID를 저장하기 위해 이 프로세스에 필요한 것은 무엇이며, 강제 잠금을 활성화하기 위해 그룹 ID에 대해 특별히 이 작업을 수행하려는 이유는 무엇입니까? 나는 많은 참고 자료를 보았지만 모두 규칙이 구현된 이유가 아니라 규칙을 설명할 뿐입니다.
답변1
리눅스 커널 문서Linux 운영 체제에 대한 강제 파일 잠금몇 가지 역사가 있습니다:
System V 강제 잠금 방식은 기존 사용자 코드에 가능한 한 적은 영향을 미치도록 설계되었습니다. 이 체계는 개별 파일을 강제 잠금 후보로 표시하고 기존 fcntl()/lockf() 인터페이스를 사용하여 일반적인 권고 잠금인 것처럼 잠금을 적용하는 것을 기반으로 합니다.
파일 모드에서 그룹 ID 비트를 설정하고 그룹 실행 비트를 제거하여 파일을 강제 잠금 후보로 표시합니다. 이는 기존 사용자 프로그램을 손상시키지 않기 위해 System V 구현자가 선택한 의미 없는 조합입니다.
(더 구체적으로,UNIX 환경의 고급 프로그래밍책에서는 이것이 System V 릴리스 3에서 수행되었다고 말합니다. )