일반 I/O 대상에 I/O 요청 보내기

드라이버는 동기 또는 비동기적으로 일반 I/O 대상에 I/O 요청을 보낼 수 있습니다.

드라이버가 I/O 요청을 동기적으로 보내는 경우 드라이버 스레드는 요청을 한 번에 하나씩 보냅니다. 스레드는 다음 요청을 보내기 전에 각 요청이 완료되기를 기다립니다. 이 프로세스는 I/O 요청을 비동기적으로 보내는 것보다 간단합니다. 드라이버는 많은 요청을 보내지 않고 드라이버가 각 I/O 요청을 기다리는 동안 시스템 또는 디바이스 성능이 저하되지 않는 경우 I/O 요청을 동기적으로 보낼 수 있습니다.

드라이버가 I/O 요청을 비동기적으로 보내는 경우 드라이버 스레드는 이전에 보낸 요청이 완료될 때까지 기다리지 않고 요청을 보낼 준비가 되는 즉시 각 요청을 보냅니다. 드라이버가 짧은 기간 동안 많은 I/O 요청을 처리해야 하는 경우 다음 요청을 보내기 전에 드라이버가 각 요청이 완료될 때까지 기다리도록 허용할 수 없습니다. 그렇지 않으면 데이터가 손실되거나 드라이버 디바이스의 성능과 전체 시스템의 성능이 저하될 수 있습니다.

프레임워크의 I/O 대상 개체는 드라이버가 호출할 수 있는 두 가지 메서드 집합, 즉 I/O 요청을 동기적으로 보내는 집합과 I/O 요청을 비동기적으로 보내는 집합을 제공합니다.

이러한 각 메서드에 대해 요청 개체와 일부 버퍼 공간을 제공해야 합니다. 이러한 메서드를 사용하여 드라이버가 I/O 큐 중 하나에서 받은 요청을 전달하거나 새 요청을 만들고 보낼 수 있습니다.