arne_woerner at yahoo.com
Thu Nov 11 10:14:49 PST 2004
I just read in the BUGS section of the man page of rtprio(1), that system calls
are never preemted.
Does that mean, that a "read(fd,buffer,10000000)" blocks all other processes,
until 10^7 bytes are read even if fd points to a file on a very slow and huge
Does that mean, that no process can run, after the kernel ordered a hard disc
to move its heads until the data is transfer from disc to memory (sometimes it
feels like :) )?
Unfortunately I am quite sure, that I would not find out the truth by
experimentation or by looking at source code. Sorry...
If at least one answer is "yes", then I think, that it would be much better for
the performance, if processes could run, while the kernel manages lengthy
io-ops (I still remember, that there was a picture about 4 process states:
running, waiting, dead, blocked; and while the blocked processes are blocking,
the waiting processes are competiting for the CPU/-s).
Do you Yahoo!?
Check out the new Yahoo! Front Page.
More information about the freebsd-realtime