process -> 1 cpu

Is there a way I can assign processes to different processors? I know in windows xp you can set process affinity, and wondered if there is a *nix equivelant.

The only unix versions that I work with are HP-UX and SunOS. HP-UX has mpctl(2) and SunOS has processor_bind(2). Both of these calls can bind a thread to a processor.

In unix these days, a process is a collection of threads. And so you could bind several threads of a single process to different cpu's thus allowing them to run simultaneously. Both calls have the ability to bind all threads of a particular process to a cpu. When used this way, they are probably very equivalent to your windows function.

I don't know what the deal is with other versions of unix with respect to cpu binding. I would be interested if anyone else can shed more light.

Im using OS X / Darwin and pure darwin. (2 machines)