1. ► A thread is a light-weight process.
2. ► Race conditions and deadlocks have due to same reason.
3. ► wait function can be used to wait on at most one child.
4. ► Daemon processes must leave control of the terminal from which they were launched.
5. ► sigsuspend takes as input the inverse of the mask to be applied to the incoming signals.
6. ► pthread_join will wait for all the threads to complete before returning.
7. ► One cannot register a handler on the SIGTERM signal.
8. ► General signals do not have a time-guarantee for delivery.
9. ► Init process on UNIX is only responsible for starting new processes.
10. ► The maximum nice value which a process can have is 30.
11. ► Processes must acquire a lock before modifying a shared data-structure.
12. ► fork on Linux is not very efficient and hence vfork should be used.
13. ► dlsym function checks for type mismatch before assigning it to the function pointer and will fail if the types mismatch.
14. ► It is possible to define a *payload data* for signals.
15. ► system function is identical to exec barring the way the arguments are passed to the underlying command.
16. ► One cannot register a handler on the SIGKILL signal.
17. ► Zombie processes are those whose parents have died.
18. ► It is not possible to pass arguments to the functions registered using atexit call.
19. ► Threads can access all the data of their parent process.
20. ► setjmp and longjmp do not save the context before making the jump, they are analogus to a non-local go to.