• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    미해결

프로세스 블록상태 예시

21.06.19 12:06 작성 조회수 122

2

강사님 프로세스 블록상태는 하드와 메모리간의 통신 이라 하셧는데
예를 들어 mysql 서버에 CRUD 하는 과정도 블록상태가 될 수 있나요?
대표적으로 어떤 것들이 있을까여?

답변 1

답변을 작성해보세요.

0

안녕하세요. 홍태경님

네. 맞습니다. 프로세스가 block 상태가 되는 가장 대표적인 케이스가 바로 저장 장치에 액세스하는 일입니다. mysql에 CRUD operation을 하는 것이 결국 저장 장치에 액세스하는 일이기 때문에 이 과정에서 mysql process가 blocked 될 수 있습니다.

위의 예제와 같이 저장 장치에 액세스하는 경우 외에도 mutex와 같은 동기화 객체에 접근했다가 잠들어 기다리는 경우도 blocked 상태가 됩니다. 또 어떤 디바이스 드라이버에 어떤 기능 요청을 한 후 응답이 올 때까지 기다리는 경우에도 프로세스가 blocked 상태가 될 수 있습니다. 

결국, 프로세스가 어떤 일을 하려고 할 때 스스로 일을 완료하지 못하고 뭔가를 기다려야 하는 상황에 blocked 상태가 된다고 이해하시면 될 것 같습니다.