The present invention provides a method and apparatus for a scheduling
driver to implement a protocol using time estimates for use with a device
that does not generate interrupts. An application calls the scheduling
driver to start an Input/Output (I/O) request to a device. The scheduling
driver determines if the device is busy. If the device is not busy, the
scheduling driver provides an estimated processing time (EPT) for the I/O
request to be completed to the application. In one embodiment, if the
device is busy, the scheduling driver calculates an estimated amount of
time left (EATL) until the device will be available to the application and
provides this EATL to the application. When the device is not busy, the
application sleeps for the estimated processing time (EPT) and calls the
scheduling driver to obtain the I/O operation results. If the I/O request
has been completed, the scheduling driver provides the I/O operation
results to the application. However, if the I/O request has not been
completed, the scheduling driver calculates an estimated processing time
remaining (EPTR) for the I/O request to be completed and provides the EPTR
to the application. The application then sleeps for the estimated
processing time remaining (EPTR) and again calls the scheduling driver to
obtain the I/O operation results. These operations can be repeated until
the I/O request has been completed.
La présente invention fournit une méthode et un appareil pour un conducteur d'établissement du programme pour mettre en application un protocole en utilisant des évaluations de temps pour l'usage avec un dispositif qui ne produit pas des interruptions. Une application appelle le conducteur d'établissement du programme pour commencer une demande de l'entrée-sortie (I/O) à un dispositif. Le conducteur d'établissement du programme détermine si le dispositif est occupé. Si le dispositif n'est pas occupé, le conducteur d'établissement du programme fournit une durée de la transformation estimée (EPT) pour la demande d'I/O d'être accompli à l'application. Dans une incorporation, si le dispositif est occupé, le conducteur d'établissement du programme calcule une quantité de temps estimée à gauche (EATL) jusqu'au dispositif sera disponible à l'application et fournit cet EATL à l'application. Quand le dispositif n'est pas occupé, l'application dort pendant la durée de la transformation estimée (EPT) et les appels le conducteur d'établissement du programme pour obtenir l'opération d'I/O résulte. Si la demande d'I/O a été accomplie, le conducteur d'établissement du programme fournit les résultats d'opération d'I/O à l'application. Cependant, si la demande d'I/O n'a pas été accomplie, le conducteur d'établissement du programme calcule une durée de la transformation estimée restante (EPTR) pour la demande d'I/O d'être accompli et fournit l'EPTR à l'application. L'application dort alors pendant la durée de la transformation estimée restante (EPTR) et appelle encore le conducteur d'établissement du programme pour obtenir les résultats d'opération d'I/O. Ces opérations peuvent être répétées jusqu'à ce que la demande d'I/O ait été accomplie.