컴퓨터 공학/혼자 공부하는 컴퓨터 구조 +운영체제

27.동기화 기법

공부를하자 2023. 7. 27. 21:38

1.뮤텍스 (Mutex Rock: MUTual Excusion Lock)

 1)정의 개요

  -뮤텍스는 한 프로세스의 내부에서 여러 스레드의 임계구역 제어를 위해 사용하는 객체를 뜻한다.

  -뮤텍스 락은 동시에 접근해서는 안되는 자원을 동시에 접근하지 않도록 잠금하는 동기화 기법이다.

   *탈의실을 임계구역이라 가정했을

  -뮤텍스락을 구현하기 위해서는

   잠금 확인을 위한 역할의 변수 lock(bool),

   임계구역을 반복적으로 확인하고 임계구역을 잠그는 acquire()함수,

   임계구역내에 작업이 끝나면 lock 해제하는 release()함수가 있다.

 

*바쁜대기(busy wait):잠금() 상태를 지속적으로 확인하는 상태.

2.세마포(semaphore)

 1)정의)

  -공유 자원이 여러 개일 접근할 있는 프로세스 수를 제한하는 동기화 기법.

 

   -세마포를 구현하기 위해서는

   임계구역에 진입할 있는 프로세스의 개수(사용가능한 공유자원 개수) 나타내는 전역변수,

   임계구역에 진입여부를 판단하는 wait()함수,

   임계구역에 진입하도록 신호를 보내는 signal()함수가 있다.

 *wait()함수

*signal()함수

*공유자원 2 프로세스 3개일

3.모니터(Monitor)

 1)정의:공유 자원과 공유자원에 접근하기 위해서 인터페이스(통로) 두고 묶어 관리하는 동기화 기법.

 

 -큐에서 가져온 프로세스를 여러 개의 (통로) 만들고 통로에서 하나의 프로세스만 들어오도록 제어한다.

 2)조건변수(Condition variable): 프로세스나 스레드의 실행 순서를 제어하기 위해 사용하는 변수.

 

-조건변수는 wait signal연산을 실행할 있다.

-모니터안으로 들어온 프로세스가 조건 변수 x에대한 wait()함수를 호출 했다면 

 조건변수 x 대한 대기 큐가 생성되고 안에 대기한다.그러면서  다른 프로세스가 들어올 여지를 준다.

- 다른 프로세스가 가동하고 조건변수 x에대한 signal()함수를 호출하면 이제 프로세스가 모니터안으로

  다시 들어오게 된다.

 

'컴퓨터 공학 > 혼자 공부하는 컴퓨터 구조 +운영체제' 카테고리의 다른 글

29.교착 상태 해결방법  (0) 2023.07.30
28.교착상태  (0) 2023.07.30
26.프로세스 동기화  (0) 2023.07.27
25.CPU 스케일링 알고리즘  (0) 2023.07.26
24.CPU 스케줄링  (0) 2023.07.25