搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
Monodyee
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
基于Springboot框架图书馆管理图书馆借阅系统设计与实现
2
概率论————思维导图(上岸必备)(多维随机变量及其分布)_多维随机变量及其分布思维导图
3
【git】-git本地保存用户名和密码-git pull总是提示用户名和密码_git 保存账号密码
4
C++tuple类型
5
〖Python〗-- Tornado基础
6
让 AI 帮你写代码,开发提效神器来了
7
python用电度数设计_无所不能的Python之配电设计自动化系统
8
一文了解提示工程(Prompt Engineering)
9
基于Transformers的自然语言处理入门【四】-GPT_transformers和gpt
10
nvm更换node.js的版本
当前位置:
article
> 正文
【Linux】进程控制块PCD结构(tack_struct)_定义pcd结构体实验
作者:Monodyee | 2024-03-29 05:16:38
赞
踩
定义pcd结构体实验
tack_struct结构图:
一、task_struct 结构描述
1.进程状态(State)
进程执行时,它会根据具体情况改变状态。进程状态是调度和对换的依据。Linux 中的
进程主要有如下状态,如表4.1 所示。
(1)可运行状态
处于这种状态的进程,要么正在运行、要么正准备运行。正在运行的进程就是当前进程
(由
current 宏
所指向的进程),而准备运行的进程只要得到CPU 就可以立即投入运行,CPU 是
这些进程唯一等待的系统资源。系统中有一个运行队列(run_queue),用来容纳所有处于可
运行状态的进程,调度程序执行时,从中选择一个进程投入运行。
当前运行进程一直处于该队列中,也就是说,current
总是指向运行队列中的某个元素,只是具体指向谁由调度程序决定。
(2)等待状态
处于该状态的进程正在等待某个事件(Event)或某个资源,它肯定位于系统中的某个
等待队列(wait_queue)中。Linux 中处于等待状态的进程分为两种:可中断的等待状态和
不可中断的等待状态。处于可中断等待态的进程可以被信号唤醒,如果收到信号,该进程就
从等待状态进入可运行状态,并且加入到运行队列中,等待被调度;而处于不可中断等待态
的进程是因为硬件环境不能满足而等待,例如等待特定的系统资源,它任何情况下都不能被
打断,只能用特定的方式来唤醒它,例如唤醒函数wake_up()等。
(3)暂停状态
此时的进程暂时停止运行来接受某种特殊处理。通常当进程接收到SIGSTOP、SIGTSTP、
SIGTTIN 或 SIGTTOU 信号后就处于这种状态。例如,正接受调试的进程就处于这种状态。
(4)僵死状态
进程虽然已经终止,但由于某种原因,父进程还没有执行wait()系统调用,终止进程的
信息也还没有回收。顾名思义,处于该状态的进程就是死进程,这种进程实际上是系统中的
垃圾,必须进行相应处理以释放其占用的资源。
A child that terminates, but has
not
been waited
for
becomes a
"zombie"
. The kernel maintains a
minimal set of information about the zombie process (PID, termination status, resource usage
information) in order to allow the parent to later perform a wait to obtain information about the
child. As
long
as a zombie is
not
removed from the system via a wait, it will consume a slot in
the kernel process table,
and
if
this
table fills, it will
not
be possible to create further
processes. If a parent process terminates, then its
"zombie"
children (
if
any) are adopted by
init(
8
), which automatically performs a wait to remove the zombies.
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/Monodyee/article/detail/333987?site
推荐阅读
article
Linux
/
C
/
C
++将
虚拟机
磁盘
文件
挂载到本地
文件
系统
_
vdmount
...
vdfmount.h#ifndef VDFMOUNT_H#define VDFMOUNT_H#include
[详细]
-->
赞
踩
article
Linux
cron
定时任务常用方法
_
cron
每个
小时
执行
一次
...
linux
cron
tab常用定时任务表达式
_
cron
每个
小时
执行
一次
cron
每个
小时
执行
一次
...
赞
踩
article
Linux
服务
管理:
服务
启动
/停止,
自
启动
_
服务
优雅启停
linux
...
1.推荐
自
启动
方法:修改/etc/rc.d/rc.local文件,加入/etc/init.d/httpd start (...
赞
踩
article
Linux
/
Java
技术训练舱:从零开始安装
Ubuntu
Linux
,优化桌面并构建VS
Code
轻...
掌握
Linux
操作系统和一门主流的编程语言,是很多新人以及工作多年的程序员需要不断夯实的基础性学习。
Linux
和
Java
...
赞
踩
article
SpringCloud
Alibaba
【
Nacos
集群搭建(Windows+
Linux
)&Ribbo...
目录
SpringCloud
Alibaba
1.
Alibaba
微服务组件
Nacos
注册中心(Eureka服务注册于发现)...
赞
踩
article
ARM
和 龙芯上
Arch
Linux
安装
手记...
后来想起来我用的是OrbStack,打开图形界面,直接按向导
安装
了一个
Arch
Linux
,分分钟就装好了。这是一个好...
赞
踩
article
Mac 远程
Linux
桌面
vnc
_
mac
vnc
linux
...
然后,我们需要在 /etc/systemd/system/ 目录里创建一个配置文件。我们可以将 /lib/systemd...
赞
踩
article
【
ARM
Linux
系统
稳定性
分析入门及渐进 3 --
栈
溢出
】_arm平台
linux
...
是一块分配在
栈
之下的一块内存空间(假设
栈
stack是向下生长的),如图 2 所示,这样当
栈
stack下溢时,就能在保护...
赞
踩
article
Linux
学习
记录
58
(
ARM
篇)_
linux
arm
入门...
GIC层一共管理288个中断号(ID:0 ~ 287),16个SGIS,16个PPIS,256个SPIS。功能:使能cp...
赞
踩
article
【ARM
Linux
系统
稳定性
分析入门及渐进 2 -- Kernel
Lockup
】_
linux
...
Softlockup用于检测
系统
调度是否正常,即软锁的情况,当发生Softlockup时,内核不能调度,但还能响应中断,...
赞
踩
article
Linux
-
ARM
裸机(一)-搭建
开发
环境
_
filezilla
linux
arm
...
本篇是是本人学习
Linux
-
ARM
裸机
开发
的第一篇博文。主要记录了在Ubuntu搭建
ARM
裸机的
开发
环境
及其间遇到的一些...
赞
踩
article
ARM
-
Linux
内核基础知识_
arm
linux
...
文章目录系列文章一、
ARM
-
Linux
内核和普通内核的区别1.
Linux
内核2.
ARM
-
Linux
内核二、
Linux
...
赞
踩
article
深入了解
Linux
中的
MTD
设备
:/
dev
/
mtd
* 与 /
dev
/
mtd
block*...
在嵌入式
Linux
系统的世界里,非易失性存储技术扮演着至关重要的角色。
MTD
(Memory Technology Dev...
赞
踩
article
Linux
开源
的
高性能
稳定
服务器
操作系统
入门_
linux
的
稳定
性极高...
我们研发项目,写代码时,使用
的
一般都是windows或者是MAC
的
操作系统
,作为本地
的
用户使用系统,而
Linux
一般都是...
赞
踩
article
LTP
(
Linux
Test
Project
)使用指南_
ltp
使用...
文章目录1、
ltp
-ddt简介1.1、
ltp
1.2、
ltp
-ddt2、环境构造2.1、交叉编译2.2、文件系统3、测试运...
赞
踩
article
Linux
安装
VNC
Viewer
_
vnc
-
viewer
安装旧版 linux...
1、下载安装包:执行命令 wget https://www.real
vnc
.com/download/file/view...
赞
踩
article
linux
vnc
viewer
使用
教程,
vnc
使用
教程
,
vnc
使用
教程5步详解...
有幸能够亲自在服务器上面操作一下
,
这篇博客来说一说
,
如何在Linux上安装VNC首先要知道的是
,
VNC是什么。VNC(V...
赞
踩
article
LTP
在
arm
-
linux
-交叉
编译
环境上的安装_
ltp
工具交叉
编译
arm
架构...
一、
LTP
交叉
编译
:1. 运行configure命令:./configure CC=
arm
-none-
linux
-g...
赞
踩
article
linux
vnc
viewer
使用
教程,
vnc
viewer
远程桌面
,11步实现
vnc
viewe...
Virtual Network Computing(VNC)是进行
远程桌面
控制的一个软件。客户端的键盘输入和鼠标操作通过...
赞
踩
article
linux
下
LTP
的
安装
和配置_
ltp
linux
...
(1) 更新系统(2)
安装
编译环境(3)
安装
需要的软件包(4)解压
ltp
软件包(5)创建目录(6)配置(7)编译sudo...
赞
踩
相关标签
linux
服务器
运维
java
ubuntu
vscode
visual studio code
spring cloud
windows
arm开发
macos
堆栈
栈溢出
数据越界
递归调用
局部数组过大
内存被踩
全局变量
学习
soft lockup
hard lockup
死锁
hung
hung task