进程

声明:这一章问题是“进程调度有哪些⽅式?”

答案:

  1. 先来先服务
  2. 短作业优先
  3. 优先级调度
  4. 高响应比优先调度
  5. 时间片轮转调度
  6. 多级反馈队列调度

下面是进程的使用整理,上面纯粹八股

进程

top
[guixiang@localhost ~]$ top
top - 11:09:36(命令启动的时间) up 48 min(运行了48分钟),  2 users(当前有2个用户登录系统),  load average: 0.00, 0.01, 0.05(系统的负载平均值,分别表示过去1分钟、5分钟、15分钟的平均负载。这些值很低,表示系统当前非常空闲。)
Tasks: 120 total(系统中共有120个进程),   1 running(当前有1个进程正在运行), 119 sleeping(有119个进程处于睡眠状态,等待某些事件发生),   0 stopped(没有进程被停止。),   0 zombie(没有僵尸进程。僵尸进程是那些已经结束但父进程尚未通过 wait() 或类似调用回收其资源的进程)
%Cpu(s):  0.0 us(用户空间占用CPU的百分比),  0.2 sy(内核空间占用CPU的百分比),  0.0 ni(改变过优先级的进程占用CPU的百分比), 99.8 id(空闲CPU百分比,非常高,表示CPU大部分时间都在空闲),  0.0 wa(等待输入输出的CPU时间百分比,这里为0,表示没有进程在等待I/O),  0.0 hi(硬件中断占用CPU的百分比),  0.0 si(软件中断占用CPU的百分比),  0.0 st(被虚拟机偷走的时间百分比(在虚拟化环境中才有意义))
KiB Mem : 13427724 total(物理内存总量,单位为KiB(千字节)), 12962956 free,   226216 used,   238552 buff/cache(用作缓冲和缓存的内存量)
KiB Swap:  2097148 total(交换空间总量),  2097148 free,        0 used. 12896220 avail Mem(估计的可用内存量,考虑了缓存和缓冲区,是系统实际可用的内存量)

查看进程:

NO.1 以树状图的形式展示所有进程的启动关系
[root@localhost ~]# pstree
systemd─┬─NetworkManager─┬─dhclient
        │                └─2*[{NetworkManager}]
        ├─agetty
        ├─auditd───{auditd}
        ├─chronyd
        ├─crond
        ├─dbus-daemon───{dbus-daemon}
        ├─firewalld───{firewalld}
        ├─irqbalance
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───6*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd─┬─sshd───bash───pstree
        │      └─sshd───sftp-server
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        └─tuned───4*[{tuned}]
NO.2 显示当前系统中的进程状态(经常和grep一起使用,才有灵魂)
[root@localhost ~]# ps -auxfw			#w加宽f显示关系
USER        PID %CPU  %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          2  0.0  0.0      0     0 ?        S    16:41   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    16:41   0:00  \_ [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   16:41   0:00  \_ [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    16:41   0:00  \_ [migration/0]
root          8  0.0  0.0      0     0 ?        S    16:41   0:00  \_ [rcu_bh]
。。。。。。(中间部分省略)
。。。。。。
postfix    9829  0.0  0.0  89716  4088 ?        S    16:42   0:00  \_ qmgr -l -t unix -u

PID进程ID
%MEM占用的内存使用率
VSZ占用的虚拟内存大小
RSS占用的常驻内存大小
TTY执行的终端编号,直接w命令可以看到
STAT该进程的状态*
TIMECPU使用时间

必备:*STAT表示的进程状态

D: 无法中断的休眠状态 ,将一直等待事件的发生或等待某种系统资源
R: 正在执行中
S: 可中断状态
T: 暂停执行
Z: 不存在但暂时无法消除,也叫僵尸进程。每个进程在运行结束后都会处于僵死状态,等待父进程调用进而释放系统资源,处于该状态的进程已经运行结束,但是它的父进程还没有释放其系统资源
W: 没有足够的内存可分配
<: 高优先序的进程
N: 低优先序的进程
+:前台进程
l:多线程进程
s:主进程(先导进程),有子进程的进程
NO.3 动态可交互式显示进程信息
[root@localhost ~]# top -c
top - 17:17:53 up 35 min,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 106 total,   1 running, 105 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 13427724 total, 13036060 free,   211576 used,   180088 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used. 12941148 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
     1 root      20   0  128020   6584   4164 S   0.0  0.0   0:03.75 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.02 [kthreadd]
     3 root      20   0       0      0      0 S   0.0  0.0   0:00.13 [ksoftirqd/0]
    。。。。。。
    。。。。。。(中间部分省略)
    97 root      20   0       0      0      0 S   0.0  0.0   0:00.01 [kauditd]
  2343 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 [nfit]

常用选项参数:

-d: 改变显示的更新速度,或是在交互式指令列( interactive command)按 s
-c: 切换显示模式,共有两种模式,一是只显示程序的名称,另一种是显示完整的路径与名称
-s: 安全模式,将交互式指令取消, 避免潜在的危机
-i: 不显示任何闲置 (idle) 或无用 (zombie) 的行程
-n: 更新的次数,完成后将会退出 top
-b: 显示模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到文件内

好用的命令:

ps axo pid,command,nice,cls --sort=nice (o表示自定义排序)
top -b -n 3 >> 1.txt
快捷键功能
空格立即刷新
P根据CPU使用多少排序
T根据时间、累计排序
N以PID的大小排序
m切换显示内存信息
t切换显示进程和CPU状态信息

此外:

摁住 冒号 键,摁方向键也可以交互

调用进程命令:

systemctl [选项...] {命令} ...
systemctl start name.service
		  stop 
		  restart 
		  reload 
		  status 
		  enable
		  disable 
kill name.service
pkill name.service
nice       (-20高~19低)
[root@localhost ~]# nice -n 1 ping www.baidu.com
[root@localhost ~]# nice ping www.baidu.com
PR(新) = PR(旧) + nice

前后台

jobs #后台任务查看
命令 空格 &      #任务放置后台
fg %工作号 #后台任务放置前台
bg %工作号 #后台任务恢复后台
命令放入 /etc/rc.local  #开机自启文件命令
nohup 命令 #命令始终运行至前台
nohup 命令& #命令始终运行至后台 在~/nohup.out文件可查看运行

注意:nohup任务不受到ctrl+z的影响,必须要nohupfg后才行

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇