ABOUT ME

-

Graduate of Computer Engineering at Inha University

https://github.com/juwon0605

devprofessionalism@gmail.com
  • 10.세마포어(Semaphore), 뮤텍스(Mutex)
    Computer Science/Operating System 2021. 8. 24. 20:43

      ∙임계 구역(Critical Section)
       ∘여러 프로세스가 공유 데이터를 접근하는 프로그램 코드 부분
      ∙세마포어
       ∘멀티프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법
                -P: 임계 구역 들어가기 전에 수행(ex)S==1->S==0)
                -V: 임계 구역에서 나올 때 수행(ex)S==0->S==1)
                -S는 0이상의 정수
      ∙뮤텍스
       ∘임계 구역을 가진 스레드들의 실행시간이 서로 겹치지 않고 각각 단돈으로 실행되게 하는 기술
                -lock: 현재 임계 구역에 들어갈 권한을 얻음(다른 프로세스/스레드가 임계 구역 수행 중이면 
                           종료까지 대기)
                -unlock: 임계 구역을 모두 사용했음을 알림(대기 중인 다른 프로세스/스레드가 임계 구역에 
                               진입)
                -S==1인 이진 세마포어
       ➀데커(Dekker) 알고리즘
                -flag와 turn 변수를 통해 임계 구역에 들어갈 프로세스/스레드를 결정하는 알고리즘
                -flag: bool 타입의 배열(flag[i]=true->flag[i]=false)<->(flag[j]=false->flag[j]=true)
                -turn: 현재 임계 구역을 사용 중인 변수(turn=i->turn=j)<->(turn=j->turn=i)
       ➁피터슨(Peterson) 알고리즘
                -데커와 유사하지만 다른 프로세스/스레드에게 진입 기회를 양보하는 것에 차이가 있음
       ➂제과점(Bakery) 알고리즘
                -여러 프로세스/스레드 중 가장 작은 수의 번호표를 가지고 있는 프로세스가 임계 구역에 
                  진입하는 알고리즘
                -현재 실행 중인 프로세스 중에 가장 큰 번호 배정
                -모든 프로세스 번호와 비교하여 가장 작은 수의 번호표일 때 진입
                -임계 구역 사용 종료 시 번호를 0으로 초기화

     

    출처

    링크

    'Computer Science > Operating System' 카테고리의 다른 글

    12.페이지 교체 알고리즘  (0) 2021.08.26
    11.페이징(Paging), 세그먼테이션(Segmentation)  (0) 2021.08.25
    9.경쟁 상태(Race Condition)  (0) 2021.08.23
    8.데드락(Dead Lock)  (0) 2021.08.22
    7.CPU Scheduling  (0) 2021.08.21

    댓글

Designed by Tistory.