TacOS-team / tacos

Système d'exploitation / Operating System
GNU General Public License v3.0
9 stars 4 forks source link

Se renseigner sur l'I/O scheduling #46

Open MaximeCheramy opened 12 years ago

MaximeCheramy commented 12 years ago

Si on a plusieurs process qui essayent d'accéder à une même ressource, cela peut potentiellement créer des problèmes (bug dans le pire des cas, problème de réactivité le plus souvent). Il faudrait donc se renseigner sur l'I/O scheduling (http://en.wikipedia.org/wiki/I/O_scheduling). Partons sur une solution simple, mais gardons ça en tête pour coder proprement et nous permettre plus tard d'améliorer le système.

Question annexe : qu'est-ce qui se passe actuellement si on 2 process qui essayent d'accéder à la disquette en même temps ? "si progA va à un certain secteur et qu'il fini pas sa lecture, se fait préempter par probB qui commence une lecture ailleurs, j'ai peur que progA soit un peu perdu lorsqu'il reprend la main"

NicolasFloquet commented 12 years ago

En effet, si un progA se fait ordonnancer en plein milieu d'une fonction de lecture du driver disquette par exemple, et qu'entre temps un autre processus vien déplacer les têtes de lecture, la suite de la lecture par le progA sera là ou l'autre processus a placé les têtes. La solution la plus simple à mettre en place c'est une fifo, et ça peut être géré au niveau du système des blocks devices, cf #44

MaximeCheramy commented 12 years ago

Alors en fait, si j'ai bien compris, ça peut être fait à différents niveaux. L'avantage d'être près du matériel c'est de pouvoir tenir compte du comportement mécanique du matériel dans l'ordre de traitement des requêtes (plus petit seek par exemple pour un disque dur ou une disquette, alors qu'avec une mémoire flash, on s'en fout).