


What are the states of the linux process?
There are 5 states: 1. Executable state; 2. Interruptible waiting state; 3. Uninterruptible waiting state; 4. Stop state; 5. Abort state. The state value of "executable state" is TASK_RUNNING. At this time, the program has been placed in the run queue and is in a ready-to-run state. Once it obtains the right to use the processor, it can enter the running state.
#The operating environment of this tutorial: linux5.9.8 system, Dell G3 computer.
A special data structure instance defined by the operating system and controlled by the operating system is called a process. It is connected to the user code, has an independent memory space required for the code to run, and runs under the scheduler's schedule using the processor time slice assigned to it.
The 5 states of the Linux process
In the Linux system, after a process is created, the system can have the following 5 states: . The current state of the process is recorded in the state member of the process control block.
Ready state and running state (executable state)
The value of the state flag state of the ready state is TASK_RUNNING. At this time, the program has been placed in the run queue and is ready to run. Once the right to use the processor is obtained, it can enter the running state.
When the process obtains the processor and runs, the value of state is still TASK_RUNNING and does not change; but Linux will point a pointer current specifically used to point to the currently running task to it to indicate that it is a Running process.
Interruptible waiting state
The value of the status flag state is TASK_INTERRUPTIBL. At this time, the process is in a waiting state because it has not obtained the resources it requested. Once the resource is available or there is a wake-up signal, the process will immediately end waiting and enter the ready state.
Uninterruptible waiting state
The value of the status flag state is TASK_UNINTERRUPTIBL. At this time, the process is also waiting for resources. Once the resource is available, the process immediately enters the ready state. The difference between this waiting state and the interruptible waiting state is that a process in the TASK_UNINTERRUPTIBL state cannot be awakened by a semaphore or interrupt, and can only be awakened when the resources it applies for are valid.
This state is used in certain scenarios in the kernel. For example, when the process needs to read and write to the disk, and the data is being copied to the memory in the DMA, if the process sleep is interrupted at this time ( For example, force exit signal) then problems are likely to occur, so at this time the process will be in a state that cannot be interrupted.
Stop state
The value of the status flag state is TASK_STOPPED. When the process receives a SIGSTOP signal, it enters the stopped state from the running state. When it receives a SIGCONT signal, it returns to the running state. This state is mainly used for program debugging, and is also called "pause state" or "suspend state".
Abort status
The value of the status flag state is TASK_DEAD. The process stops running for some reason, and all the resources occupied by the process will be recycled, except for the task_struct structure (and a few resources), and the system will no longer pay attention to it, so this state is also called a "zombie state" and the process becomes Zombie process.
During the entire life cycle of a process, it can transition between 5 states. The conversion relationship between the five states of the Linux process is shown in the figure below:
Related recommendations: "Linux Video Tutorial"
The above is the detailed content of What are the states of the linux process?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











The five basic components of the Linux system are: 1. Kernel, 2. System library, 3. System utilities, 4. Graphical user interface, 5. Applications. The kernel manages hardware resources, the system library provides precompiled functions, system utilities are used for system management, the GUI provides visual interaction, and applications use these components to implement functions.

To view the Git repository address, perform the following steps: 1. Open the command line and navigate to the repository directory; 2. Run the "git remote -v" command; 3. View the repository name in the output and its corresponding address.

VS Code One-step/Next step shortcut key usage: One-step (backward): Windows/Linux: Ctrl ←; macOS: Cmd ←Next step (forward): Windows/Linux: Ctrl →; macOS: Cmd →

Although Notepad cannot run Java code directly, it can be achieved by using other tools: using the command line compiler (javac) to generate a bytecode file (filename.class). Use the Java interpreter (java) to interpret bytecode, execute the code, and output the result.

There are six ways to run code in Sublime: through hotkeys, menus, build systems, command lines, set default build systems, and custom build commands, and run individual files/projects by right-clicking on projects/files. The build system availability depends on the installation of Sublime Text.

The main uses of Linux include: 1. Server operating system, 2. Embedded system, 3. Desktop operating system, 4. Development and testing environment. Linux excels in these areas, providing stability, security and efficient development tools.

To install Laravel, follow these steps in sequence: Install Composer (for macOS/Linux and Windows) Install Laravel Installer Create a new project Start Service Access Application (URL: http://127.0.0.1:8000) Set up the database connection (if required)

Installing Git software includes the following steps: Download the installation package and run the installation package to verify the installation configuration Git installation Git Bash (Windows only)
