> On other operating systems, there is a system call that causes a reschdule
> of processes -- declare significant event. This allows a program to
> willingly relinquish control of the CPU, without doing a sleep(). What this
> command does is cause a immediate reschdule just as if sleep or some i/o
> command with wait was called, however, it does not place the calling program
> in a wait mode. So if no one else is waiting or the CPU becomes free again
> before a sleep() would expire, the program just goes on running.
> What would be the equivalent in UNIX or specifically SCO Open Server 5?
> Anybody know?
UNIX is a pre-emptive multitasking operating system. Meaning, whether a
process gives up control or not, the process scheduler takes control away
and pages in a different process anyway. Note, it is not deterministic-
preemptive -- that would be a realtime system. Regular UNIX uses an aging
algorithm with priorities to determine what to run next. That is why each
user perceives that his login shell is getting good response on the system
-- another process can't hog the system (unless the sysadmin sets it up to
UNIX doesn't need processes to be friendly with each other -- it is not
MS-Windows (and its touchy-feely liberal "we must be friends" system). In
fact in UNIX, one process doesn't even have to have another running for it
to run. It is up to the processes themselves to employ a IPC mechinism if
they need to cooperate and synchronize themselves.
Scott G. Hall
GTE Government Systems
North Carolina Systems Center