Data Engineering/혼공컴운
혼자 공부하는 컴퓨터구조 + 운영체제 12장 정리
potatode
2025. 4. 1. 20:36
12. 프로세스 동기화
12-1. 동기화란
동기화의 의미
- 프로세스 동기화
- 실행 순서 제어
- 상호 배제
- : 프로세스들 사이의 수행 시기를 맞추는 것
- 실행 순서 제어 동기화
- 동시에 실행되는 프로세스를 올바른 순서대로 실행되는 것
- 상호 배제 동기화
- 공유가 불가능한 자원이 동시 사용을 피하기 위해 사용하는 알고리즘
생산자와 소비자 문제
- 생산자 - 물건을 계속해서 생산하는 프로세스
- 소비자 - 물건을 계속해서 소비하는 프로세스
동기화가 제대로 이루어지지 않으면, 총합 결과가 달라질 수 있음
⇒ 동시 접근하면 안됨
공유 자원과 임계 구역
- 공유 자원 - 공동의 자원
- 두 개 이상의 프로세스 동시 실행 시 문제 발생
- 임계 구역
- : 동시에 실행하면 문제가 발생하는 자원에 접근하는 코드 영역
- 레이스 컨디션
- : 임계 구역은 두 개 이상의 프로세스가 동시에 실행되면 안되는 영역이지만, 잘못된 실행으로 인해 동시 다발적으로 실행하여 문제가 발생하는 경우
- 임계 구역 문제 해결 ⇒ 상호 배제를 위한 동기화 원칙
- 상호 배제
- 진행
- 유한 대기
12-2. 동기화 기법
- 동기화를 위한 대표적인 도구에 대해 학습
뮤텍스 락
: 상호 배제를 위한 동기화 도구
- 자물쇠 기능을 코드로 구현한 것
- 구현을 위한 함수
- acquire 함수
- : 프로세스가 임계 구역에 진입하기 전에 호출하는 함수
- release 함수
- : 임계 구역에서의 작업이 끝나고 호출하는 함수
세마포
- 공유자원이 여러개 있는 상황에서도 적용이 가능한 동기화 도구
- 뮤텍스 락은 1개인 경우를 가정
- 구현을 위한 변수,함수
- 전역변수 S
- : 임계 구역에 진입할 수 있는 프로세스의 개수를 나타냄
- wait 함수
- signal 함수
- 실행 순서도 제어 가능
모니터
: 공유자원에 접근하기 위한 인터페이스를 묶어 관리
⇒ 사용자가 사용하기 편리
- 조건 변수 사용
- 프로세스나 스레드의 실행 순서를 제어하기 위해 사용하는 특별한 변수
- wait와 signal 연산 수행 가능
반응형