동기화와 교착 상태

2025. 12. 1. 12:24·CS/운영체제

프로세스 동기화

1. 실행 순서 제어: 프로세스를 올바른 순서로 실행하기

2. 상호 배제: 동시에 접근해서는 안되는 자원에 하나만 접근하기

 

레이스 컨디션(race condition)

- 임계 구역을 동시에 설정하여 발생하는 문제. (상호 배제)

 

생산자와 소비자 문제

동기화가 이루어지지 않았을 경우 발생할 수 있는 문제를 보여주는 고전적 문제

- producer: 생상을 하는 프로세스(혹은 스레드)

- consumer: 소비를 하는 프로세스(혹은 스레드)

 

뮤텍스와 세마포어

뮤텍스 락 (Mutex Lock)

- 자물쇠 역할: 프로세스들이 공유하는 전역변수 lock

- 자물쇠 잠그기: acquire 함수

- 자물쇠 열기: release 함수

 

(잠겨있는지 계속 확인하는 방법: busy waiting)

 

세마포(semaphore)

- 뮤텍스 락은 기본적으로 공유 자원이 하나일 경우 상정

- 변수 S: 임계 구역에 진입할 수 있는 프로세스의 개수(사용 가능한 공유 자원의 개수)

- wait 함수: 임계구역에 들어가도 좋은지, 기다려야 할지를 알려주는 함수 (is S > 0?)

- signal 함수: 임계구역 앞에서 기다리는 프로세스에게 '이제 가도 좋다'고 신호를 주는 함수 ( S-=1)

 

동기화와 교착상태 (Deadlock)

프로세스는 실행을 위해 자원이 필요하다. 그런데 서로의 자원을 무한히 기다리기만 한다면?

일어나지 않을 사건을 기다리며 무한 루프를 도는 상태.

 

교착 상태 발생 조건

1. 상호 배제: 동시에 자원 사용이 불가능한 경우

2. 점유와 대기: 자원을 할당받은 채 다른 자원의 할당을 기다리는경우 

3. 비선점: 강제로 자원을 빼앗을 수 없는 경우

4. 원형 대기: 자원을 원형으로 대기할 경우

 

교착 상태 예방

- 발생 조건 하나 없애기.

 

교착 상태 회피

  •  교착 상태가 발생하는 이유를 자원의 무분별한 할당으로 간주.
  • P2 P1 P3 순으로 실행하면 교착 상태 회피 가능

 

* 교착 상태가 발생할 수 있는 지 없는 지 판단하는 알고리즘 == 은행원 알고리

'CS > 운영체제' 카테고리의 다른 글

파일 시스템  (1) 2025.12.01
가상 메모리 관리  (0) 2025.12.01
CPU 스케줄링  (0) 2025.11.24
프로세스와 스레드  (0) 2025.11.24
운영체제  (0) 2025.10.23
'CS/운영체제' 카테고리의 다른 글
  • 파일 시스템
  • 가상 메모리 관리
  • CPU 스케줄링
  • 프로세스와 스레드
Yun Lab.
Yun Lab.
Yun Lab.
  • Yun Lab.
    윤랩
    Yun Lab.
  • 글쓰기 방명록 관리자
  • 전체
    오늘
    어제
    • 분류 전체보기 (26)
      • CS (13)
        • 컴퓨터구조 (6)
        • 운영체제 (7)
        • 네트워크 (0)
        • 시스템 프로그래밍 (0)
        • 데이터베이스 (0)
      • Git (0)
      • AI Study (6)
        • LLM (0)
        • Machine Learning (6)
      • 자격증 (2)
        • AICE (1)
        • 리눅스마스터 (1)
      • 논문리뷰 (4)
        • NeurIPS (0)
        • ICLR (1)
        • ICML (1)
        • 기타 (2)
      • 코딩테스트 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Machine Learning
    의사결정나무
    운영체제
    교착상태
    쿠버네티스
    디시전트리
    서포트벡터머신
    2025ICML
    K-최근접이웃
    SVM
    ICML
    프로세스와 스레드
    도커
    ML
    multi-agent
    머신러닝
    LLM
    명렁어
    ICLR2025
    리눅스마스터
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.5
Yun Lab.
동기화와 교착 상태
상단으로

티스토리툴바