728x90
반응형

Chapter12. 프로세스 동기화

학습목표

  • 동기화란 무엇인지 알아봅니다
  • 공유 자원과 임계 구역 문제를 이해합니다
  • 임계 구역 문제를 해결하기 위한 동기화 기법을 학습합니다

동기화의 의미

  • 프로세스 동기화: 프로세스들 사이의 수행 시기를 맞추는 것
    • 실행 순서 제어: 프로세스를 올바른 순서대로 실행하기
    • 상호 배제: 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하기
  • 즉, 동기화에는 실행 순서 제어를 위한 동기화가 있고, 상호 배제를 위한 동기화가 있다

공유자원과 임계 구역

  • 공유 자원: 프로세스들이 사용하는 공동의 자원
    • 동시에 실행하면 문제 발생
  • 임계 구역: 동시에 실행하면 문제가 발생하는 자원에 접근하는 코드 영역
  • 운영체제는 임계 구역 문제를 아래 세 가지 원칙 하에 해결함
    • 상호배제
    • 진행
    • 유한 대기

동기화 기법

  1. 뮤텍스 락 (Mutex Lock):
    • 설명: 상호 배제를 통해 한 번에 하나의 스레드만 리소스에 접근할 수 있도록 하는 락.
    • 용도: 한 스레드가 작업을 끝낼 때까지 다른 스레드가 접근하지 못하게 막음.
    • 장점: 단순하고 직관적.
    • 단점: 데드락 발생 가능성.
  2. 세마포 (Semaphore):
    • 설명: 카운터를 이용해 특정 수의 스레드가 동시에 리소스에 접근할 수 있도록 하는 동기화 도구.
    • 용도: 리소스 접근 제한, 큐 크기 조절 등.
    • 장점: 다수의 스레드 동시 접근 허용.
    • 단점: 관리 복잡도 증가.
  3. 모니터 (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

+ Recent posts