A process is a dynamic description of a program, which is the smallest unit of the operating system's resource allocation (the thread is the smallest unit of the operating system execution entity). for a multi-channel program system, there may be many processes in memory, in order to facilitate the management of these processes, the operating system kernel for each created process to establish a structure to save its related information. This structure is the PCB, which is the process control block, the process control block exists in the process of high 1 G space, that is, the kernel space. In a specific Linux kernel implementation, a struct named Task_struct is described with a specific definition in the kernel/include/linux/sched.h header file. the way the operating system organizes the PCB is indexed (array), chained (linked list). The Linux system is a chained way to organize the PCB, for different states to establish a process queue. There may be many processes in the system that are in the same state that make up a process queue. For example, a process that is blocked due to different blocking reasons all the information in the process is stored in the PCB, which can be divided into several major categories:1, process identification information. such as process ID, owning user ID, owning group ID, parent process ID, and so on. 2, Process Control information. such as process scheduling information, process communication mechanism. 3, process resource information. such as open files, process address space, and so on. 4, CPU status information. Used to protect the site when a process is interrupted.
Process Control (i)---PCB (Process control block)