동기화
작업들 사이에 수행 시기를 맞추는 것으로 서로 방해하지 않고 질서를 맞춰서 실행될 수 있게 하는 것.
크리티컬 섹션
임계영역에 하나의 스레드만 접근할 수 있도록 하는 동기화 기법.
유저레벨의 동기화 방법 중 유일하게 커널 객체를 사용하지 않음.
내부 구조가 단순하여 동기화 처리에 대한 속도가 빠르다.
동일한 프로세스 내에서만 사용.
뮤텍스
두개 이상의 스레드가 동시에 공통자원에 접근하지 않도록 하기 위해서 만들어진 알고리즘.
유일하게 소유권 개념을 가지고 있다.
프로세스를 동기화 하는데도 사용함.
일반적으로 스레드를 동기화 할 때는 뮤텍스가 아니라 크리티컬 섹션을 사용할 것을 권장
(뮤텍스가 동기화 하는데 드는 비용이 크기때문)
크리티컬 섹션은 단일 프로세스의 스레드에 대해서만 동작하고 뮤텍스는 여러 프로세스의 스레드에 대해서도 동작한다.
데드락
데드락이란 교착상태라고도 하며 두 개 이상의 작업이 서로 상대방의 작업이 끝나기만을 기다리고 있기 때문에 결과적으로 아무 것도
완료되지 못하는 상태를 가리킨다.
데드락이 발생하는데에는 4가지 조건이 있다.
상호배제 : 프로세스들이 필요로 하는 자원에 대해 배타적인 통제권을 요구한다.
점유대기 : 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다린다.
비선점 : 프로세스가 어떤 자원의 사용을 끝낼 때까지 그 자원을 뺏을 수 없다.
순환대기 : 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있다.
인터락 함수
인터락 함수는 값에 원자성을 보장하는 함수이다. 값을 저장하는 중간에 변경되거나 읽는 중간에 변경되는 경우의
문제를 해결할 수 있다.
세마포어
임계영역에 대해 접근 수를 늘려주는 방법으로 두 개 이상의 프로세스에서 활동의 위치를 설정해 주는데 사용되는 동기화를 위한
기본 조작.