728x90
반응형
Chapter12. 프로세스 동기화
학습목표
- 동기화란 무엇인지 알아봅니다
- 공유 자원과 임계 구역 문제를 이해합니다
- 임계 구역 문제를 해결하기 위한 동기화 기법을 학습합니다
동기화의 의미
- 프로세스 동기화: 프로세스들 사이의 수행 시기를 맞추는 것
- 실행 순서 제어: 프로세스를 올바른 순서대로 실행하기
- 상호 배제: 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하기
- 즉, 동기화에는 실행 순서 제어를 위한 동기화가 있고, 상호 배제를 위한 동기화가 있다
공유자원과 임계 구역
- 공유 자원: 프로세스들이 사용하는 공동의 자원
- 동시에 실행하면 문제 발생
- 임계 구역: 동시에 실행하면 문제가 발생하는 자원에 접근하는 코드 영역
- 운영체제는 임계 구역 문제를 아래 세 가지 원칙 하에 해결함
- 상호배제
- 진행
- 유한 대기
동기화 기법
- 뮤텍스 락 (Mutex Lock):
- 설명: 상호 배제를 통해 한 번에 하나의 스레드만 리소스에 접근할 수 있도록 하는 락.
- 용도: 한 스레드가 작업을 끝낼 때까지 다른 스레드가 접근하지 못하게 막음.
- 장점: 단순하고 직관적.
- 단점: 데드락 발생 가능성.
- 세마포 (Semaphore):
- 설명: 카운터를 이용해 특정 수의 스레드가 동시에 리소스에 접근할 수 있도록 하는 동기화 도구.
- 용도: 리소스 접근 제한, 큐 크기 조절 등.
- 장점: 다수의 스레드 동시 접근 허용.
- 단점: 관리 복잡도 증가.
- 모니터 (Monitor):
- 설명: 락과 조건 변수를 포함한 고수준의 동기화 매커니즘.
- 용도: 객체의 상태를 보호하고, 조건에 따라 스레드 실행을 제어.
- 장점: 코드가 더 간결하고 유지보수 쉬움.
- 단점: 구현 복잡.
728x90
반응형
'코딩공부 > 운영체제' 카테고리의 다른 글
Chapter15. 파일 시스템 (1) | 2024.10.25 |
---|---|
Chapter14. 가상 메모리 (1) | 2024.10.25 |
Chapter13. 교착 상태(데드락) (0) | 2024.10.24 |
Chapter10. 프로세스와 스레드 (2) | 2024.10.24 |
Chapter09. 운영체제 시작하기 (0) | 2024.10.24 |