차단(컴퓨팅)
Blocking (computing)컴퓨팅에서 프로세스는 실행 중인 컴퓨터 프로그램의 한 예다.공정은 항상 정확히 하나의 공정 상태로 존재한다.차단되는 프로세스는 리소스를 사용할 수 있게 되거나 I/O 작업을 완료하는 등 일부 이벤트를 기다리고 있는 프로세스다.[1]
멀티태스킹 컴퓨터 시스템에서 개별 작업 또는 실행 스레드는 시스템의 자원을 공유해야 한다.공유 리소스에는 CPU, 네트워크 및 네트워크 인터페이스, 메모리 및 디스크가 포함된다.
한 태스크가 리소스를 사용하는 경우 다른 태스크가 리소스를 액세스하는 것은 일반적으로 불가능하거나 바람직하다.이러한 동시 사용을 방지하기 위해 상호 배제 기법이 사용된다.다른 태스크가 차단되면 첫 번째 태스크가 공유 리소스 사용을 마칠 때까지 태스크를 실행할 수 없다.
프로그래밍 언어와 스케줄링 알고리즘은 오버올 효과 차단을 최소화하도록 설계되었다.로컬 작업이 진행되지 않도록 차단하는 프로세스.이 경우에 "차단"은 종종 원하지 않는 것으로 보인다.[2]그러나 이러한 업무는 스케줄링이 계속되기 때문에 중단하는 것은 다른 프로세스에 전혀 영향을 미치지 않거나 거의 영향을 미치지 않는 독립적 프로세스에 할당되었을 수 있다.수동적으로 다른 부분(폴링 또는 스핀 루프 없음)을 기다리는 것이 채널의 의미론의 일부인 "채널에서의 차단"이 그 예다.[3]이들 중 어느 하나라도 올바르게 설계된 것은 반응형 시스템을 구현하는 데 사용될 수 있다.
교착상태란 프로세스가 병리학적으로 원 안에서 서로를 기다리는 것을 의미한다.따라서 그것은 차단과 직접 관련되지 않는다.
프로세스가 대기 중인 이벤트("차단")가 발생하면 프로세스가 차단된 상태에서 실행 가능과 같은 임박한 상태로 진전된다.
참고 항목
참조
- ^ Stallings, William (2004). Operating Systems: Internals and Design Principles (5th ed.). Prentice Hall.
- ^ C++ 및 2012년 이후:허브 서터 - C++ 동시성
- ^ Rob Pike별 동시성 패턴 이동
