이 글은 "혼자 공부하는 컴퓨터 구조 + 운영체제"를 읽고 이해한 내용을 복습하기 위해 작성하는 글입니다.
이미지 출처 : 혼자 공부하는 컴퓨터 구조 + 운영체제
프로세스 동기화
1. 동기화
- 프로세스 동기화 : 프로세스들 사이 수행시기를 맞추는것
- 공유 자원 : 공동으로 사용하는 자원 (전역변수, 파일, 입출력장치 등)
- 임계 구역 : 공유자원에 접근하는 코드 중 동시에 실행하면 문제가 발생하는 코드영역
- 실행순서 제어를 위한 동기화
- 동시에 실행되는 프로세스를 올바른 순서대로 실행하는 것
- 상호 배제를 위한 동기화
- 공유가 불가능한 자원의 동시사용을 피하기 위해 사용
2. 동기화 기법
- 뮤텍스 락
- 상호배제를 위한 도구 (동시에 접근해서는 안되는 자원에 동시에 접근 못하도록 하는것)
- 공유자원이 1개
- lock 변수
- 프로세스들이 공유하는 전역변수
- acquire 변수
- 프로세스가 임계구역에 진입전에 호출하는 함수
- release 변수
- 임계구역에서 작업이 끝나고 호출하는 함수
- 세마포
- 공유자원이 여러개
- 전역변수 S
- 임계구역에 진입가능한 프로세스의 수
- wait 함수
- 임계구역에 들어가야 하는지, 기다려야 하는지 알려주는 함수
- signal 함수
- 기다리는 프로세스에게 들어가라는 신호를 주는 함수