오늘 수업 시간에 다룬 내용이다. 나도 이 이 차이점에 대해 명확하지 않다.
나도 확실하지 않지만 학생들을 믿고 던졌다. 각각의 차이점을 이해하기 위해 던진 링크는 Boost application performance using asynchronous I/O이다. 하지만 각각의 차이점에 대해 명확하게 이해하지 못했다.
이 문서를 보면 각 조합의 차이점에 대해 설명하고 있다. 위 링크에서 명확하지 않은 부분은 Synchronous non-blocking I/O와 Asynchronous blocking I/O 부분이다.
지금까지 이와 관련해 막연하게 생각하고 있었는데 직접 설명하려니 쉽지 않다. 누군가 명확하게 설명해 줄 수 있을까?
2개의 의견 from FB
한 동안 잊고 지내다 갑자가 생각나 다시 한번 정리하는 시간을 가졌다. 한참의 시간이 지난 후에 다시 한번 살펴보니 지난 번보다는 좀 더 명확해 졌다. 그런 의미에서 글로 정리해 본다.
이 내용은 위 댓글에도 있듯이 asynchronous vs non-blocking 문서와 NEXT 학생 중 한명이 작성한 Sync async-blocking-nonblocking-io 문서를 근간으로 한다.
먼저 이 내용에 대해 다루기 전에 이 용어들이 Context에 따라 다른 개념으로 사용되고 있기 때문에 그 부분을 먼저 명확히 해야 한다.
method api call 또는 thread 개념
애플리케이션에서 운영체제로의 system call
blocking vs non-blocking
non-blocking vs asynchronous
Blocking / Non-Blocking 글을 보면 asynchronous에 대해 다음과 같이 설명하고 있다.
synchronous vs asynchronous
synchronous vs blocking
Blocking / Non-Blocking 글을 보면 Blocking vs Non-Blocking I/O Model에 대해 설명하고 있으며 synchronous vs asynchronous는 Non-Blocking I/O Model에서의 통지 모델로 설명하고 있다. 통지 모델 관련해 인용해 보면 다음과 같다.
Blocking / Non-Blocking 글도 이 개념들을 이해하는데 많은 도움이 된다.
위와 같이 정리할 수 있다. 단, 위 내용들을 이해하려면 애플리케이션 실행과 운영체제에 대한 지식과 I/O에 대한 지식이 필요하다. 이와 관련한 지식이 없는 상태에서 이해하려 하는 경우 이해하는데 어려움이 있다.
3개의 의견 from SLiPP
Asynchronous vs synchronous execution, what does it really mean? : sync와 async 차이에 대한 설명
궁금해서 이해한 내용을 기술합니다. "Boost application performance using asynchronous I/O" 문서에서 이해한 것은 sync는 kernel이 user에게 공지할 수 없는경우, async는 kernel이 user에게 공지할 수 있는 경우 사용한 용어로 봤습니다.
sync non-block i/o : kernel 이 공지할 수 없으니 자료를 읽을려면 다시 진입해야 합니다. 그래서 sync 입니다. async block i/o : kernel이 공지를 할수 있지만, 자료가 준비되기 전까지는 block되는 것을 설명한 것 같습니다(이부분은 제가 봐도 async 개념이 어울리지 않습니다).
제가 추천하는 부분은 아래 문서의 마지막 장의 요약 내용입니다. (http://courses.cs.washington.edu/courses/cse333/12su/lectures/lec21.pdf)
한 동안 잊고 지내다 갑자가 생각나 다시 한번 정리하는 시간을 가졌다. 한참의 시간이 지난 후에 다시 한번 살펴보니 지난 번보다는 좀 더 명확해 졌다. 그런 의미에서 글로 정리해 본다.
이 내용은 위 댓글에도 있듯이 asynchronous vs non-blocking 문서와 NEXT 학생 중 한명이 작성한 Sync async-blocking-nonblocking-io 문서를 근간으로 한다.
먼저 이 내용에 대해 다루기 전에 이 용어들이 Context에 따라 다른 개념으로 사용되고 있기 때문에 그 부분을 먼저 명확히 해야 한다.
method api call 또는 thread 개념
애플리케이션에서 운영체제로의 system call
blocking vs non-blocking
non-blocking vs asynchronous
Blocking / Non-Blocking 글을 보면 asynchronous에 대해 다음과 같이 설명하고 있다.
synchronous vs asynchronous
synchronous vs blocking
Blocking / Non-Blocking 글을 보면 Blocking vs Non-Blocking I/O Model에 대해 설명하고 있으며 synchronous vs asynchronous는 Non-Blocking I/O Model에서의 통지 모델로 설명하고 있다. 통지 모델 관련해 인용해 보면 다음과 같다.
Blocking / Non-Blocking 글도 이 개념들을 이해하는데 많은 도움이 된다.
위와 같이 정리할 수 있다. 단, 위 내용들을 이해하려면 애플리케이션 실행과 운영체제에 대한 지식과 I/O에 대한 지식이 필요하다. 이와 관련한 지식이 없는 상태에서 이해하려 하는 경우 이해하는데 어려움이 있다.
의견을 남기기 위해서는 SLiPP 계정이 필요합니다.
안심하세요! 회원가입/로그인 후에도 작성하시던 내용은 안전하게 보존됩니다.
SLiPP 계정으로 로그인하세요.
또는, SNS 계정으로 로그인하세요.