*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> pthread_attr_setschedpolicy (3p)              
Title
Content
Arch
Section
 

Contents


pthread_attr_setschedpolicy(3P)		       pthread_attr_setschedpolicy(3P)


NAME    [Toc]    [Back]

     pthread_attr_setschedpolicy, pthread_attr_getschedpolicy -	manage
     scheduling	policy attributes

C SYNOPSIS    [Toc]    [Back]

     #include <pthread.h>

     int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy);

     int pthread_attr_getschedpolicy(const pthread_attr_t *attr,
	  int *opolicy);

DESCRIPTION    [Toc]    [Back]

     A scheduling policy defines how threads are selected to run and for how
     long they run before an alternative thread	may be chosen to run.  There
     are four policies:	 SCHED_FIFO (first-in-first-out), SCHED_RR (roundrobin),
 SCHED_TS (time-share) and SCHED_OTHER.  The default scheduling
     policy attribute value for	POSIX threads is SCHED_RR.  Each policy	uses
     thread priorities [see pthread_attr_setschedparam()] as part of their
     selection criteria.  Scheduling scope [see	pthread_attr_setscope()]
     determines	the set	of threads from	which a	selection is made using	a
     given policy.

     Thread priorities are viewed as separate queues, managed according	to the
     thread scheduling policy.	A thread's position on the queue determines
     how likely	it is to be run	(if it is runnable), woken up (if it is
     waiting and an event arrives), or preempted (if it	is running).

     SCHED_FIFO	    Allows a thread (once selected) to run until it blocks,
		    exits, or there is a higher	priority thread	that can run.
		    The	priority queues	are managed as follows:

		    o	When a thread is preempted it moves to the head	of its
			priority queue.

		    o	When a blocked thread becomes runnable it moves	to the
			tail of	its priority queue.

		    o	When a thread has its scheduling priority changed [see
			pthread_setschedparam(),
			pthread_mutexattr_setprotocol()] it moves to the tail
			of the new priority queue.

		    o	When a thread has its scheduling policy	changed	it
			moves to the tail of its priority queue.

		    o	When a thread calls sched_yield() it moves to the tail
			of its priority	queue.

     SCHED_RR	    Behaves like SCHED_FIFO with the addition that the thread
		    will automatically move to the tail	of its priority	queue
		    when it has	been running for a fixed period	of time	[see



									Page 1






pthread_attr_setschedpolicy(3P)		       pthread_attr_setschedpolicy(3P)



		    sched_rr_get_interval()]calledaquantum.  This period is
		    reset when it expires and whenever the thread blocks; if
		    the	thread is preempted it resumes execution with the
		    unexpired portion of its scheduling	period.

     SCHED_TS    [Toc]    [Back]

     SCHED_OTHER    These two policies are equivalent and for POSIX threads
		    they behave	the same as SCHED_RR.

     The pthread_attr_setschedpolicy() function	sets the thread	scheduling
     policy attribute in the object attr, to the value of policy.  In order to
     use the scheduling	policy from the	attribute object the inherit attribute
     must be set to PTHREAD_EXPLICIT_SCHED (which is the default) [see
     pthread_attr_setinheritsched()].  The scheduling policy for the attribute
     object attr, is retrieved by pthread_attr_getschedpolicy()	in the opolicy
     parameter.

     The policies above	may also be used to indirectly change the scheduling
     of	process	scope threads [see pthread_attr_setscope()] using the POSIX
     process scheduling	interfaces [see	sched_setscheduler() and
     sched_setparam()].

     For an overview of	the POSIX thread scheduling model see pthreads(3P).

DIAGNOSTICS    [Toc]    [Back]

     On	success	pthread_attr_setschedpolicy() returns zero; otherwise an error
     number is returned:

     [EINVAL]	    The	value of policy	is not SCHED_FIFO, SCHED_RR, SCHED_TS,
		    or SCHED_OTHER.

     pthread_attr_getschedpolicy() always returns zero.

SEE ALSO    [Toc]    [Back]

      
      
     pthread_attr_setinheritsched(3P), pthread_attr_setschedparam(3P),
     pthread_attr_setscope(3P),	pthread_mutex_init(3P),
     pthread_setschedparam(3P),	pthreads(5), sched_rr_get_interval(3P),
     sched_setparam(2),	sched_setscheduler(2), sched_yield(2).


									PPPPaaaaggggeeee 2222
[ Back ]
 Similar pages
Name OS Title
pthread_attr_setschedpolicy Tru64 Changes the scheduling policy attribute of the specified thread attributes object
pthread_attr_getschedpolicy Tru64 Obtains the scheduling policy attribute of the specified thread attributes object
pthread_attr_setschedparam IRIX manage thread scheduling priority attributes
pthread_getschedparam Tru64 Obtains the current scheduling policy and scheduling parameters of a thread
sched_setscheduler Tru64 Sets the scheduling policy and scheduling parameters of the specified process (P1003.1b)
pthread_setschedparam Tru64 Changes a thread's scheduling policy and scheduling parameters
sched_setscheduler IRIX set the scheduling policy of a process
sched_getscheduler IRIX get the scheduling policy of a process
sched_getscheduler FreeBSD set/get scheduling policy and scheduler parameters
sched_setscheduler FreeBSD set/get scheduling policy and scheduler parameters
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service