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 |