최근에 DB 관련 강의를 듣다가 든 궁금함에 대한 의견을 듣고 싶어서, 글 쓰게 되었습니다.
DB 에서 트랜잭션 동안 하나의 데이터(row)에 유일하게 접근하는 것을 보장하기 위해 Lock이라는 개념을 사용하는데요.
동일하게 OS에서도 쓰레드나 프로세스가 동일한 데이터에 접근할 경우에, mutual exclusion을 보장하기 위해 mutex나 semaphore 같은 lock을 사용하여 critical section 내에서의 데이터 접근을 보장하는 것으로 알고 있습니다.
여기서, 질문은 2가지입니다.
DB의 Lock과 OS Lock의 'Lock'이라는 개념은 동일한 개념이 각각 다른 도메인(DB, OS)에 사용되는 것이라고 생각해도 될까요?
데이터베이스도 결국 프로그램이기 때문에, 내부에 Lock을 사용하는 매커니즘을 구현해놓았을텐데, 이 때, 데이터베이스의 Lock 매커니즘 구현은 OS Lock에서 사용하는 mutex, semaphore 같은 것들로 구현해놓은 것인가요?