블로킹 vs 논블로킹 : 시간이 오래 걸려도 바로 리턴이 되는가?
이번 시간에는 블로킹과 논블로킹에 대해서 간단하게 알아보도록 하겠습니다. 아래 코드를 생각해 보겠습니다. 문자열을 입력받고, 출력해 주는 프로그램입니다. 중요한 것은, 이 프로그램은, 제가 아무것도 입력을 하지 않으면, 입력을 받을 때 까지 대기를 한다는 것입니다. 더 정확하게 말하면, 엔터나 EOF가 들어올 때 까지 계속 입력을 받습니다. 이를 특정한 Event라고 칭하겠습니다. 이 프로그램의 순서도는 아래와 같이 그릴 수 있습니다. 이 중에서 fgets만 확대해서 그려보겠습니다. Main에서 fgets를 호출했기 때문에 Main은 caller가 되고, fgets는 Main에 의해 불려진 함수가 될 거에요. 그러면, 이 경우에는 Main으로 제어권이 넘어오지 않을 거에요. 즉, Main은 block이 ..
OS/이론
2020. 3. 29. 03:15
최근댓글