1. 상호배재와 임계영역
- 상호배재 : A프로세스가 공유자원을 사용할 때 B프로세스가 제어하지 못하게 하는 것
- 임계영역 : 하나의 프로세스만 접근 할 수 있는 영역
※임계영역 3가지 조건 : 상호배재, 진행(어느 프로세스가 진입할 지 결정), 한정대기(무한히 대기하면 안됨)
2. 상호배재 방법
세마포어
- 이진 세마포어 : 0과 1로 카운트하여 1개의 자원만 접근 하도록 설계된 세마포어
- 계수 세마포어 : n개 자원까지 접근 할 수 있도록 설계된 세마포어
- 문제점 : 세마포어가 프로그램이 전체에 퍼져있을때 세마포어의 영향을 파악하기 어려움
모니터
- 세마포어보다 제어하기 더 쉽게 만든 동기화 도구
- 한개의 프로세스만이 모니터에 접근 가능
- 프로시저, 공유데이터, 초기화코드로 구성됨
3. 교착상태
교창상태란 서로 다른 프로세스가 서로가 가지는 자원을 요구하는 상태를 말한다.
교착상태가 되기위한 전제조건은 상호배재, 점유 및 대기, 비선점, 순환대기 일때 발생한다.
해결방법은 크게 3가지가 있다.
1. 예방
1.1 상호배제 조건 방지 : 상호배제란 하나의 자원을 하나의 프로세스만 사용하는 것이다.
상호배제 방지의 좋은 예는 파일을 read하는 경우이다. 반면에 write하는 경우에는 적용하면 안된다.
1.2 점유 및 대기 조건 방지 : 이 조건을 방지하려면 프로세스가 할당될때 모든 자원을 먼저 할당하여 처리하는 것이다.
1.3 비선점 조건방지 : 프로세스가 다른 자원을 요청할 때 가질 수 없으면 현재 가진 자원을 모두 해제하여 예방하는 방법이다. 이때 프로세스 상태를 잃기 쉬우므로 빈번하게 발생하지 않는 경우에 사용한다.
1.4 순환대기 방지 : 자원에 순서를 부여하고 프로세스는 자원의 순서에 맞게 요청하게 하는 방법이다.
만약 A 프로세스가
'CS > 운영체제' 카테고리의 다른 글
[운영체제] 프로세스와 쓰레드 (0) | 2021.05.16 |
---|
댓글