Q: What is shared memory?
This is the fastest of all
IPC schemes. The memory to be shared is mapped into the address space of the
processes (that are sharing). The speed achieved is attributed to the fact that
there is no kernel involvement. But this scheme needs synchronization.
Various forms of synchronisation are mutexes, condition-variables, read-write locks, record-locks, and semaphores.
Various forms of synchronisation are mutexes, condition-variables, read-write locks, record-locks, and semaphores.
Q: Condition variables?
conditional variables allow
you to wait for certain condition to occur. In practice your thread may sleep
on conditional variable and other thread wakes it up.
/* in thread 1 */
pthread_mutex_lock(mx); /* protecting state access */
if (state == GOOD) {
pthread_cond_wait(cond, mx); /* unlocks the mutex and sleeps, then locks it back */
}
pthread_mutex_unlock(mx);
/* in thread 2 */
pthread_mutex_lock(mx); /* protecting state access */
state = GOOD;
pthread_cond_signal(cond); /* expecting to wake thread 1 up */
pthread_mutex_unlock(mx);
Q: smp_affinity?
smp_affinity is a bitmask, in which you can specify which CPUs can handle the IRQ, you can set it by doing:
echo 1 > /proc/irq/10/smp_affinity
Q: smp_affinity?
smp_affinity is a bitmask, in which you can specify which CPUs can handle the IRQ, you can set it by doing:
echo 1 > /proc/irq/10/smp_affinity
This means that only the
first CPU will handle the IRQ, but you can also echo 5 which means that only
the first and fourth CPU can handle the IRQ.
No comments:
Post a Comment