본문 바로가기
Computer Science

경쟁상태란 무엇일까

by 융식 2022. 7. 6.

경쟁상태란 여러 프로세스가 공유 데이터를 동시에 접근할 때 공유 데이터에 대한 내용에 이상이 생길 수 있는 상태

더 큰 문제는 매번 문제가 생기는 것이 아니라 예측 불가능하게 에러가 발생할 수 있었음.

 

상호배제

병행 프로세스에서 프로세스 하나가 공유 자원 사용 시 다른 프로세스들이 동일한 자원을 사용할 수 없도록 하는 방법

읽기 연산은 공유 데이터에 동시에 접근해도 문제 발생 없음

 

동기화

공유 자원을 동시에 사용하지 못하게 실행을 제어

상호배제의 조건

1. 두 프로세스가 동시에 공유자원 (임계구역)을 접근하는 코드의 부분을 수행하지 못하도록 함

2. 프로세스의 속도나 프로세서 수에 영향 받지 않음

3. 공유 자원을 사용하는 프로세스만 다른 프로세스 차단 가능(임계구역 외부에 있는 프로세스는 다른 프로세스를 블록 시켜서는 안됨)

4. 프로세스가 공유 자원을 사용하려고 너무 오래 기다려서는 안 됨 (임계구역에 진입하기 위해 무한히 기다리는 프로세스는 없어야 함

 

 

임계 영역 이용한 상호배제

어떤 프로세스가 열쇠 사용할 수 있는지 확인하려고 검사하는 동작과 다른 프로세스 사용 금지하는 동작으로 분류

다양한 상호배제 방법들

 

 

 

'Computer Science' 카테고리의 다른 글

페이징 & 세그먼테이션  (0) 2022.07.28
파일 시스템이란?  (0) 2022.07.28
시스템 콜(System Call)  (0) 2022.07.06
인터럽트란? (Interrupt)  (0) 2022.06.29
프로세스와 스레드의 차이  (0) 2022.06.14