Critical Section

Noah·2022년 8월 1일
0

OS Study

목록 보기
9/16

Critical Section

  • 뭔가 한 구역에 대해서 오류가 발생할 수 있는것
  • Multi thread or Multi process 시스템에서 각각의 쓰레드는 코드 영역을 가지고 있는데 해당 코드 영역을 critical Section이라 함
  • 여러 쓰레드들이 공통으로 사용하는 변수 or 파일 or 데이터베이스 테이블을 공통 리소스의 예시로 볼 수 있다
  • 문제 해결법
    • Mutual exclusion (상호배타) : 오직 한 쓰레드만 진입
    • Progress (진행) : 진행 결정은 유한 시간 내
    • Bounded waiting (유한 대기) : 어느 쓰레드라도 유한 시간 내 접근
    • 위 3가지 조건이 모두 만족하는 방법을 사용해야 한다.

Mutual exclusion

  • 둘 이상의 프로세스가 동시에 CS에 진입하는것을 막는 방법
  • 연산
    • enter()
      • CS에 다른 프로세스가 있는지 검사
      • CS에 다른 프로세스가 있다면 대기
    • exit()
      • CS를 벗어나는 과정
      • CS 를 나올때 나왔다고 표시함

Progress

  • CS 안에 어떤 프로세스가 먼저 접근하는가를 정하는것

Bounded waiting

  • 무한정 기다리지 않도록 해야함
    • Starvation 방지
profile
BackEnd 개발자가 되기 위해 공부중입니다!

0개의 댓글