Love4Boobies wrote:as far as disks are concerned, I'd go for "amount written" instead of speed.
I guess it would be very useless way. How counting of "amount written" can help to provide fair schedulling? Nobody cares about how many a task has read/written from/to disk. How often task reads — that is important.
geomagas wrote:But not "What? You want the CPU? Well, let me see... You have already read 100G from disk and written 20G, so... no CPU for you!". What if the process changed behaviour and now wants to do an intensive calculation on the 100G it fetched from disk? And what if... the process waiting list is empty?
Of course it is absurd. My idea is about counting average reading/writing speed.
AVERAGE SPEED.I don't understand why majority has thought about size of read/wrote data.
aeritharcanum wrote:About your Windows assertion: I have never seen this information on processes' I/O usage while using Windows.It may or may not be there.
I'm more than sure you have never used ACLs in Windows. But it doesn't mean that they are not exist.
Just open Task Manager, open "Processes" tab, go to View menu, click "Choose columns" and choose what you want to see.(I've got russian version of Windows, that's why I could translate some names wrong).
aeritharcanum wrote:Regardless, since when has Windows been a paradigm for good design?
Sinse the win32 subsystem has been based on NT kernel, which based on VMS ideas.
Idea of I/O speed based scheduller can be more complex. Why not to enter concept of "guaranteed speed", for example?
We'r giving guaranteed I/O speed to some task on some disk. If the task don't write to the disk, all other tasks can use the disk freely. When the task want to write to the disk, disk dirver(or disk server if to speak about ukernels) looks to his queue. If there is another requests for writing, it looks, if the task has guaranteed speed and guarantees are satisfied. If not — disk driver doesn't pay attention on other requests and try to satisfy guarantees of the task. The other tasks haven't access to the disk, while guarantees will not be satisfied.
Of course the task can exceed its guaranteed speed, if there are not other requests in the queue.