상호배제: Difference between revisions

From CS Wiki
No edit summary
No edit summary
 
Line 3: Line 3:
공유자원을 한 시점에 단지 하나의 프로세스만이 사용할 수 있도록 제어하는 매커니즘
공유자원을 한 시점에 단지 하나의 프로세스만이 사용할 수 있도록 제어하는 매커니즘


== 요구조건 ==
== 원칙 ==
* 두 개 이상의 프로세스가 동시에 임계 영역에 있어선 안됨
* 두 개 이상의 프로세스가 동시에 임계 영역에 있어선 안됨
* 임계영역 밖에 있는 프로세스가 다른 프로세스의 진입을 막아선 안됨
* 임계영역 밖에 있는 프로세스가 다른 프로세스의 진입을 막아선 안됨
* 프로세스의 상대적인 속도에 대해선 어떠한 가정도 하지 않음
* 프로세스의 상대적인 속도에 대해선 어떠한 가정도 하지 않음
== 하드웨어적 방법 ==
* 인터럽트 사용금지: 공유 자원이 변경되는 동안 인터럽트 비허용
* Test and Set: 워드에 대해 검사하고 검사할수 있는 명령 제공
* Swap: 두 워드간 내용을 교환할수 있는 명령 제공
== 소프트웨어적 방법 ==
* 데커 알고리즘
* 피터슨 알고리즘
* 베이커리 알고리즘
* 세마포어


== 같이 보기 ==
== 같이 보기 ==
* [[교착 상태|교착 상태(Deadlock)]]: 상호배제의 잘못된 사용으로 필요한 프로세스에게 자원이 공유되지 못해 자원을 무한정 기다리는 상태
* [[교착 상태|교착 상태(Deadlock)]]: 상호배제의 잘못된 사용으로 필요한 프로세스에게 자원이 공유되지 못해 자원을 무한정 기다리는 상태

Latest revision as of 19:47, 3 July 2019

Mutual Exclusion

공유자원을 한 시점에 단지 하나의 프로세스만이 사용할 수 있도록 제어하는 매커니즘

원칙[edit | edit source]

  • 두 개 이상의 프로세스가 동시에 임계 영역에 있어선 안됨
  • 임계영역 밖에 있는 프로세스가 다른 프로세스의 진입을 막아선 안됨
  • 프로세스의 상대적인 속도에 대해선 어떠한 가정도 하지 않음

하드웨어적 방법[edit | edit source]

  • 인터럽트 사용금지: 공유 자원이 변경되는 동안 인터럽트 비허용
  • Test and Set: 워드에 대해 검사하고 검사할수 있는 명령 제공
  • Swap: 두 워드간 내용을 교환할수 있는 명령 제공

소프트웨어적 방법[edit | edit source]

  • 데커 알고리즘
  • 피터슨 알고리즘
  • 베이커리 알고리즘
  • 세마포어

같이 보기[edit | edit source]

  • 교착 상태(Deadlock): 상호배제의 잘못된 사용으로 필요한 프로세스에게 자원이 공유되지 못해 자원을 무한정 기다리는 상태