Hong Zhou
Hong Zhou

Reputation: 649

Linux process and threads scheduling

I'm playing around with linux scheduling with sched.h and bump into some questions.

From what I know, Linux scheduler do not treat threads and processes differently when scheduling. Threads are just like process which shares common resources.

Ok, Say I have Process-A and it is set to CPU core 0 and SCHED_FIFO property is set; which will runs until another higher priority tasks kicks in. If Process-A creates a new thread, will the thread inherit the same property? (i.e. be bind to CPU 0 with SCHED_FIFO properties or will it be DEFAULT?)

Thanks!

Upvotes: 2

Views: 1465

Answers (1)

Tudor
Tudor

Reputation: 62469

You can actually test this with a simple program, but from various man pages:

sched_setaffinity:

A child created via fork(2) inherits its parent's CPU affinity mask. The affinity mask is preserved across an execve(2).

pthread_create:

The new thread inherits copies of the calling thread's capability sets (see capabilities(7)) and CPU affinity mask (see sched_setaffinity(2)).

sched_setscheduler:

Child processes inherit the scheduling policy and parameters across a fork(2). The scheduling policy and parameters are preserved across execve(2).

Upvotes: 4

Related Questions