/index.html
Getting Started with QNX Neutrino 2
/s1_timer.html#id1
Clocks, Timers, and Getting a Kick Every So Often
/s1_timer.html#id2
Clocks & timers
/s1_timer.html#id3
Operating periodically
/s1_timer.html#clock_int_src
Clock interrupt sources
/s1_timer.html#id5
Base timing resolution
/s1_timer.html#id6
Getting more precision
/s1_timer.html#id7
Timing jitter
/s1_timer.html#id8
Types of timers
/s1_timer.html#id9
Notification schemes
/s1_timer.html#how_sigev
How to fill in the struct sigevent
/s1_timer.html#id11
Pulse notification
/s1_timer.html#id12
Signal notification
/s1_timer.html#sigev_thread
Thread notification
/s1_timer.html#id14
General tricks for notification
/s1_timer.html#id15
Pulse notification
/s1_timer.html#id16
Signal notification
/s1_timer.html#using
Using timers
/s1_timer.html#id18
Creating a timer
/s1_timer.html#id19
Signal, pulse, or thread?
/s1_timer.html#id20
What kind of timer?
/s1_timer.html#id21
A server with periodic pulses
/s1_timer.html#sever_timeouts
Server-maintained timeouts
/s1_timer.html#notes
Notes
/s1_timer.html#id24
Periodic server maintenance cycles
/s1_timer.html#id25
Timers delivering signals
/s1_timer.html#id26
Timers creating threads
/s1_timer.html#getsetrtclock
Getting and setting the realtime clock and more
/s1_timer.html#id28
Getting and setting
/s1_timer.html#id29
Adjusting the timebase
/s1_timer.html#id30
An accurate timestamp
/s1_timer.html#id31
Kernel timeouts
/s1_timer.html#id32
Kernel timeouts with pthread_join
/s1_timer.html#id33
Kernel timeouts with message passing
/s1_timer.html#id34
Summary
/s1_procs.html#id1
Processes & Threads
/s1_procs.html#id2
Process and thread fundamentals
/s1_procs.html#id3
A process as a house
/s1_procs.html#id4
The occupants as threads
/s1_procs.html#id5
Single threaded
/s1_procs.html#id6
Multi threaded
/s1_procs.html#id7
Back to processes and threads
/s1_procs.html#id8
Mutual exclusion
/s1_procs.html#id9
Priorities
/s1_procs.html#id10
Semaphores
/s1_procs.html#id11
A semaphore with a count of 1
/s1_procs.html#id12
A semaphore with a count greater than 1
/s1_procs.html#id13
A semaphore as a mutex
/s1_procs.html#id14
The kernel's role
/s1_procs.html#id15
Single CPU
/s1_procs.html#id16
Multiple CPU (SMP)
/s1_procs.html#id17
The kernel as arbiter
/s1_procs.html#id18
Prioritization
/s1_procs.html#id19
Scheduling algorithms
/s1_procs.html#id20
FIFO
/s1_procs.html#id21
Round Robin
/s1_procs.html#id22
The rules
/s1_procs.html#kstate
Kernel states
/s1_procs.html#id24
RUNNING
/s1_procs.html#id25
READY
/s1_procs.html#id26
The blocked states
/s1_procs.html#id27
Kernel states, the complete list
/s1_procs.html#id28
Threads and processes
/s1_procs.html#id29
Why processes?
/s1_procs.html#id30
Starting a process
/s1_procs.html#id31
Starting a process from the command line
/s1_procs.html#id32
Starting a process from within a program
/s1_procs.html#id33
Starting a process with the system call
/s1_procs.html#id34
Starting a process with the exec and spawn calls
/s1_procs.html#id35
Starting a process with the fork call
/s1_procs.html#id36
Starting a process with the vfork call
/s1_procs.html#id37
Process creation and threads
/s1_procs.html#id38
So what should you use?
/s1_procs.html#id39
Starting a thread
/s1_procs.html#thread_attr
The thread attributes structure
/s1_procs.html#id41
Thread attribute administration
/s1_procs.html#id42
The flags thread attribute
/s1_procs.html#id43
The stack thread attributes
/s1_procs.html#id44
The scheduling thread attributes
/s1_procs.html#id45
A few examples
/s1_procs.html#where
Where a thread is a good idea
/s1_procs.html#parallel
Threads in mathematical operations
/s1_procs.html#codingeither
Coding for SMP or single processor
/s1_procs.html#sync2term
Synchronizing to the termination of a thread
/s1_procs.html#id50
Joining
/s1_procs.html#id51
Using a barrier
/s1_procs.html#id52
Multiple threads on a single CPU
/s1_procs.html#smpbeware
Things to watch out for when using SMP
/s1_procs.html#independent
Threads in independent situations
/s1_procs.html#id55
Multiple processes
/s1_procs.html#id56
Multiple processes with shared memory
/s1_procs.html#id57
Multiple threads
/s1_procs.html#id58
Comparisons
/s1_procs.html#id59
More on synchronization
/s1_procs.html#rwlocks
Readers/writer locks
/s1_procs.html#sleepon
Sleepon locks
/s1_procs.html#condvar
Condition variables
/s1_procs.html#id63
Signal versus broadcast
/s1_procs.html#id64
Sleepons versus condvars
/s1_procs.html#ntoext
Additional Neutrino services
/s1_procs.html#tpool
Pools of threads
/s1_procs.html#id67
Controlling the number of threads
/s1_procs.html#id68
The thread pool functions
/s1_procs.html#sched_real_world
Scheduling and the real world
/s1_procs.html#id70
Rescheduling --- hardware interrupts
/s1_procs.html#id71
Rescheduling --- kernel calls
/s1_procs.html#id72
Rescheduling --- exceptions
/s1_procs.html#id73
Summary
