-
동기화 도구들Computer Science/Operating System 2021. 1. 10. 23:56
질문
6.1 배경
- 경쟁 상황이란 무엇인가?
- 동시에 여러 개의 프로세스가 동일한 자료를 접근하여 조작하고, 그 실행 결과가 접근이 발생한 특정 순서에 의존하는 상황을 경쟁 상황이라고 합니다.
6.2 임계 구역 문제
- 임계 구역이란 무엇인가요?
- 적어도 하나 이상의 다른 프로세스가 공유하는 데이터에 접근하고 갱신하는 구역
- 임계 구역 문제를 해결하기 위한 해결책의 3가지 요구 조건은 무엇인가요?
- 상호 배제
- 진행
- 한정된 대기
6.5 Mutex Locks
- 뮤텍스 락의 동작 원리는?
- acquire() 함수가 락을 획득하고, release() 함수가 락을 반환합니다.
- Mutex 락은 available이라고 불리는 불린 변수를 가지는데 이 변수 값이 락의 가용 여부를 표시합니다. 락이 가용하면 acquire() 호출은 성공하고 락은 곧 사용 불가 상태가 됩니다. 사용 불가 상태의 락을 획득하려고 시도하는 프로세스는 락이 반환될 때까지 봉쇄됩니다.
6.6 Semaphores
- 세마포의 동작 원리는?
- 세마포 S는 정수 변수로서 초기화를 제외하고는 wait()와 signal()로만 접근할 수 있습니다
- wait() 연산은 세마포의 값을 감소시킵니다
- signal() 연산은 세마포의 값을 증가시킵니다.
- 세마포의 값이 0이 되면 모든 자원이 사용 중임을 나타냅니다.
-요약
- 경쟁 조건은 프로세스가 공유 데이터에 병행하게 접근할 때 발생하며 최종 결과는 병행 접근이 발생한 특정 순서에 따라 다릅니다
- 임계구역은 공유 데이터가 조작될 수 있으며 경쟁 조건이 발생할 수 있는 코드 영역입니다.
- 임계 구역 문제에 대한 해결책은 상호 배제, 진행, 한정된 대기의 세 가지 요구 사항을 충족해야 합니다.
- Mutex 락은 프로세스가 임계구역에 들어가기 전에 락을 획득하고 임계구역에서 나올 때 락을 해제할 것을 요구함으로써 상호 배제를 제공합니다.
- 세마포어는 mutex 락과는 달리 정수 값을 가지므로 다양한 동기화 문제를 해결하는데 사용될 수 있습니다.
'Computer Science > Operating System' 카테고리의 다른 글
메모리 관리 (0) 2021.01.14 교착 상태 (0) 2021.01.14 CPU 스케줄링 (0) 2021.01.10 스레드와 병행성 (0) 2021.01.10 프로세스 (0) 2021.01.10 - 경쟁 상황이란 무엇인가?