동시다발적으로 실행되는 수많은 프로세스는 서로 협력하기도 하고, 자원을 두고 경쟁하기도 합니다. 이번 장에서는 프로세스가 동시에 실행될 때 반드시 거쳐야 할 동기화에 대해 학습해보겠습니다. 동기화란 무엇인지, 그리고 동시에 실행되는 프로세스들을 올바르게 실행하기 위해서는 무엇을 고려해야 하는지 알아봅시다.
동시에 실행되는 여러 프로세스는 각자가 필요한 자원을 할당받아 실행됩니다. 그 과정에서 때로는 프로세스들이 꼼짝도 못하고 정지해 버리는 교착 상태가 발생할 수 있습니다. 이번 장에서는 교착 상태란 무엇인지, 그리고 운영체제는 교착 상태를 어떻게 해결하는지에 대해 알아보겠습니다.
p. 363의 확인 문제 1번 풀고 인증하기
Q. 뮤텍스 락과 세마포에 대한 설명으로 옳지 않은 것을 고르세요.
1) 뮤텍스 락은 임계구역을 잠근 뒤 임계 구역에 진입함으로써 상호 베제를 위한 동기화를 이룹니다.
2) 세마포는 공유 자원이 여러 개 있는 상황에서도 이용할 수 있습니다.
3) 세마포를 이용해 프로세스 실행 순서 제어를 위한 동기화도 이룰 수 있습니다.
4) 세마포를 이용하면 반드시 바쁜 대기를 해야 합니다.
A. 4) 세마포를 이용하면 반드시 바쁜 대기를 해야 합니다.
세마포는 바쁜 대기가 아니라 블록 대기를 통해 다른 프로세스에 CPU를 양보하고 대기하는 동안 자원의 상태를 기다릴 수 있습니다. 세마포가 0이 될 때까지 기다리는 동안 해당 프로세스는 블록되어 있습니다.
Ch.12(12-1) 임계 구역, 상호 배제 개념을 정리하기
'12-1 동기화란' 학습 결과물 본문에 해당 내용을 포함했음