system calls

Arne Wörner arne_woerner at
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
floppy disc?

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 mailing list