강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

곽민재님의 프로필 이미지
곽민재

작성한 질문수

[CS 기술면접 2] 말이 트이는 운영체제

하드웨어 수행 과정 - CPU 연산과 I/O 연산, 인터럽트, 사용자 모드와 커널 모드, 시스템 콜 용어 정리

블로킹/논블로킹과 동기/비동기

작성

·

42

1

안녕하십니까 운영체제 관련 강의 수강중인 학생입니다. 강의를 보다가 궁금한점이 생겨 질문을 남깁니다.

 

하드웨어 수행 과정 챕터의 용어를 설명해주시는 과정에서 동기식 입출력과 비동기식 입출력에 대한 내용이 있습니다.

 

제어권을 바로 다시 돌려받냐, 제어권을 넘긴상태로 일을 진행하지 못하고 대기하냐에 대한 설명은 블로킹/논블로킹으로 알고있고 동기/비동기의 경우에는 결과 순서가 보장되냐의 차이로 알고있습니다.

 

해당 개념들이 유사하지만 조금 다른걸로 이해하고있는데, 동기식 입출력과 비동기식 입출력이라고 말씀해주신 이유가 궁금합니다. 혹시 제가 놓친 부분이 있을까요??

답변 3

1

곽민재님의 프로필 이미지
곽민재
질문자

답변 감사합니다!

 

모호함을 줄이기위해 어플리케이션 프로그래밍 관점에서 엄격하게 구분하는 것이었군요.

덕분에 몰랐던 내용을 알게되었습니다. 감사합니다.

1

이용준님의 프로필 이미지
이용준
지식공유자

안녕하세요. 곽민재님!
현대적인 어플리케이션 프로그래밍 관점에서는 말씀해주신대로 제어권(Blocking)과 결과 확인(Sync)을 철저히 구분해서 사용하는 추세입니다.

하지만 시스템 표준인 POSIX나 Windows/Linux API 레벨의 전통적인 정의에서는, I/O 작업이 진행되는 동안 실행 흐름이 멈추느냐(Synchronous) 아니면 따로 노느냐(Asynchronous)를 기준으로 용어를 사용해온 것으로 보입니다. 아래의 참고 자료에서 그 내용을 확인할 수 있습니다.

참고 자료

P.S. 질문을 통해 저도 많이 배웠네요. 감사합니다 :)

0

안녕하세요, 인프런 AI 인턴입니다. 곽민재님.

운영체제에서의 동기/비동기와 블로킹/논블로킹의 개념은 종종 혼란을 줄 수 있는 주제입니다. 곽민재님께서 열심히 이해하려는 모습이 돋보입니다. 😊

동기식 및 비동기식과 블로킹 및 논블로킹의 차이:

  1. 블로킹/논블로킹:

    • 블로킹: 호출된 함수가 작업이 완료될 때까지 실행을 멈추고 대기합니다. 즉, 제어권이 함수에 남아있으며, 해당 작업이 완료된 이후에야 다음 작업을 처리할 수 있습니다.
    • 논블로킹: 호출된 함수가 즉시 리턴되어 호출한 측이 다른 작업을 수행할 수 있도록 제어권을 돌려받습니다. 작업은 백그라운드에서 진행됩니다.
  2. 동기/비동기:

    • 동기: 작업의 완료 여부와 상관없이 호출한 함수가 작업의 결과를 반환하거나 사용하는 상황을 말합니다. 동기적 작업은 순차적으로 결과가 나타나야 하는 경우에 많이 사용됩니다.
    • 비동기: 호출된 작업이 바로 결과를 반환하지 않으며, 작업 완료와 무관하게 호출한 측은 다른 작업을 수행할 수 있습니다. 최종 결과는 콜백 함수나 이벤트 핸들러를 통해 받아옵니다.

강의에서의 설명:

강의에서 언급된 ‘동기식 입출력’과 ‘비동기식 입출력’은 주로 입출력 작업을 완료할 때까지 CPU가 기다려야 하는지 여부와 관련이 있습니다. 여기서 동기와 비동기 표현이 블로킹/논블로킹과 맞물려 사용될 때도 있습니다.

  • 동기식 입출력: CPU가 입출력 작업이 완료될 때까지 기다리며, 해당 작업이 완료된 후에야 다른 작업을 할 수 있습니다.
  • 비동기식 입출력: CPU가 입출력 작업을 요청하고 그 작업이 완료되기 전에 다른 작업을 수행할 수 있습니다. 즉, 입출력 결과를 나중에 받을 수 있는 형태입니다.

이러한 개념들이 유사하지만 약간의 차이가 있을 수 있으며, 때에 따라 다르게 사용될 수 있습니다. 각 용어가 사용되는 문맥에 따라 의미가 달라질 수 있음을 염두에 두시면 많은 도움이 되실 것입니다.

더 깊이 있는 이해를 위해 다음 링크도 참고해보세요:
- 운영체제에서의 동기와 비동기, 블로킹과 논블로킹의 차이점
- 입출력 시스템과 작업 흐름 이해

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

곽민재님의 프로필 이미지
곽민재

작성한 질문수

질문하기