파일 잠금

파일 잠금()은 오직 특정한 시간에 한 명의 사용자나 프로세스 접근만을 허용함으로써 컴퓨터 파일에 접근을 제한하는 구조이다.

메인프레임 
IBM은 OS/360을 사용하는 메인프레임 컴퓨터에 사용하기 위해 1963년에 파일 잠금을 구현하였는데, 이 기능의 이름은 배타 제어(exclusive control)이다.

마이크로소프트 윈도우 
마이크로소프트 윈도우는 3개의 구별된 구조를 사용하여 공유된 파일의 접근을 관리한다:
 응용 프로그램들이 읽기, 쓰기, 삭제를 위한 파일 전반의 접근 공유를 지정할 수 있도록 공유 접근 제어를 사용
 하나의 파일 안의 영역들에 대한 읽기, 쓰기 접근을 중재하기 위해 바이트 범위의 잠금을 사용
 쓰기 또는 삭제 접근을 위해 열려진 파일의 실행을 윈도우 파일 시스템이 금지

유닉스 계열 운영 체제 
유닉스 계열 운영 체제(리눅스, 애플의 OS X 포함)들은 보통은 열려 있는 파일들을 자동으로 잠그지 않는다. 일부 종류의 파일 잠금 구조를 각기 다른 유닉스 배포판에서 사용할 수 있으며, 수많은 운영 체제는 한 가지 이상의 호환성을 지원한다. 가장 흔한 2가지 매커니즘은 과 이다. 세 번째 매커니즘은 으로, 처음 2개의 프리미티브 중 하나를 사용하여 구현되거나 분리될 수 있다. 일부 종류의 락을 필수(mandatory)로 규정하도록 구성할 수 있지만, 유닉스의 파일 잠금은 기본 어드바이저리(advisory)이다. 즉, 협동 프로세스들이 락들을 사용하여 이들 간에 파일에 대한 접근을 조율할 수 있지만 비협동 프로세스들은 마음껏 락을 무시하며 이들이 선택하는 어떠한 방식으로든 파일에 접근한다. 다시 말해, 파일 잠금은 I/O가 아닌 다른 파일 로커만을 잠근다.

버전 관리 시스템 
버전 관리 시스템에서 파일 잠금은 두 명의 사용자가 동시에 동일한 파일 버전을 변경하거나 저장 시 두 번째 사용자가 첫 번째 사용자의 변경사항을 덮어쓰지 못하게 한다. 이것은 파일 시스템에서 잠금 파일을 읽기 전용으로 표시함으로써 구현된다. 파일을 변경하기를 원하는 사용자는 언락(체크아웃) 기능을 수행하며 체크인(스토어) 기능이 끝나거나 락이 반전될 때까지 당사자 이외에 아무에게도 파일 잠금의 해제가 허용되지 않는다.

외부 링크 
  Everything you never wanted to know about file locking, a review of the Unix file locking options and their problems (dated December 13, 2010)
  File-private POSIX locks, a LWN.net article on file locks supported on Linux that behave differently from POSIX locks regarding inheritance and behavior on close

파일 시스템