Semaphore vs Mutex

공부의 기록·2022년 11월 9일
0

Dev Computer Science

목록 보기
18/18
post-thumbnail

이 문서는 상호 협렵적인 복수의 프로세스 환경에서 안정적인 프로그래밍을 할 수 있도록 지원해주는 Semaphore에 대한 내용이 주를 이루고 있습니다.
2022년 11월 9일에 Jeff(Edint)님이 말씀해주신 키워드를 2022년 11월 9일에 정리해서 작성해봅니다.


1. Prerequisites.

이 문서의 주제, Semaphore vs Mutex를 이해하기 위한 기본적인 CS 지식에 대한 내용들입니다.

Process 에 대한 내용, Multi Process 환경으로 구동하는 이유 등에 대한 것들을 다루고 있습니다. 높은 수준으로 추상화된 내용이므로, 더욱 자세한 내용은 별도의 문서를 참고해주세요.

1.1. What is Process?

Process란, 실행 중인 프로그램을 의미합니다.
즉, (편의를 위해서) 여기서 말하는 프로세스는 모두 개별의 프로그램이라고 이해하면 좋을 것 같습니다.

1.2. Seperated Process.

매우 낮은 확률로 다른 기능을 하는 복수의 프로세스가 협력해야 할 경우가 있습니다.

이 경우 다음과 같이 특별한 상황이 발생합니다.

  1. 프로세스 간 메모리 전송
  2. (공유 메모리를 통해) 공유 자원에 여러 프로세스 접근

이러한 특수한 요구사항에 맞춰서 만들어진 도구가 바로 Semaphore와 Mutex입니다.


2. Mutex vs Semaphore

조금 더 깊이 있게 공부 중입니다.
내용 정리가 완료되면, 이식하도록 하겠습니다.

2.1. Mutex

2.2. Semaphore

2.3. 언제 Semaphore를 사용했을까?

이러한 부분에 대한 감을 잡기 위해서 다양한 사례들을 포함해서 공부해야 할 것 같습니다.

2.4. References

profile
2022년 12월 9일 부터 노션 페이지에서 작성을 이어가고 있습니다.

0개의 댓글