【嵌入式之进程】进程的概念及查看和终止命令

进程的概念

进程是一个实体,每个进程都有自己的地址空间,一般情况下,包括文本区域(存储处理器执行的代码)、数据区域(存储变量在程序执行期间使用的动态分配的内存)和堆栈(存储着活动过程中的指令和本地变量)。

进程是一个“执行中的程序”,程序是一个没有生命的实体,处理器赋予程序生命时,它才能成为有生命的实体,我们称其为进程。

查看进程的命令

  • 查看进程的命令:ps

ps[options]

常见用法:ps aux

显示占用的CPU使用率、占用的内存使用率、占用的虚拟内存大小、占用的内存大小、进程的状态、进程开始时间以及执行时间

linux@linux:~$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2   4444  2416 ?        Ss   09:15   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    09:15   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    09:15   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   09:15   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    09:15   0:00 [rcu_sched]
root         8  0.0  0.0      0     0 ?        S    09:15   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S    09:15   0:00 [migration/0]
root        10  0.0  0.0      0     0 ?        S    09:15   0:01 [watchdog/0]
root        11  0.0  0.0      0     0 ?        S<   09:15   0:00 [khelper]
root        12  0.0  0.0      0     0 ?        S    09:15   0:00 [kdevtmpfs]
root        13  0.0  0.0      0     0 ?        S<   09:15   0:00 [netns]

常见用法:ps -elf

不仅显示自己的进程编号,还会显示父进程的编号。

linux@linux:~$ ps -elf
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root         1     0  0  80   0 -  1111 -      09:15 ?        00:00:00 /sbin
1 S root         2     0  0  80   0 -     0 -      09:15 ?        00:00:00 [kthr
1 S root         3     2  0  80   0 -     0 -      09:15 ?        00:00:00 [ksof
1 S root         5     2  0  60 -20 -     0 -      09:15 ?        00:00:00 [kwor
1 S root         7     2  0  80   0 -     0 -      09:15 ?        00:00:00 [rcu_
1 S root         8     2  0  80   0 -     0 -      09:15 ?        00:00:00 [rcu_
1 S root         9     2  0 -40   - -     0 -      09:15 ?        00:00:00 [migr
5 S root        10     2  0 -40   - -     0 -      09:15 ?        00:00:01 [watc
1 S root        11     2  0  60 -20 -     0 -      09:15 ?        00:00:00 [khel
  • 查看进程的命令:top

通常会全屏显示,而且会随着进程状态的变化不断更新整个系统的信息也会显示。top命令显示进程是实时的,如果想退出,输入q键。

linux@linux:~$ top

top - 11:15:07 up  2:00,  3 users,  load average: 0.01, 0.05, 0.05
Tasks: 182 total,   1 running, 181 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.7 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   1025328 total,   919544 used,   105784 free,    19148 buffers
KiB Swap:  1046524 total,      768 used,  1045756 free.   411100 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                                             
 1054 root      20   0  192164  37828  15252 S  0.7  3.7   0:10.37 Xorg                                                                                                                
 2256 linux     20   0  223592  65196  35020 S  0.3  6.4   0:20.53 compiz                                                                                                              
 2569 linux     20   0   70572  17480  11908 S  0.3  1.7   0:03.59 gnome-terminal                                                                                                      
    1 root      20   0    4444   2416   1416 S  0.0  0.2   0:00.86 init                                                                                                                
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                                                                                            
    3 root      20   0       0      0      0 S  0.0  0.0   0:00.50 ksoftirqd/0                                                                                                         
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                                                                                                        
    7 root      20   0       0      0      0 S  0.0  0.0   0:00.45 rcu_sched    
  • 查看进程的命令:pstree 

将所有进程以树状图显示,树状图将会以pid(如果有指定)或是以init这个基本进程为根,如果有指定使用者id,则树状图会只显示该使用者所拥有的进程。

linux@linux:~$ ptree
The program 'ptree' is currently not installed. You can install it by typing:
sudo apt-get install adacontrol
linux@linux:~$ pstree
init─┬─ModemManager───2*[{ModemManager}]
     ├─NetworkManager─┬─2*[dhclient]
     │                ├─dnsmasq
     │                └─3*[{NetworkManager}]
     ├─VGAuthService
     ├─accounts-daemon───2*[{accounts-daemon}]
     ├─acpid
     ├─avahi-daemon───avahi-daemon
     ├─bluetoothd
     ├─colord───2*[{colord}]
     ├─cron
     ├─cups-browsed
     ├─cupsd───dbus
     ├─dbus-daemon
     ├─6*[getty]
     ├─gnome-keyring-d───5*[{gnome-keyring-d}]
     ├─kerneloops
     ├─lightdm─┬─Xorg
     │         ├─lightdm─┬─init─┬─at-spi-bus-laun─┬─dbus-daemon
     │         │         │      │                 └─3*[{at-spi-bus-laun}]
     │         │         │      ├─at-spi2-registr───{at-spi2-registr}
     │         │         │      ├─bamfdaemon───3*[{bamfdaemon}]
     │         │         │      ├─2*[dbus-daemon]

发送信号命令

  • 终止进程的命令:kill

kill [-signal] PID     signal是信号,PID是进程号

kill发送信号时,如果不指定进程,默认发送的是15号信号。

linux@linux:~$ kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX	

终止进程3405

linux@linux:~$ kill -9 3405
***********
***********
***********
***********
***********
***********
***********
***********
***********
***********
Killed

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
嵌入式Linux进程管理机制涉及到进程的创建、销毁、切换和调度等操作,它的工作原理可以简单概括为以下几个步骤: 1. 进程创建:进程创建的过程通常是由一个父进程调用fork()系统调用,创建一个新的子进程,并且在子进程中通过exec()系统调用来执行新的程序。在这个过程中,操作系统会为新的进程分配一个唯一的进程ID(PID)和一些其他的资源。 2. 进程销毁:进程的销毁通常是通过调用exit()系统调用来实现的,该系统调用会释放进程占用的资源,并且向父进程发送一个信号来通知其子进程已经结束。此外,操作系统也可以通过向进程发送一个信号来强制终止进程。 3. 进程切换:当多个进程同时运行时,操作系统会根据一定的调度策略来选择下一个要运行的进程。这个过程通常是通过上下文切换(Context Switch)来实现的,即保存当前进程的状态并且加载下一个要运行的进程的状态。 4. 进程调度:进程调度是指操作系统根据一定的策略来选择下一个要运行的进程,以达到最大化系统资源利用率和提高系统响应速度的目的。Linux中的进程调度算法是基于时间片轮转的,每个进程被分配一个固定的时间片来运行,并且在时间片用完之后被放回到就绪队列中等待下一次调度。 总的来说,嵌入式Linux进程管理机制是通过系统调用、信号处理、上下文切换和进程调度等技术来实现的,它可以帮助操作系统有效地管理系统资源和进程运行状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式进阶行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值