동기화 대 비동기 및 블록 대 비블록

동기 대 비동기

동기 및 비동기 프로세스 실행 순서 보장~을 위한 기구오전. 당신은 그것을 처리해야 그 일에 어떻게 대처할 것인가?위의 관점입니다

동기는 쿼리와 그 결과가 동시에 발생하는 것을 말합니다. 즉, 요청을 하면 아무리 오래 걸리더라도 요청한 결과가 반환될 때까지 계속 기다립니다.


따라서 I/O 연산 요청의 경우에도 시스템 호출이 완료될 때까지 기다렸다가 결과를 반환합니다.

반대로 비동기는 요청과 결과가 동시에 발생하지 않음을 의미합니다. 요청에 대한 응답이 즉시 처리되지 않고 대기 중에 다른 요청을 처리할 수 있는 기술입니다.


시스템 호출이 완료되지 않아도 기다리지 않고 작업이 완료되면 결과를 반환합니다.

요약하면 각각의 장단점은 다음과 같습니다.

장점 불리
동기 부여 디자인은 매우 간단하고 직관적입니다 결과가 발표될 때까지 기다려야 합니다.
비동기 요청된 결과가 반환되는 동안 다른 작업을 수행할 수 있습니다. (시간 단위로 많은 작업 처리 가능) 설계는 동기식보다 복잡합니다.
CPU 또는 메모리를 많이 사용하는 작업을 비동기식으로 처리하면 과부하가 발생할 수 있습니다.

차단 대 비차단

차단 및 비 차단은 처리해야 할 사항입니다. 일하다그만큼 전체 워크플로우를 차단합니까?위의 관점입니다

블로킹은 다른 주체가 작업을 하고 있는 동안 작업을 시작하고, 작업을 멈추고, 작업을 기다렸다가 작업을 다시 시작하는 것입니다. 이는 다른 함수가 호출될 때 제어가 함께 전달되고 작업이 완료된 경우에만 반환되기 때문입니다.


비차단이란 다른 과목의 작업과 독립적으로 작업을 수행하는 것을 의미합니다.

다른 함수가 호출되면 제어가 전달되지만 즉시 반환되며 제어를 얻은 호출자는 즉시 다른 작업을 수행할 수 있습니다.



동기화 대 비동기 및 블록 대 비블록

sync, async/block 및 non-block은 관점이 다릅니다.

sync와 async는 현재 작업의 응답과 다음 작업의 요청이 동시적이라는 보기를 확인합니다.

블록과 비블록의 차이점은 호출된 함수가 제어를 직접 전송하는 경우 관점이 확인된다는 것입니다.

그리고 그들은 총 4가지 조합으로 혼합될 수 있습니다.


1) 동기화 차단


함수 A는 함수 B의 반환 값이 필요합니다(동기 부여). 따라서 제어를 함수 B로 이전하고 함수 B가 실행을 완료하고 반환 값과 제어를 반환할 때까지 기다립니다(블로킹).

2) 싱크 논블로킹


함수 A는 함수 B를 호출합니다. 이 시점에서 함수 A는 함수 B에 제어권을 주지 않고 자체 코드를 계속 실행합니다(비차단).

그러나 함수 A는 함수 B의 반환 값이 필요하므로 중간에 함수 B에게 함수 실행이 끝났는지 묻습니다(동기 부여).

3) 비동기 차단


함수 A는 함수 B의 반환 값에 대해 신경쓰지 않고 단지 콜백 함수를 보냅니다(비동기).

기능 B의 작업에 관심이 없지만 기능 A는 기능 B에 제어권을 부여합니다(블로킹).

따라서 함수 A는 자신과 관련이 없는 함수 B가 완료될 때까지 기다려야 합니다.

4) 비동기 논블로킹


함수 A가 함수 B를 호출할 때 함수 B에 제어권을 주지 않고 그대로 유지합니다(비차단). 따라서 함수 B가 호출된 후에도 멈추지 않고 자체 코드를 계속 실행합니다.

그리고 함수 B를 호출하면 콜백 함수기능 B가 작업을 완료하면 기능 A의 작업을 수행합니다(비동기).

더보기

https://velog.io/@slobber/%EB%8F%99%EA%B8%B0%EC%99%80-%EB%B9%84%EB%8F%99%EA%B8%B0%EC %9D%98-%EC%B0%A8%EC%9D%B4

동기식과 비동기식의 차이점

오늘은 개발 과정에서 자주 등장하는 동기식과 비동기식의 개념에 대해 알아보겠습니다.

velog.io

https://simsim231.132

(OS) 동기식 및 비동기식

(OS) 동기식과 비동기식 동기식은 한 가지 작업이 완료되면 다음 작업을 수행하고 비동기식은 아직 완료되지 않은 경우에도 다음 작업을 수행할 수 있습니다. Blocking & Non-Blocking 동기 및 비동기 블록을 살펴보기 전에

simsim231.tistory.com

https://velog.io/@soyeon207/%EB%8F%99%EA%B8%B0-%EB%B9%84%EB%8F%99%EA%B8%B0-blocking-non-blocking

(OS) 동기식/비동기식, 차단/비차단

개발하면서 동기화와 비동기라는 용어에 대해 많이 듣게 되는데 막상 들어보면 개념이 헷갈리거나 헷갈릴 때가 많고 이게 뭔지 궁금해서… 그래서 알아보기로 했습니다.

velog.io

https://ssungkang.entry/OS-%EB%8F%99%EA%B8%B0-vs-%EB%B9%84%EB%8F%99%EA%B8%B0-%EB %B8%94%EB%A1%9C%ED%82%B9 대 %EB%85%BC%EB%B8%94%EB%A1%9C%ED%82%B9

(OS) 동기 대 비동기, 차단 대 비차단

이번 포스팅에서는 동기식과 비동기식, 블로킹과 논블로킹에 대해 알아보겠습니다. 4개의 단어를 다 알지만 명확하게 설명할 수 없고 이해가 안되는 것 같아 정리했습니다.

ssungkang.tistory.com

https://velog.io/@nittre/%EB%B8%94%EB%A1%9C%ED%82%B9-Vs%EB%85%BC%EB%B8%94%EB%A1% 9C% ED%82%B9-%EB%8F%99%EA%B8%B0-Vs%EB%B9%84%EB%8F%99%EA%B8%B0