[OS] Synchronization tools

박의진·2023년 7월 5일
0

TABA3기

목록 보기
4/16
post-custom-banner

Synchronization tools?

협력적 프로세스는 시스템 내에서 실행 중인 다른 프로세스의 실행에 영향을 주거나 영향을 받는 프로세스이다. 논리 주소 공간을 공유하는 협력적 프로세스의 질서 있는 실행을 보장하여, 이를 통해 데이터의 일관성을 유지하는 다양한 메커니즘이 필요하다.

Background

동시에 여러 개의 프로세스가 동일한 자료를 접근하여 조작하고, 그 실행 결과가 접근이 발생한 특정 순서에 의존하는 상황을 Race condition 이라고 한다. Race condition부터 보호하기 위해, 우리는 한순간에 하나의 프로세스만이 데이터를 조작하도록 보장해야 한다. 이러한 보장을 위해, 우리는 어떤 형태로든 프로세스들이 동기화되도록 할 필요가 있다.

Mutual Exclusion

둘 이상의 프로세스가 동시에 critical section에 진입하는 것을 막는 것을 Mutual Exclusion(상호 배제)라고 한다.

Critical section

동시에 실행되면 안되는 코드들의 섹션을 critical section(임계 구역) 이라 한다.

solution of Critical-Section

  • Mutual exclusion (상호 배제) - CS 에 프로세스가 있으면, 다른 프로세스의 진입을 금지한다.
  • Progress - CS 안에 있지 않은 프로세스가 CS에 진입하는 것을 방해하면 안된다.
  • Bounded waiting - 프로세스의 CS 진입은 유한시간 내에 허용되어야 한다. 즉, 무한정 대기할 수 없다.

Mutex locks

  • Mutual과 Exclusion의 축약어

  • Critical Section을 해결하기위한 하드웨어 기반의 해결책보다 상위 수준의 해결책

Semaphores

Semaphores는 동기화 도구로써 프로세스의 활동을 동기화 하기 위해 제공되는 Mutual lock보다 좀 더 복잡한 방식이다.

  • Semaphores S - 정수 변수

  • 표준 연산 wait()과 signal()로만 접근 가능

  • 발명한 사람이 네덜란드 사람이여서 이를 P() 와 V()로 사용

Binary semaphores

  • 0과 1 사이의 정수값만 범위로 지정할 수 있다.
  • Mutex lock과 같다.

Counting semaphores

  • 정수 값이 Restircted domain 이상의 범위를 지정할 수 있다.
post-custom-banner

0개의 댓글