SYSTEM call is called from assembly code.
Appendix C of KERNEL book has information for the C questions like asmlinkage long which is nothing but
call to the compiler that its called from compiler.
Linux define List in a different way as it works across different kernel objects.
Process has a process control block.
Process address space is dependent on the number of bits in the hardware. So a 32 bit OS can give 4GB of user address space of which 3GB is for user space and 1GB is for kernel space. 64 bit would be different.
fork()->RUNNABLE -> RUNNING ->EXIT, WAIT, (Sleep/ Block for I/O).
Block states are divided into two states -Interruptible and non interruptible.
Definition of terminated:
1) Can't run anymore - becomes ZOMBIE process (is REQUIRED mostly when the child has to return the status[TASK_STRUCT] to the parent process that its dying).
2) Free all state - TASK_STRUCT, PCB [DEAD State]
IPC(Inter Process Communication)
- kill -9 PID (SIGKILL)
A----signal-sent---> B(Pending) Flag to be set---->B(Delivered).
Processes handle their own signals and some of the system calls.