1

Cette fonction affecte-t-elle les performances du fichier mappé en mémoire?SetFileBandwidthReservation affecte-t-il les performances du fichier mappé en mémoire?

Voici le problème que je dois résoudre:

J'ai deux applications concurrentes pour l'accès au disque: « lecteur » et « updater ». Le système entier fonctionne sur Windows Server 2008 R2 x64

"Updater" accède constamment au disque de manière linéaire, en mettant à jour les données. Le système est configuré de telle sorte que le programme de mise à jour possède toujours des données infinies à mettre à jour. Considérons qu'il est en constante approximation d'une solution d'un énorme ensemble d'équations qui occupe tout le lecteur de disque de 2 To. Updater utilise ReadFile et WriteFile pour traiter les données de manière linéaire. "Reader" est parfois appelé par l'utilisateur pour obtenir des données. Habituellement, l'utilisateur lirait plusieurs blocs de 4 Ko du disque et s'arrêterait. Parfois, l'utilisateur doit lire jusqu'à 100 Mo de manière séquentielle. Dans des cas exceptionnels jusqu'à plusieurs gigaoctets. Reader mappe les fichiers en mémoire pour obtenir les données dont il a besoin. Ce que je voudrais accomplir, c'est que le "lecteur" ait la priorité absolue pour que "updater" s'arrête complètement si nécessaire afin que "reader" puisse obtenir les besoins de l'utilisateur de données aussitôt que possible.

Ce problème peut-il être résolu en utilisant les appels SetPriorityClass et SetFileBandwidthReservation? Je ne voudrais vraiment pas mettre la connexion de synchronisation dans "lecteur" et "updater" et plutôt avoir le système d'exploitation s'occuper des priorités.

Répondre

0

Les fonctions que vous avez mentionnées n'ont rien à voir avec votre tâche, IMO.

On dirait que vous demandez un accès simultané aux fichiers à partir de plusieurs processus - et le système d'exploitation va faire ce que vous avez demandé. Ainsi, vous devrez faire ce que vous détestez ~ ajouter une logique de synchronisation pour assurer l'exactitude.

Selon votre description - l'ouverture du fichier pour un accès exclusif à la fois du lecteur et du programme de mise à jour résout une tâche consistant à rendre le lecteur ininterrompu par un programme de mise à jour. Le deuxième objectif est de rendre le programme de mise à jour interruptible à la demande du lecteur.

La façon de gérer cela dépend si un programme de mise à jour peut être arrêté au milieu de son travail. Dans le cas simple, le lecteur peut informer un updater qu'il doit arrêter son travail dès que possible et attendre.