blocking 과 non-blocking assignment의 차이
베릴로그가 아닌 다이어그램을 통해 살펴보자. 위 다이어그램은 2개의 태스크가 있는 일반적인 형태의 프로그램 흐름이다. 먼저 태스크 A에서 블로킹 구간을 발견할 수 있다. 입출력 과정인 읽기나 쓰기 과정이 수행될 때 태스크 A의 코드가 진행되지 않고 내부 메모리 영역에서 해당 작업이 마무리될 때까지 코드는 멈추게 되는데, 이것을 블로킹이라고 한다. 태스크 A가 블로킹하는 동안 운영체제의 스케줄링 정책에 따라 우선순위가 낮은 또 다른 태스크B가 실행될 수 있다. 우선순위가 높은 태스크 A의 실행이 재개되면 우선순위가 낮은 태스크 B는 블로킹하고 태스크 A가 종료되면 다시 태스크 B가 재개된다. 넌블로킹의 다이어그램을 보자. 넌블로킹 형태의 프로세스에서는 입출력 요청을 하더라도 운영체제에 의해 EAGAIN과 ..
과제/디지털논리회로(verilog)
2022. 1. 6. 16:55