Linux之进程管理

LINUX系统进程管理 进程是计算机系统中最重要的概念之一,在计算机系统中并行运行着大量的程序,这些程序不可能独占系统的全部资源,而是需要这些程序共享系统资源,所以这些程序在运行时会产生一定的竞争关系。那在这种情况下,系统资源怎么分配?运行程序该如何管理呢?操作系统为了解决这一系列的问题引入了进程的概念,用来作为操作系统分配和管理系统资源的基本单位。所以进程的出现是为了让系统资源的利用更加合理,从而提高系统的运行效率。定义进程,就避免不了提到另一个概念“程序”。 阅读详情

进程管理

一、进程基础知识

程序 :

二进制文件,静态 /usr/sbin/httpd,/usr/sbin/sshd

进程 :

是程序运行的过程, 动态,有生命周期的,可以产生和消亡的(进程是已启动的可执行程序的运行

实例,实例即运行可执行程序)。

线程 :

线程是进程之内独立执行的一个单元。对于操作系统而言,其调度单元是线程;一个进程至少包括

一个线程,通常将该线程称为主线程;一个进程从主线程的执行开始,进而创建一个或多个附加线程,就

是所谓基于多线程的多任务。

进程的生命周期

父进程:

程序运行时产生的第一个进程,任何进程都可以作为父进程创建子进程。

子进程:

由父进程使用fork()函数完全复制自己的地址空间创建出来的新的进程就是子进程,子进程继承父

进程的安全性身份、过去和当前的文件描述符、端口和资源特权、环境变量,以及程序代码,随后,子进

程可能exec自己的程序代码。

poccess id:

为父进程跟踪和安全性以及管理人员的控制和管理所需,父进程会给子进程分配一个唯一的

进程id,这个id就是pid

进程状态

R:

包含runnable和running,表示进程正在等待运行或者是正在cpu上运行

Sleeping: 包含S、D、K三种状态

S:

可中断睡眠,进程在等待事件触发/接收到指定的信号(硬件请求/系统之间的访问)才会运行起

来。

D:

不可中断睡眠,不会接收或者是相应外界传来的信号,通常情况下正在进行I/O操作

K:

和D的状态相同,但是可以被中断

Stopped:

T状态,表示进程被停止,通常是由用户或者是其他进程发送的信号。

Zombie:

包含X、Z两种状态

Z:

除了pid之外,其他的资源都已经释放掉,给父进程发送退出信号之后进入到Z状态

X:

父进程清理掉子进程剩余的结构体之后,子进程就进入到死亡的状态

二、查看进程

==静态ps

[root@ever ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 2164 648 ? Ss 08:47 0:00 /usr/lib/systemd/systemd
56/214
USER:  运行进程的用户
PID:  进程ID
%CPU: CPU占用率
%MEM: 内存占用率
VSZ: 占用虚拟内存,包括程序、代码、共享库等所有的
RSS: 占用实际内存 驻留内存
TTY:  进程运行的终端,?表示不依赖于任何的终端
STAT: 进程状态
R  运行
S  可中断睡眠 Sleep
D 不可中断睡眠
T  停止的进程
Z  僵尸进程
X 死掉的进程

【了解 】

Ss s进程的领导者,父进程
S< <优先级较高的进程
SN N优先级较低的进程
R+ +表示是前台的进程组
Sl 以线程的方式运行
START: 进程的启动时间
TIME: 进程占用CPU的总时间,单位是minute
COMMAND: 进程文件,进程名

ps aux --sort rss |less //升序排序

ps aux --sort -rss |less //降续排序

自定义显示字段

[root@ever ~]# ps axo user,pid,ppid,%mem,command
[root@ever ~]# ps axo user,pid,ppid,%mem,command |grep bash
alice 29371 29353 0.3 -bash
root 30314 2677 0.3 bash
root 31443 2677 0.3 bash
root 31457 31443 0.1 grep bash
[root@ever ~]# ps -ef //unix风格
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 08:47 ? 00:00:00 init [5]

查看指定进程的PID

[root@ever ~]# ps aux |grep sshd
root 10180 0.0 0.0 7224 1024 ? Ss 16:00 0:00 /usr/sbin/sshd
[root@www ~]# man pgrep
57/214
[root@ever ~]# pgrep -l sshd //不加l就不显示进程的名字
10180 sshd
[root@ever ~]# pgrep sshd
10180
[root@www ~]# pgrep -uroot sshd
10180
[root@www ~]# pgrep -uapache,root
[root@ever ~]# cat /var/run/sshd.pid
10180
[root@ever ~]# pidof sshd
10180

==动态top

[root@ever ~]# top
[root@ever ~]# top -d 1 一秒钟变化一次
[root@ever ~]# top -d 1 -p 10126 查看指定进程的动态信息
[root@ever ~]# top -d 1 -p 1,2,3 查看sshd的同时查看pid号为1的进程
[root@ever ~]# top -d 1 -u qemu 查看指定用户的进程
[root@ever ~]# top -b -n 2 > top.txt  将2次top信息写入到文件

第一部分:系统整体统计信息

top - 14:22:36 up 4:45, 3 users, load average: 0.00, 0.00, 0.00
Tasks: 206 total, 2 running, 204 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.6%us, 0.7%sy, 0.0%ni, 96.8%id, 0.9%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4019424k total, 1327584k used, 2691840k free, 131012k buffers
Swap: 2047992k total, 0k used, 2047992k free, 650880k cached
load average: 0.23, 0.06, 0.02 1分钟,5分钟,15分钟之内系统的平均负载
us:用户占用的cpu的百分比 sy:内核占用的cpu的百分比 ni 改变过优先级的进程占用的cpu的百分
比
id:cpu的空闲时间 wa:cpu的IO等待的时间 hi:硬中断占用的cpu的百分比 si:软中断
st:cpu被偷走的时间

第二部分:进程信息

命令
h或?获得帮助
M 按内存的使用排序
P 按CPU使用排序
N 以PID的大小排序
R 对排序进行反转
f 自定义显示字段,调整字段顺序(选中正行上下箭头调整)
1 显示所有CPU的负载
W 保存top环境设置 ~/.toprc
< 向前
> 向后 一页显示不了,向后翻页
z 彩色
[root@localhost ~]# atop
[root@localhost ~]# htop

三、使用信号控制进程

[root@ever ~]# kill -l //列出所有支持的信号
编号 信号名
1) SIGHUP  重新加载配置
2) SIGINT 键盘中断^C
3) SIGQUIT 键盘退出^\
9) SIGKILL 强制终止,不可忽略,不可拦截
15) SIGTERM 终止(正常退出,干净)默认信号,可忽略
18) SIGCONT 继续,不可拦截
19) SIGSTOP 停止,不可忽略
20)SIGTSTP 暂停^Z

练习1:

给sshd/httpd进程发送1,15信号

[root@ever ~]# ps aux |grep sshd
root 1925 0.0 0.0 64116 44 ? Ss Jul25 0:00 /usr/sbin/sshd
[root@ever ~]# kill -hup 1925
[root@ever ~]# ps aux |grep sshd
root 32701 0.0 0.2 64116 1144 ? Ss 19:27 0:00 /usr/sbin/sshd
[root@ever ~]# service sshd reload
[root@ever ~]# ps aux |grep httpd
root 8849 0.0 0.0 184148 4216 ? Ss 04:55 0:00 /usr/sbin/httpd
apache 8852 0.0 0.0 184280 2464 ? S 04:55 0:00 /usr/sbin/httpd
...
[root@ever ~]# kill -1 8849 //发送重新加载信号
[root@ever ~]# ps aux |grep httpd
root 8849 0.0 0.0 7224 1028 ? Ss 15:42 0:00 /usr/sbin/httpd
apache 8878 0.0 0.0 184280 2520 ? S 04:56 0:00 /usr/sbin/httpd
...
[root@ever ~]# vim /etc/httpd/conf/httpd.conf
[root@ever ~]# kill -1 8849
[root@ever ~]# ps aux |grep httpd
[root@ever ~]# kill 8849 //发送停止信号
[root@ever ~]# ps aux |grep sshd
root 9953 0.0 0.0 4264 676 pts/1 R+ 15:44 0:00 grep sshd

练习2:

给vim进程发送9,15信号

[root@ever ~]# touch file1 file2
[root@ever ~]# tty
/dev/pts/1
[root@ever ~]# vim file1
[root@ever ~]# tty
/dev/pts/2
[root@ever ~]# vim file2
[root@ever ~]# ps aux |grep vim
root 4362 0.0 0.2 11104 2888 pts/1 S+ 23:02 0:00 vim file1
root 4363 0.1 0.2 11068 2948 pts/2 S+ 23:02 0:00 vim file2
[root@ever ~]# kill 4362
[root@ever ~]# kill -9 4363
[root@ever ~]# killall vim //给所有vim进程发送信号
[root@ever ~]# killall httpd

练习3:

给sshd进程发送18,19信号

[root@ever ~]# ps aux |grep sshd
root 5571 0.0 0.0 64064 1164 ? Ss 09:35 0:00 /usr/sbin/sshd
[root@ever ~]# kill -STOP 5571
[root@ever ~]# ps aux |grep sshd
root 5571 0.0 0.0 64064 1164 ? Ts 09:35 0:00 /usr/sbin/sshd
[root@ever ~]# kill -cont 5571
[root@ever ~]# ps aux |grep sshd
root 5571 0.0 0.0 64064 1164 ? Ss 09:35 0:00 /usr/sbin/sshd

练习4:

踢出一个从远程登录到本机的用户

[root@ever ~]# pkill --help
[root@ever ~]# pkill -u alice
[root@ever ~]# ssh root@172.16.110.1 //别人服务器的IP
[root@ever ~]# sleep 1000 //执行完命令之后,将这个终端放在这里不要动
重新打开另外一个终端,执行w命令
[root@localhost ~]# w
04:42:24 up 13:22, 4 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 172.16.110.245 04:41 5.00s 0.00s 0.00s sleep 1000
root tty1 :0 Fri08 4days 47.16s 47.16s /usr/bin/Xorg :
root pts/1 :0.0 Mon04 0.00s 0.06s 0.00s w
root pts/2 :0.0 Mon04 24:25m 0.00s 0.00s bash
[root@localhost ~]# pkill -t pts/3 //只是杀掉终端上的进程
[root@localhost ~]# pkill -9 -t pts/3 //连终端都一起杀掉了
查看踢出去的效果
[root@ever ~]# sleep 1000
Connection to 172.16.110.1 closed

四、进程的优先级

Linux 进程调度及多任务

每个CPU在一个时间点上只能处理一个进程,而Linux实际能够运行的进程数远远超出实际可用的

CPU核心数量,这是因为有时间片技术。Linux内核进程调度程序将多个进程在CPU核心上快速切换,从而

给用户多个进程在同时运行的印象。

相对优先级 nice

由于每个进程的重要性不同,所以他们被分到的cpu时间片也不同,这取决于进程的优先级,优先级

有很多种,使用什么样的优先级取决于内核采用的不同的调度策略,进程调度程序(cfq)会为不同的进程

使用不同的调度策略。常规系统上运行的大多数进程所使用的调度策略为 SCHED_OTHER (也称为

SCHED_NORMAL),只有这种调度策略运行的进程的相对优先级称为进程的 nice 值,可以有40种不同级

别的nice值。优先级越高,进程更不倾向与让出CPU;nice值越高,优先级越低,进程更容易将cpu使用量

让给其他进程。

查看进程的nice级别

1.使用top命令查看

NI: 实际nice级别

PR: 将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到39

2.使用ps命令查看

[root@ever ~]# ps axo pid,command,cls,nice --sort=-nice

TS 表示该进程使用的调度策略为SCHED_OTHER

启动不同nice级别的进程

启动进程时,通常会继承父进程的 nice级别,默认为0。

[root@ever ~]# nice -n -5 sleep 6000 & //程序运行时设置优先级,并且将进程放到后台运
行,不占用当前终端
[root@ever ~]# ps axo command,pid,nice |grep sleep

更改已经运行进程的nice值

1.使用top命令更改nice级别

r 调整进程的优先级(Nice Level) (-20高) ---0--- (19低)

2.使用shell更改nice级别

[root@ever ~]# sleep 1000 &
[1] 7412
[root@ever ~]# renice -20 7412 //对已运行的进程设置新的优先级
7412: old priority 0, new priority -20

五、作业控制

作业控制是一个命令行功能,可以允许一个shell实例来运行和管理多个进程。

如果没有作业控制,父进程fork()一个子进程后,将进入sleeping状态,直到子进程退

出。

使用作业控制可以选择性暂停、恢复以及异步运行进程,让shell可以在子进程运行期

间返回接受其他命令

进程前台、后台

前台:前台进程会占用当前终端,当前终端为该进程的控制终端,进程会接收键盘产生的

输入信号

后台:后台进程没有控制终端,不需要终端的交互,不接收终端输入的信号

[root@ever ~]# vim /etc/hosts //^Z,将前台的这个进程调到后台且处于停止的状态
[1]+ Stopped vim /etc/hosts
[root@ever ~]# sleep 3000 & //运行程序(时),让其在后台执行
[2] 8735
[root@ever ~]# sleep 2000 //^Z,将前台的程序挂起(暂停)到后台
[root@ever ~]# ps aux |grep sleep
62/214
root 8895 0.0 0.0 100900 556 pts/0 S 12:13 0:00 sleep 3000
root 8896 0.0 0.0 100900 556 pts/0 T 12:13 0:00 sleep 2000
[root@ever ~]# jobs //查看后台作业
[1]+ Stopped vim /etc/hosts
[2] Running sleep 2000 &
[3]- Running sleep 3000 &
[root@ever ~]# fg //调回最近使用的命令,带“+”号的
[root@ever ~]# bg %2 //让作业2在后台运行
[root@ever ~]# fg %1 //将作业1调回到前台
[root@ever ~]# kill %1 //kill 1,杀死PID为1的进程
这些本身都是进程,但是在同一个终端中我们可以把他们看成是作业,且作业只在当前终端生效

企业案例1:

[root@www ~]# while : ; do date ; sleep 2 ; done
[root@www ~]# while : ; do date ; sleep 2 ; done &
[root@www ~]# (while : ; do date ; sleep 2 ; done) &> /dev/null
[root@www ~]# (while : ; do date ; sleep 2 ; done) &> /dev/null &
&放在命令的最后面才表示后台符

企业案例2:

[root@ever ~]# ssh 172.16.50.240
[root@client ~]# yum -y install screen
[root@client ~]# screen -S install_apache //为接下来的操作起个名字
==断网后,重新连接==
[root@client ~]# screen -list
There are screens on:
28958.install_nginx (Detached)
29013.install_apache (Detached)
2 Sockets in /var/run/screen/S-root.
[root@client ~]# screen -r 29013

六、管理网络进程

ports and services

网络服务是通过socket的方式提供服务的,使用ss命令查询常用的选项

[root@www ~]# ss --help
-n 不解析服务的名字
-a 显示所有套接字
-l 显示监听(Listen)的端口
-t 显示tcp的套接字或者是服务
-u 显示udp的套接字或者是服务
-p 显示进程的名字

1、Show TCP sockets(LISTEN)

[root@www ~]# ss -t //tcp的套接字
[root@www ~]# ss -tl //监听的服务,状态是listen的
[root@www ~]# ss -tnl //不显示协议名
[root@www ~]# ss -tnlp //显示服务名
[root@www ~]# ss -ant //查看所有状态的,包括监听和建立连接的,此时无需l 选项。
[root@www ~]# ss -ant |grep :5900
[root@www ~]# ss -ant |grep :80
[root@www ~]# ss -ant |grep :22
[root@www ~]# ss -ant |grep :21

2、Show UDP sockets(所有状态)

udp的协议比较少

[root@www ~]# ss -anu

七、proc文件系统

虚拟的文件系统:内核、进程运行的状态信息,存放的大多是进程相关的目录

[root@ever ~]# ll -dh /proc/
dr-xr-xr-x 208 root root 0 9月 30 08:08 /proc/
[root@ever ~]# du -sh /proc/
0 /proc/

/proc/cpuinfo

[root@ever ~]# less /proc/cpuinfo //查看cpu相关的信息
[root@ever ~]# grep 'processor' /proc/cpuinfo //查看逻辑cpu的个数
processor : 0 //0号处理器
processor : 1
[root@ever ~]# grep 'physical' /proc/cpuinfo //查看物理cpu的个数
physical id : 0
address sizes : 36 bits physical, 48 bits virtual
physical id : 0
address sizes : 36 bits physical, 48 bits virtual
[root@localhost ~]# cat /proc/cpuinfo | grep --color lm //支持64位系统(length mode)
[root@localhost ~]# cat /proc/cpuinfo | grep --color vmx //是否支持intel的硬件虚拟化
[root@localhost ~]# cat /proc/cpuinfo | grep --color svm //是否支持AMD的硬件虚拟化
[root@ever shell]# lscpu //将cpuinfo文件归类显示
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1 //1个插槽即1路的处理器

/proc/meminfo

[root@ever 桌面]# cat /proc/meminfo
[root@ever 桌面]# free -m
total used free shared buffers cached
Mem: 7757 2314 5443 0 90 1586
-/+ buffers/cache: 637 7119
Swap: 4095 0 4095

/proc/cmdline

当前启动系统之后内核生效的参数

[root@ever 桌面]# cat /proc/cmdline //内核参数
ro root=UUID=59fe9aaf-21c7-4451-9d21-584aec546564 rd_NO_LUKS KEYBOARDTYPE=pc
KEYTABLE=us rd_NO_MD LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet

系统负载

[root@ever 桌面]# uptime
09:00:52 up 5:15, 2 users, load average: 0.15, 0.09, 0.08

查看/proc的挂载

[root@ever ~]# mount

将/proc卸载掉

[root@ever ~]# umount /proc/ -l
[root@ever ~]# free -m
Error: /proc must be mounted
To mount /proc at boot you need an /etc/fstab line like:
/proc /proc proc defaults
In the meantime, run "mount /proc /proc -t proc"
[root@ever ~]# uptime
Error: /proc must be mounted
To mount /proc at boot you need an /etc/fstab line like:
/proc /proc proc defaults
In the meantime, run "mount /proc /proc -t proc"
[root@ever ~]# lscpu centos7
baseurl=ftp://172.16.8.100/centos7u2/
enabled=1
lscpu: cannot open /proc/cpuinfo: 没有那个文件或目录
[root@ever ~]# top
top: /proc is not mounted, required for output data

重新挂载proc文件系统

[root@ever ~]# mount -t proc proc /proc/
-t 指定文件系统类型
proc 文件系统,虚拟的文件系统
/proc挂载点

修改内核参数

[root@localhost ~]# echo 1 > /proc/sys/vm/drop_caches 释放内存
1 buffer 2 cache 3 buffer和cache
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward 是否开启路由转发功能

配置文件

[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0

注释:

rp_filter即reverse-pathfiltering,反向过滤技术,系统在接收到一个IP包后,检查该IP是不是合乎要求,不

合要求的IP包会被系统丢弃。

[root@localhost ~]# sysctl -p //刷新内核参数
【Linux系统】进程管理 进程是一个正在运行的程序实例,是操作系统分配资源(如 CPU 时间、内存、文件描述符等)的基本单位。每个进程都有一个唯一的标识符(PID,进程 ID),通过它可以管理和区分不同的进程。CPU ----> CPU是一个中介,这些进程是挂壁等待执行的程序,比如深圳的三和大神,打两天零点工 + 在网吧躺三天,然后再打三天零工,虽然三和大神摆烂了,但为了生存所需他们仍旧需要工作,于是,等到他们需要又会去黑中介那里接单打几天零工 —— 三和大神的工作模式就类似于电脑中的各种进程; 阅读详情

相关推荐

使用 /proc 文件系统来访问 Linux 内核的内容.rar

/proc 文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在 Linux® 内核空间和用户空间之间进行通信。在 /proc 文件系统中,我们可以将对虚拟文件的读写作为与内核中实体进行通信的一种手段,但是与普通文件不同的是,这些虚拟文件的内容都是动态创建的。本文对 /proc 虚拟文件系统进行了介绍,并展示了它的用法。 最初开发 /proc 文件系统是为了提供有关系统中进程的信息。但是由于这个文件系统非常有用,因此内核中的很多元素也开始使用它来报告信息,或启用动态运行时配置。 /proc 文件系统包含了一些目录(用作组织信息的方式)和虚拟文件。虚拟文件可以向用户呈现内核中的一些信息,也可以用作一种从用户空间向内核发送信息的手段。实际上我们并不会同时需要实现这两点,但是本文将向您展示如何配置这个文件系统进行输入和输出。 ......

linux报错Error: /proc must be mounted

linux报错Error: /proc must be mounted Error: /proc must be mounted To mount /proc at boot you need an /etc/fstab line like: proc /proc proc defaults In the meantime, run "mount proc /proc -t proc"

重生之我不会写代码 2953

5G协议栈逆向工程:基于开源模拟器的核心网信令分析实战

本文详细介绍了基于开源模拟器Free5GC和UERANSIM的5G协议栈逆向工程实战,涵盖核心网信令分析、环境搭建、认证协议解析及安全漏洞验证。通过NGAP/NAS信令交互解密和异常流量注入测试,帮助研究人员深入理解5G网络安全机制,并提供实用的安全加固建议。

weixin_29250573的博客 678

Termux 解决使用ps -ef出现关于挂载/proc分区的错误

echo 'Linux version 版本 (proot@termux) (gcc (GCC) 编译信息)' > ./version。伪造/proc分区下的五个文件,分别为locdavg,stat,uptime,version,vmstat这五个文件。例:/data/data/com.termux/stat:/proc/stat。注意:使用前先退回到Termux自带的原生系统(使用"exit"命令退出)结构-b 文件路径:/proc/文件名。包括安装宝塔面板时也出现了该报错。version 文件。

m0_66678248的博客 4125

保姆级教程:用BMS的HVIL检测电路,手把手教你排查高压互锁故障(附PWM/直流源方案对比)

本文详细解析了BMS中的HVIL检测电路,通过对比直流源与PWM两种方案,提供了一套系统化的高压互锁故障诊断流程。从电路原理到实战技巧,帮助维修人员精准定位故障根源,提升电动汽车高压系统的安全性和可靠性。

weixin_29300241的博客 392

解读区块链在制药和物流管理中具备的优势

供应链透明度是建立药品弹性供应链的关键,如何更好地促进端到端的透明度,促进合作伙伴和消费者之间的信任度是当前医药和物流行业高管们关注的话题,区块链技术可以很好的帮助他们。 链集市 · 让区块链落地更简单 《区块链行业观察》专栏·第 31 篇 作者丨Shams Rahman 图片丨来源于网络 作者介绍:本文作者为Shams Rahman教授,是RMIT大学商业IT和物流学院的供应链管理教授、研究与创新部门副主任。本文中文版本由链集市团队编译整理,英文版权归原作者所有,中文转载请联系编译。 新冠肺炎疫情的爆发

CECBC的博客 626

折腾Termux

环境变量 # 使用env | grep $PREFIX 可以看到 PREFIX = /data/data/com.termux/files/usr # 修改Termux配置要进入$PREFIX目录下,/目录下为安卓系统配置 切换清华源 清华大学开源镜像站 sed -i 's@^\(deb.*sta ble main\)$@#\1\ndeb https://mirrors.tuna.tsinghu...

人生如逆旅,我亦是行人 1064

Arduino MLX90393磁力计驱动库:高精度三轴霍尔传感器开发指南

三轴霍尔效应磁力计是嵌入式系统中实现无接触角度检测、电子罗盘与电流传感的核心器件。其工作原理基于霍尔电压随外磁场矢量变化的物理特性,通过I²C接口输出高分辨率(16/20-bit)XYZ轴原始数据,并集成温度补偿与数字滤波功能。技术价值体现在确定性响应、低功耗(典型0.5 μA待机)及强抗干扰能力,适用于电池供电设备与实时操作系统环境。典型应用场景包括电机位置反馈、永磁体旋转角度解算、工业编码器和地磁导航。本库专为Arduino生态优化,深度封装MLX90393寄存器协议与自校准流程,同时兼容STM32、E

weixin_29363791的博客 642

Linux进程管理

用于查看进程树之间的关系,谁是父进程,谁是子进程,可以清楚的看出来是谁创建了谁语法:pstree [选项]

LPH3119的博客 974

Unity半透明物体景深失效?教你用双材质球方案完美解决(附完整Shader代码)

本文深入剖析了Unity中半透明物体导致景深效果失效的根本原因,即半透明物体默认不写入摄像机深度图。针对此问题,文章详细介绍了稳定高效的“双材质球”解决方案,通过为物体附加一个仅写入深度信息的不可见材质,完美修复景深效果,并提供了完整的Shader代码与实现脚本。

weixin_29010003的博客 384

学Simulink——线控转向(Steer‑By‑Wire, SBW)路感模拟与回正控制仿真

本文详细介绍了线控转向(SBW)系统的Simulink建模方法,重点讲解了路感模拟与回正控制的实现原理。文章首先分析了SBW系统结构,建立了方向盘和前轮的动力学方程;随后分步骤演示了Simulink建模过程,包括方向盘二阶动力学、前轮位置闭环控制、路感反馈计算等核心模块;最后通过仿真验证了转向跟随性能、路感反馈效果和自动回正功能。文中还提供了工程实现的关键参数和注意事项,为开发真实的SBW系统提供了实用指导。该模型可扩展应用于主动转向、故障注入等高级功能开发。

xiaoheshang_123的博客 42

Linux进程管理指令

<br /><br />作者:北南南北<br />来自:LinuxSir.Org<br />摘要:本文讲述的时进程管理的基本概念和进程管理工具介绍;文中的重点对进程管理工具的分类介绍及应用举例,包括 ps、pgrep、top 、kill、pkill、killall、nice和renice 等工具。<br /><br /><br />1、程序和进程;<br /><br />程序是为了完成某种任务而设计的软件,比如OpenOffice是程序。什么是进程呢?进程就是运行中的程序。<br />一个运行着的程序,可能

lengyuhong的专栏 3782

2026年数学建模国赛论文排版规范:Word与LaTeX终极对比及模板

提前演练:不要等到比赛开始才第一次使用排版工具。至少在赛前一个月完成1-2篇模拟论文的全流程排版练习。建立检查清单:基于国赛规范制定排版检查清单,在提交前逐项核对——公式编号连续?图表引用准确?参考文献完整?页数不超限?善用模板但不止于模板:模板提供的是起点而非终点。根据自身需求调整宏包配置和样式参数,理解每一行配置的含义。关注评审体验:从评委的视角审视论文——重点内容是否突出?逻辑结构是否清晰?视觉层次是否合理?备份与容错:无论使用何种工具,建立多级备份机制。本地、云端、U盘各存一份,且定期保存历史版本。

YOLO 213

linux-进程管理

进程是正在执行的一个程序或命令,每个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。程序是人使用计算机语言编写的可以实现特定目标或解决特定问题的代码集合。这么讲很难理解,那我们换一种说法。程序是人使用计算机语言编写的,可以实现一定功能,并且可以执行的代码集合。而进程是正在执行中的程序。当程序被执行时,执行人的权限和属性,以及程序的代码都会被加载入内存,操作系统给这个进程分配一个 ID,称为 PID(进程 ID)。也就是说,在操作系统中,所有可以执行的程序与命令都会产生进程。

qq_64485253的博客 1309

人工智能算法面试大总结-总目录

涉及秋招、春招、社招

啥都生的博客 2万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Linux——内核——进程管理

本文系统介绍了Linux进程管理的核心内容,包括进程的基本概念(定义、状态)和关键管理命令(ps、top、kill等)。详细阐述了进程创建、调度、监控及终止等操作流程,以及进程间通信机制和常用管理工具(systemctl、screen等)。内容涵盖进程全生命周期管理,为Linux系统管理员提供全面的操作指南。

m0_65153260的博客 569

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

linux进程管理

Linux进程管理 Linux实现进程管理 在linux中每个执行的程序都称为一个进程。每个进程都分配一个ID号 每一个进程都会对应一个父进程,这个父进程可以复制多个子进程 每个进程都可以以两种方式存在: 前台和后台 一般系统的服务都是以后台进程的方式存在 Ps命令 相关字段: PID 进程识别号 TTY 终端机号 TIME 此进程所消耗的CPU时间 CMD 正在执行的命令或进程名 ps -a 显示当前终端的所有进程信息 Ps -u 以用户的格式显示进程信息 Ps -x 显示后台运行的参数 相关例子 Ps

qq_51088445的博客 6673

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

linux进程管理,Linux进程管理优秀教程

Linux进程管理优秀教程Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。以下是小编为大家搜索整理的Linux进程管理优秀教程,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!在Linux系统上所有运行的'东西都可以称之为一个进程。每个用户任务、每个系统...

weixin_39711914的博客 186

Linux 进程管理

作者:北南南北来自:LinuxSir.Org摘要:本文讲述的时进程管理的基本概念和进程管理工具介绍;文中的重点对进程管理工具的分类介绍及应用举例,包括 ps、pgrep、top 、kill、pkill、killall、nice和renice 等工具。 目录 1、程序和进程; 1.1 进程分类;1.2 进程的属性;1.3 父进程和子进程; 2、进程管理; 2.1 ps 监视进程工具...

weixin_33843409的博客 239

深入解析 Linux 进程管理

深入学习进程相关知识,包括概念、状态、创建、特殊进程情况、调度、优先级、特性以及环境变量与相关指令、函数等。

Edison's 小宇宙 7万+
上一篇: Linux之文件共享
下一篇: HTTP常见状态码
Ever_Linux
博客等级 码龄8年 0粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值