[OS] Mutual Exclusion의 방법과 유의점

2023. 2. 26. 16:23·CS/OS

Mutual Exclusion 방법

1. Compare & Swap

while문을 돌면서 크리티컬 섹션에 접근이 가능한 상태인지 (bolt=0 등) 계속체크하며 대기한다.

이 방식은 계속 cpu를 잡아먹는 busy_wating이 발생한다.

 

2. Semaphore

크리티컬 섹션에 들어가기 전에는 자원을 쓴다는 표시로

sem_wait (값을 감소), 자원을 다 썼으면 semSignal(값을 증가)를 처리해서 mutual_exclusion을 한다.

이건 busy_wating이 없다.

 

이 외에도 많은 방법이 존재한다.

 

Mutual Exclusion을 할 때 유의해야 할 점

1. 공유개체에 대해 한 번에 하나의 프로세스면 사용 가능.

2. deadlock이나 starvation이 없어야 함.

3. 프로세스를 사용하는 다른 프로세스가 없음에도 불구,크리티컬 섹션 접근을 거부하면 안 됨.

4. 프로세스는 제한된 시간 동안만 해당 크리티컬 섹션 내에 유지됨. (다른 프로세스들이 startvation에 걸리지 않도록)

 

 

'CS > OS' 카테고리의 다른 글

[OS] VM, Trace, Dispatcher, Quantum  (0) 2023.03.01
[OS] Suspend  (0) 2023.02.26
[OS] I/O techniques(IO에서 데이터를 전송할 때)  (0) 2023.02.26
[OS] The Memory Hierarchy  (0) 2023.02.26
[OS] 컴퓨터 시스템의 요소  (0) 2023.02.26
'CS/OS' 카테고리의 다른 글
  • [OS] VM, Trace, Dispatcher, Quantum
  • [OS] Suspend
  • [OS] I/O techniques(IO에서 데이터를 전송할 때)
  • [OS] The Memory Hierarchy
LOGPOSE 로그포스
LOGPOSE 로그포스
다음 섬으로 향하고자 이번 섬을 기록하는 특수한 나침반
  • LOGPOSE 로그포스
    LOGPOSE
    LOGPOSE 로그포스
  • 전체
    오늘
    어제
    • 분류 전체보기 (135)
      • [Unity] Projects & Study (27)
        • VR 멀티 항만 시뮬레이션 게임 (1)
        • HandiLab - AR 과학 실험 (10)
        • 우물 속에서 - VR 공포 게임 (2)
        • Loop - Interactive Movie (8)
        • Simple Platformer Game (4)
      • CS (67)
        • Algorithm & Data Structure (23)
        • Design Pattern (3)
        • Computer Graphics (23)
        • OS (16)
      • Java (9)
      • Cloud (3)
      • Docker (4)
      • Spring (2)
      • AWS (3)
      • LLM (3)
      • Kubernetes (6)
      • Programming Paradigm (1)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    Unity AR
    함수형
    ovr
    VR게임
    VR멀티게임
    VR
    개발
    함수형 패러다임
    game
    Unity앱개발
    Photon
    선언형 프로그래밍
    프로그래밍 패러다임
    Unity
    2D
    AR
    함수형 프로그래밍
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
LOGPOSE 로그포스
[OS] Mutual Exclusion의 방법과 유의점
상단으로

티스토리툴바