女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

程序和進(jìn)程的區(qū)別

馬哥Linux運(yùn)維 ? 來源:博客園coder雪山 ? 2024-11-25 16:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.介紹

1.什么是進(jìn)程

比如: 開發(fā)寫的代碼我們稱為程序,那么將開發(fā)的代碼運(yùn)行起來。我們稱為進(jìn)程。

總結(jié)一句話就是: 當(dāng)我們運(yùn)行一個(gè)程序,那么我們將運(yùn)行的程序叫進(jìn)程。

PS1: 當(dāng)程序運(yùn)行為進(jìn)程后,系統(tǒng)會(huì)為該進(jìn)程分配內(nèi)存,以及進(jìn)程運(yùn)行的身份和權(quán)限。

PS2: 在進(jìn)程運(yùn)行的過程中,系統(tǒng)會(huì)有各種指標(biāo)來表示當(dāng)前運(yùn)行的狀態(tài)。

2.程序和進(jìn)程的區(qū)別

1.程序是數(shù)據(jù)和指令的集合,是一個(gè)靜態(tài)的概念。比如/bin/ls、/bin/cp等二進(jìn)制文件。同時(shí)程序可以長期存在系統(tǒng)中。

2.進(jìn)程是程序運(yùn)行的過程,是一個(gè)動(dòng)態(tài)的概念。進(jìn)程是存在生命周期的概念的,也就是說進(jìn)程會(huì)隨著程序的終止而銷毀,不會(huì)永久存在系統(tǒng)中。

3.進(jìn)程的生命周期

生命周期就是指一個(gè)對(duì)象的生老病死。用處很廣。

5ea13168-a98f-11ef-93f3-92fbcf53809c.jpg

當(dāng)父進(jìn)程接收到任務(wù)調(diào)度時(shí),會(huì)通過fock派生子進(jìn)程來處理,那么子進(jìn)程會(huì)繼承父進(jìn)程屬性。

1.子進(jìn)程在處理任務(wù)代碼時(shí),父進(jìn)程會(huì)進(jìn)入等待狀態(tài)中…

2.子進(jìn)程在處理任務(wù)代碼后,會(huì)執(zhí)行退出,然后喚醒父進(jìn)程來回收子進(jìn)程的資源。

3.如果子進(jìn)程在處理任務(wù)過程中,父進(jìn)程退出了,子進(jìn)程沒有退出,那么這些子進(jìn)程就沒有父進(jìn)程來管理了,就變成僵尸進(jìn)程。

PS: 每個(gè)進(jìn)程都父進(jìn)程的PPID,子進(jìn)程則叫PID。

例: 假設(shè)現(xiàn)在我是蔣先生(system進(jìn)程)….故事持續(xù)中…..

2.監(jiān)控進(jìn)程狀態(tài)

程序在運(yùn)行后,我們需要了解進(jìn)程的運(yùn)行狀態(tài)。查看進(jìn)程的狀態(tài)分為: 靜態(tài)和動(dòng)態(tài)兩種方式

1.使用ps命令查看當(dāng)前的進(jìn)程狀態(tài)(靜態(tài))

1)示例、ps -aux常用組合,查看進(jìn)程 用戶、PID、占用cpu百分比、占用內(nèi)存百分比、狀態(tài)、執(zhí)行的命令等

5ea7d1da-a98f-11ef-93f3-92fbcf53809c.jpg

狀態(tài) 描述
USER 啟動(dòng)進(jìn)程的用戶
PID 進(jìn)程運(yùn)行的ID號(hào)
%CPU 進(jìn)程占用CPU百分比
%MEM 進(jìn)程占用內(nèi)存百分比
VSZ 進(jìn)程占用虛擬內(nèi)存大小 (單位KB)
RSS 進(jìn)程占用物理內(nèi)存實(shí)際大小 (單位KB)
TTY 進(jìn)程是由哪個(gè)終端運(yùn)行啟動(dòng)的tty1、pts/0等 ?表示內(nèi)核程序與終端無關(guān)(遠(yuǎn)程連接會(huì)通過tty打開一個(gè)bash:tty)
STAT 進(jìn)程運(yùn)行過程中的狀態(tài) man ps (/STATE)
START 進(jìn)程的啟動(dòng)時(shí)間
TIME 進(jìn)程占用 CPU 的總時(shí)間(為0表示還沒超過秒)
COMMAND 程序的運(yùn)行指令,[ 方括號(hào) ] 屬于內(nèi)核態(tài)的進(jìn)程。 沒有 [ ] 的是用戶態(tài)進(jìn)程。systemctl status 指令

2.STAT狀態(tài)的S、Ss、S+、R、R、S+等等,都是什么意思?

5eb23fbc-a98f-11ef-93f3-92fbcf53809c.jpg

STAT基本狀態(tài) 描述 STAT狀態(tài)+符號(hào) 描述
R 進(jìn)程運(yùn)行 s 進(jìn)程是控制進(jìn)程, Ss進(jìn)程的領(lǐng)導(dǎo)者,父進(jìn)程
S 可中斷睡眠 < 進(jìn)程運(yùn)行在高優(yōu)先級(jí)上,S<優(yōu)先級(jí)較高的進(jìn)程
T 進(jìn)程被暫停 N 進(jìn)程運(yùn)行在低優(yōu)先級(jí)上,SN優(yōu)先級(jí)較低的進(jìn)程
D 不可中斷睡眠 + 當(dāng)前進(jìn)程運(yùn)行在前臺(tái),R+該表示進(jìn)程在前臺(tái)運(yùn)行(正在io操作,一旦停止,數(shù)據(jù)丟失)
Z 僵尸進(jìn)程 l 進(jìn)程是多線程的,Sl表示進(jìn)程是以線程方式運(yùn)行

案例一、PS命令查看進(jìn)程狀態(tài)切換


#1.在終端1上運(yùn)行vim
[root@lqz ~]# vim oldboy


#2.在終端2上運(yùn)行ps命令查看狀態(tài)
[root@lqz ~]# ps aux|grep oldboy    #S表示睡眠模式,+表示前臺(tái)運(yùn)行
root      58118  0.4  0.2 151788  5320 pts/1    S+   22:11   0:00 oldboy
root      58120  0.0  0.0 112720   996 pts/0    R+   22:12   0:00 grep --color=auto oldboy
#在終端1上掛起vim命令,按下:ctrl+z 


#3.回到終端2再次運(yùn)行ps命令查看狀態(tài)
[root@lqz ~]# ps aux|grep oldboy    #T表示停止?fàn)顟B(tài)
root      58118  0.1  0.2 151788  5320 pts/1    T    22:11   0:00 vim oldboy
root      58125  0.0  0.0 112720   996 pts/0    R+   22:12   0:00 grep --color=auto oldboy

案例二、PS命令查看不可中斷狀態(tài)進(jìn)程


#1.使用tar打包文件時(shí),可以通過終端不斷查看狀態(tài),由S+,R+變?yōu)镈+
[root@lqz ~]# tar -czf etc.tar.gz /etc/ /usr/ /var/


[root@lqz ~]# ps aux|grep tar|grep -v grep
root      58467  5.5  0.2 127924  5456 pts/1    R+   22:22   0:04 tar -czf etc.tar.gz /etc/ 
[root@lqz ~]# ps aux|grep tar|grep -v grep
root      58467  5.5  0.2 127088  4708 pts/1    S+   22:22   0:03 tar -czf etc.tar.gz /etc/ 
[root@lqz ~]# ps aux|grep tar|grep -v grep
root      58467  5.6  0.2 127232  4708 pts/1    D+   22:22   0:03 tar -czf etc.tar.gz /etc/

查看進(jìn)程 ps

 ps [options]

支持的命令格式

unix格式:-h -e

BSD格式:a,x,u

GNU長格式:--help

選項(xiàng)

[root@s22 ~]#ps
   PID TTY          TIME CMD
 28019 pts/4    0000 ps
 83674 pts/4    0000 bash
pid   終端       當(dāng)前命令占用cpu的時(shí)間  命令
a 所有的終端
x 包括不連接終端的終端
u 顯示進(jìn)程詳細(xì)信息
f 顯示進(jìn)程樹
k 指定排序方式 ,默認(rèn)是遞增,如果想遞減,則需要在排序的字段上加上-
o 指定顯示的屬性,不能跟u同時(shí)使用
L 獲取支持的選項(xiàng),
-L 顯示線程
-e 相當(dāng)于 ax
-f 顯示詳細(xì)信息,相當(dāng)于u
-F 顯示更詳細(xì)信息
-H 顯示樹狀結(jié)構(gòu)
-U username 獲取指定的用戶信息
常用選項(xiàng): aux -ef -eFH

ps輸出屬性

VSZ 虛擬內(nèi)存(程序認(rèn)為可以獲取到的)

RSS 實(shí)際內(nèi)存

psr cpu編號(hào)

STAT 狀態(tài)

%cpu cpu的占用率

%mem 內(nèi)存的占用率

根據(jù)名稱來查詢進(jìn)程

pidof name
[root@s22 ~]#pidof python
1169 825

2.使用top命令查看當(dāng)前的進(jìn)程狀態(tài)(動(dòng)態(tài))

5ec1a150-a98f-11ef-93f3-92fbcf53809c.jpg

任務(wù) 含義
Tasks: 129 total 當(dāng)然進(jìn)程的總數(shù)
1 running 正在運(yùn)行的進(jìn)程數(shù)
128 sleeping 睡眠的進(jìn)程數(shù)
0 stopped 停止的進(jìn)程數(shù)
0 zombie 僵尸進(jìn)程數(shù)
%Cpu(s) 平均cpu使用率,按1 查看每個(gè)cup具體狀態(tài)
0.7 us 用戶進(jìn)程占用cpu百分比
0.7 sys 內(nèi)核進(jìn)程占用百分比
0.0 ni 優(yōu)先級(jí)進(jìn)程占用cpu的百分比
98.7 id 空閑cup
0.0 wa CPU等待IO完成的時(shí)間,大量的io等待,會(huì)變高
0.0 hi 硬中斷,占的CPU百分比
0.0 si 軟中斷,占的CPU百分比
0.0 st 虛擬機(jī)占用物理CPU的時(shí)間


# w     load average:平均負(fù)載 一分鐘,5分鐘,15分鐘
 04:05:43 up 11:35,  3 users,  load average: 0.00, 0.01, 0.05
# uptime
 04:06:21 up 11:35,  3 users,  load average: 0.00, 0.01, 0.05

PS: 如何理解中斷這個(gè)東西

top 常見指令

字母 含義
h 查看幫出
1 數(shù)字1,顯示所有CPU核心的負(fù)載
z 以高亮顯示數(shù)據(jù)
b 高亮顯示處于R(進(jìn)行中)狀態(tài)的進(jìn)程
M 按內(nèi)存使用百分比排序輸出
P 按CPU使用百分比排序輸出
q 退出top

# 第三方top
htop,top高級(jí):yum install htop -y
iftop網(wǎng)卡流量:yum install iftop -y
glances,直觀的顯示:yum install glances -y
  -rz上傳文件,可以動(dòng)態(tài)看到,網(wǎng)卡情況

下載新repo 到/etc/yum.repos.d/

wget-O/etc/yum.repos.d/epel.repohttps://mirrors.aliyun.com/repo/epel-7.repo
Epel 鏡像,第三方軟件庫
# 第三方top
htop,top高級(jí):yum install htop -y
iftop網(wǎng)卡流量:yum install iftop -y
glances,直觀的顯示:yum install glances -y
  -rz上傳文件,可以動(dòng)態(tài)看到,網(wǎng)卡情況

uptime

[root@s22 ~]#uptime 
 09:17:40 up 1 day, 22:19,  5 users,  load average: 2.14, 1.59, 0.84
 當(dāng)前時(shí)間    當(dāng)前服務(wù)器運(yùn)行時(shí)長  當(dāng)前的在線用戶數(shù)    cpu的負(fù)載 1分鐘 5分鐘 15分鐘
 cpu平均負(fù)載:在特定時(shí)間之內(nèi)cpu運(yùn)行的平均進(jìn)程數(shù),不超過cpu核心數(shù)的2倍認(rèn)為為良好

top

首部信息

uptime信息 l 顯示與隱藏

tasks :進(jìn)程總數(shù),運(yùn)行,睡眠數(shù),停止數(shù),僵尸進(jìn)程 t

cpu信息:%Cpu(s): 0.3 us, 4.6 sy, 0.0 ni, 95.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

用戶空間 系統(tǒng)空間 nice值 空閑 等待 硬中斷 軟中斷 虛擬機(jī)偷走時(shí)間

內(nèi)存信息 m

cpu分別顯示 1(數(shù)字)

排序:

模式是cpu的占用率 P

M:內(nèi)存占用率

T: cpu的占用時(shí)間

退出:q

修改刷新頻率:s,默認(rèn)是3秒

殺死進(jìn)程:k,默認(rèn)是第一個(gè)

W 保存文件

選項(xiàng):

-d 刷新時(shí)間

-b 顯示所有的信息

-n # 指定刷新#次后退出

htop

epel源

3. 系統(tǒng)工具(epel三方庫下載),性能分析

free

顯示內(nèi)存

-b 字節(jié)
-k kb
-m mb
-g gb
-h 人類易讀方式
-c # 刷新次數(shù)

vmstat


vmstat [options] [delay [count]]
[root@s22 ~]#vmstat 1 3 每秒刷新一次,刷新3次
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0  37028 162708      0 808588    0    0     8     6   34   34  0  2 97  0  0
 0  0  37028 162560      0 808588    0    0     0     0 4535 6893  1  5 95  0  0
 0  0  37028 162544      0 808588    0    0     0     0 4463 6772  0  5 95  0  0
procs:
r:正在運(yùn)行的進(jìn)程個(gè)數(shù)
b:阻塞隊(duì)列的長度
memory:
swapd: 虛擬內(nèi)容大小
free: 空閑物理內(nèi)存的大小
buff:用于buff的大小
cache:用戶cache的大小
swap:
si:從磁盤交換到內(nèi)存的數(shù)據(jù)速率(kb/s)
so: 從內(nèi)存交換到磁盤的數(shù)據(jù)速率(kb/s)
io:
bi: 從磁盤讀取到系統(tǒng)的速率(kb/s)
bo: 從系統(tǒng)寫入到磁盤的速率(kb/s)
system:
in:中斷頻率
cs:進(jìn)程之前切換的頻率
cpu:
us
sy
id
wa
st

iostat

查看磁盤讀寫速度

iostat 1 10

dstat 查看所有

-c cpu
-d 硬盤
-m 內(nèi)存
-n 網(wǎng)絡(luò)
-p 進(jìn)程
-r io請(qǐng)求
-s swap
--top-cpu 顯示占用cpu最多的進(jìn)程
--top-io 顯示占用io最多的進(jìn)程
--top-mem 顯示占用內(nèi)存最多的進(jìn)程
--tcp 顯示tcp的信息
--udp 顯示udp的信息

iftop 顯示網(wǎng)卡的流量

4.管理進(jìn)程狀態(tài),進(jìn)程的管理工具

當(dāng)程序運(yùn)行為進(jìn)程后,如果希望停止進(jìn)程,怎么辦呢? 那么此時(shí)我們可以使用linux的kill命令對(duì)進(jìn)程發(fā)送關(guān)閉信號(hào)。當(dāng)然除了kill、還有killall,pkill

1.使用kill -l列出當(dāng)前系統(tǒng)所支持的信號(hào)

5ecd3ca4-a98f-11ef-93f3-92fbcf53809c.jpg

雖然linux支持信號(hào)很多,但是我們僅列出我們最為常用的3個(gè)信號(hào)

數(shù)字編號(hào) 信號(hào)含義 信號(hào)翻譯
1 SIGHUP 通常用來重新加載配置文件,重新讀取一次參數(shù)的配置文件 (類似 reload)
9 SIGKILL 強(qiáng)制殺死進(jìn)程(有狀態(tài)的服務(wù)(存磁盤的,如mysql)強(qiáng)制停止可能會(huì)導(dǎo)致下次起不來)
15 SIGTERM 終止進(jìn)程,默認(rèn)kill使用該信號(hào)

1.我們使用kill命令殺死指定PID的進(jìn)程。


#1.給 vsftpd 進(jìn)程發(fā)送信號(hào) 1,15
[root@lqz ~]# yum -y install vsftpd
[root@lqz ~]# systemctl start vsftpd
[root@lqz ~]# ps aux|grep vsftpd


#2.發(fā)送重載信號(hào),例如 vsftpd 的配置文件發(fā)生改變,希望重新加載
[root@lqz ~]# kill -1 9160


#3.發(fā)送停止信號(hào),當(dāng)然vsftpd 服務(wù)有停止的腳本 systemctl stop vsftpd
[root@lqz ~]# kill 9160


#4.發(fā)送強(qiáng)制停止信號(hào),當(dāng)無法停止服務(wù)時(shí),可強(qiáng)制終止信號(hào)
[root@lqz ~]# kill -9 9160

2.Linux系統(tǒng)中的killall、pkill命令用于殺死指定名字的進(jìn)程。

我們可以使用kill命令殺死指定進(jìn)程PID的進(jìn)程,如果要找到我們需要?dú)⑺赖倪M(jìn)程,我們還需要在之前使用ps等命令再配合grep來查找進(jìn)程,而killall、pkill把這兩個(gè)過程合二為一,是一個(gè)很好用的命令。


#例0、通過服務(wù)名稱殺掉進(jìn)程
[root@lqz ~]# vim nginx.conf   # 修改為worker_processes  10;
[root@lqz ~]# kill -1 26093    # 平滑reload nginx,可以看到很多ngixn進(jìn)程
[root@lqz ~]# kill 26121      # 殺掉一個(gè)子進(jìn)程,會(huì)迅速的被master啟動(dòng)起來,只是id號(hào)不一致了


[root@lqz ~]# kill  26093    # 主進(jìn)程,子進(jìn)程都會(huì)被殺掉 


#例1、通過服務(wù)名稱殺掉進(jìn)程
[root@lqz ~]# pkill nginx
[root@lqz ~]# killall nginx


#例2、使用pkill踢出從遠(yuǎn)程登錄到本機(jī)的用戶,終止pts/0上所有進(jìn)程, 并且bash也結(jié)束(用戶被強(qiáng)制退出)
[root@lqz ~]# pkill -9 bash


# 一般程序都會(huì)有自己的啟動(dòng)和停止
/usr/local/nginx/sbin/nginx -h

kill

向進(jìn)程發(fā)送信號(hào),實(shí)現(xiàn)對(duì)進(jìn)程的管理,每個(gè)信號(hào),對(duì)應(yīng)不同的值,對(duì)應(yīng)不同的含義,不區(qū)分大小寫

查詢可用信號(hào):kill -l

常用信號(hào):

1) sighub 不需要關(guān)閉程序,重新加載配置文件

2)sigint 終止進(jìn)程,相當(dāng)于ctrl+c

9) sigkill 強(qiáng)制殺死進(jìn)程

15)sigterm 終止正在運(yùn)行的進(jìn)程

18)sigcont 繼續(xù)運(yùn)行

19)sigstop 后臺(tái)休眠

按照pid: kill-n pid

按照名稱:killall -n name

按照名稱:pkill -n name

5.管理后臺(tái)進(jìn)程,作業(yè)管理

1.什么是后臺(tái)進(jìn)程

通常進(jìn)程都會(huì)在終端前臺(tái)運(yùn)行,一旦關(guān)閉終端,進(jìn)程也會(huì)隨著結(jié)束,那么此時(shí)我們就希望進(jìn)程能在后臺(tái)運(yùn)行,就是將在前臺(tái)運(yùn)行的進(jìn)程放入后臺(tái)運(yùn)行,這樣及時(shí)我們關(guān)閉了終端也不影響進(jìn)程的正常運(yùn)行。

2.我們?yōu)槭裁匆獙⑦M(jìn)程放入后臺(tái)運(yùn)行

比如:我們此前在國內(nèi)服務(wù)器往國外服務(wù)器傳輸大文件時(shí),由于網(wǎng)絡(luò)的問題需要傳輸很久,如果在傳輸?shù)倪^程中出現(xiàn)網(wǎng)絡(luò)抖動(dòng)或者不小心關(guān)閉了終端則會(huì)導(dǎo)致傳輸失敗,如果能將傳輸?shù)倪M(jìn)程放入后臺(tái),是不是就能解決此類問題了。

3.使用什么工具將進(jìn)程放入后臺(tái)

早期的時(shí)候大家都選擇使用&符號(hào)將進(jìn)程放入后臺(tái),然后在使用jobs、bg、fg等方式查看進(jìn)程狀態(tài),但太麻煩了。也不直觀,所以我們推薦使用screen。

1.jobs、bg、fg的使用(強(qiáng)烈不推薦,了解即可)

[root@lqz ~]# sleep 3000 & //運(yùn)行程序(時(shí)),讓其在后臺(tái)執(zhí)行 
[root@lqz ~]# sleep 4000 //^Z,將前臺(tái)的程序掛起(暫停)到后臺(tái) 
[2]+ Stopped sleep 4000
[root@lqz ~]# ps aux |grep sleep
[root@lqz ~]# jobs  //查看后臺(tái)作業(yè)
[1]- Running sleep 3000 & 
[2]+ Stopped sleep 4000


[root@lqz ~]# bg %2     //讓作業(yè) 2 在后臺(tái)運(yùn)行
[root@lqz ~]# fg %1     //將作業(yè) 1 調(diào)回到前臺(tái)
[root@lqz ~]# kill %1   //kill 1,終止 PID 為 1 的進(jìn)程


[root@lqz ~]# (while :; do date; sleep 2; done) & //進(jìn)程在后臺(tái)運(yùn)行,但輸出依然在當(dāng)前終端
[root@lqz ~]# (while :; do date; sleep 2; done) &>/dev/null &

2.screen的使用(強(qiáng)烈推薦,生產(chǎn)必用)


#1.安裝
[root@oldboy ~]# yum install screen -y


#2.開啟一個(gè)screen窗口,指定名稱
[root@oldboy ~]# screen -S wget_mysql


#3.在screen窗口中執(zhí)行任務(wù)即可
[root@oldboy ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz --no-check-certificate


#4.平滑的退出screen,但不會(huì)終止screen中的任務(wù)。注意: 如果使用exit 才算真的關(guān)閉screen窗口
ctrl+a+d


#5.查看當(dāng)前正在運(yùn)行的screen有哪些
[root@oldboy ~]# screen -list
There is a screen on:
    22058.wget_mysql    (Detached)
1 Socket in /var/run/screen/S-root.


#6.進(jìn)入正在運(yùn)行的screen
[root@oldboy ~]# screen -r wget_mysql
[root@oldboy ~]# screen -r 22058


#7 終止(ctrl+d),退出才能停止screen
exit

前臺(tái)作業(yè):一直占用終端的作業(yè)

后臺(tái)作業(yè):不占用當(dāng)前的終端

讓作業(yè)運(yùn)行于后臺(tái):

ctrl+z 對(duì)于啟動(dòng)中

command & 也會(huì)輸出到終端,還是會(huì)終端顯示

nohup ping www.baidu.com &

脫離終端:

nohup command &>/dev/null &(黑洞)

nohup ping www.baidu.com &>/dev/null &

screen

-list 查看所有的screen窗口
-r 進(jìn)入

6.進(jìn)程的優(yōu)先級(jí)[進(jìn)階]

1.什么優(yōu)先級(jí)

優(yōu)先級(jí)指的是優(yōu)先享受資源,比如排隊(duì)買票時(shí),軍人優(yōu)先、老人優(yōu)先。等等

2.為什么要有系統(tǒng)優(yōu)先級(jí)

舉個(gè)例子: 海底撈火鍋正常情況下響應(yīng)就特別快,那么當(dāng)節(jié)假日來臨時(shí)人員突增則會(huì)導(dǎo)致處理請(qǐng)求特別慢,那么假設(shè)我是海底撈VIP客戶(最高優(yōu)先級(jí)),無論門店多么繁忙,我都不用排隊(duì),海底撈人員會(huì)直接服務(wù)于我,滿足我的需求。至于沒有VIP的人員(較低優(yōu)先級(jí))則進(jìn)入排隊(duì)等待狀態(tài)。(PS: 至于等多久,那…..)

3.系統(tǒng)中如何給進(jìn)程配置優(yōu)先級(jí)?

在啟動(dòng)進(jìn)程時(shí),為不同的進(jìn)程使用不同的調(diào)度策略。nice 值越高: 表示優(yōu)先級(jí)越低,例如+19,該進(jìn)程容易將CPU 使用量讓給其他進(jìn)程。nice 值越低: 表示優(yōu)先級(jí)越高,例如-20,該進(jìn)程更不傾向于讓出CPU。

使用top或ps命令查看進(jìn)程的優(yōu)先級(jí)


#1.使用top可以查看nice優(yōu)先級(jí)。  
NI: 實(shí)際nice級(jí)別,默認(rèn)是0。 
PR: 顯示nice值,-20映射到0,+19映射到39


PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
1083 root      20   0  298628   2808   1544 S  0.3  0.1   2:49.28 vmtoolsd
5    root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:+


#2.使用ps查看進(jìn)程優(yōu)先級(jí)
[root@m01 ~]# ps axo command,nice |grep sshd|grep -v grep
/usr/sbin/sshd -D             0
sshd: root@pts/2              0

nice指定程序的優(yōu)先級(jí)。語法格式 nice -n 優(yōu)先級(jí)數(shù)字 進(jìn)程名稱


#1.開啟vim并且指定程序優(yōu)先級(jí)為-5
[root@m01 ~]# nice -n -5 vim &
[1] 98417


#2.查看該進(jìn)程的優(yōu)先級(jí)情況
[root@m01 ~]# ps axo pid,command,nice |grep 98417
 98417 vim    
                     -5

renice命令修改一個(gè)正在運(yùn)行的進(jìn)程優(yōu)先級(jí)。語法格式 renice -n 優(yōu)先級(jí)數(shù)字 進(jìn)程pid


#1.查看sshd進(jìn)程當(dāng)前的優(yōu)先級(jí)狀態(tài)
[root@m01 ~]# ps axo pid,command,nice |grep 折疊shd
 70840 sshd: root@pts/2              0
 98002 /usr/sbin/sshd -D             0
 
#2.調(diào)整sshd主進(jìn)程的優(yōu)先級(jí)
[root@m01 ~]# renice -n -20 98002
98002 (process ID) old priority 0, new priority -20


#3.調(diào)整之后記得退出終端
[root@m01 ~]# ps axo pid,command,nice |grep 折疊shd
 70840 sshd: root@pts/2              0
 98002 /usr/sbin/sshd -D           -20
[root@m01 ~]# exit


#4.當(dāng)再次登陸sshd服務(wù),會(huì)由主進(jìn)程fork子進(jìn)程(那么子進(jìn)程會(huì)繼承主進(jìn)程的優(yōu)先級(jí))
[root@m01 ~]# ps axo pid,command,nice |grep 折疊shd
 98002 /usr/sbin/sshd -D           -20
 98122 sshd: root@pts/0            -20

生產(chǎn)案例、Linux出現(xiàn)假死,怎么辦,又如何通過nice解決?

7.系統(tǒng)平均負(fù)載[進(jìn)階]

每次發(fā)現(xiàn)系統(tǒng)變慢時(shí),我們通常做的第一件事,就是執(zhí)行 top 或者 uptime 命令,來了解系統(tǒng)的負(fù)載情況。比如像下面這樣,我在命令行里輸入了 uptime 命令,系統(tǒng)也隨即給出了結(jié)果。

[root@m01 ~]# uptime
 04:49:26 up 2 days,  2:33,  2 users,  load average: 0.70, 0.04, 0.05
#我們已經(jīng)比較熟悉前面幾列,它們分別是當(dāng)前時(shí)間、系統(tǒng)運(yùn)行時(shí)間以及正在登錄用戶數(shù)。


# 而最后三個(gè)數(shù)字呢,依次則是過去 1 分鐘、5 分鐘、15 分鐘的平均負(fù)載(Load Average)。

1.什么是平均負(fù)載

平均負(fù)載不就是單位時(shí)間內(nèi)的 CPU 使用率嗎?上面的 0.70,就代表 CPU 使用率是 70%。其實(shí)上并…..那到底如何理解平均負(fù)載: 平均負(fù)載是指單位時(shí)間內(nèi),系統(tǒng)處于可運(yùn)行狀態(tài)和不可中斷狀態(tài)的平均進(jìn)程數(shù),也就是平均活躍進(jìn)程數(shù), PS: 平均負(fù)載與 CPU 使用率并沒有直接關(guān)系。

2.可運(yùn)行狀態(tài)和不可中斷狀態(tài)是什么

1.可運(yùn)行狀態(tài)進(jìn)程,是指正在使用 CPU 或者正在等待 CPU 的進(jìn)程,也就是我們ps 命令看到處于 R 狀態(tài)的進(jìn)程。

2.不可中斷進(jìn)程,(你做什么事情的時(shí)候是不能打斷的?) 系統(tǒng)中最常見的是等待硬件設(shè)備的 I/O 響應(yīng),也就是我們ps 命令中看到的 D 狀態(tài)(也稱為 Disk Sleep)的進(jìn)程。

例如: 當(dāng)一個(gè)進(jìn)程向磁盤讀寫數(shù)據(jù)時(shí),為了保證數(shù)據(jù)的一致性,在得到磁盤回復(fù)前,它是不能被其他進(jìn)程或者中斷打斷的,這個(gè)時(shí)候的進(jìn)程就處于不可中斷狀態(tài)。如果此時(shí)的進(jìn)程被打斷了,就容易出現(xiàn)磁盤數(shù)據(jù)與進(jìn)程數(shù)據(jù)不一致的問題。所以,不可中斷狀態(tài)實(shí)際上是系統(tǒng)對(duì)進(jìn)程和硬件設(shè)備的一種保護(hù)機(jī)制。

劃重點(diǎn),因此你可以簡單理解為,平均負(fù)載其實(shí)就是單位時(shí)間內(nèi)的活躍進(jìn)程數(shù)。

3.那平均負(fù)載為多少時(shí)合理

最理想的狀態(tài)是每個(gè) CPU 上都剛好運(yùn)行著一個(gè)進(jìn)程,這樣每個(gè) CPU 都得到了充分利用。所以在評(píng)判平均負(fù)載時(shí),首先你要知道系統(tǒng)有幾個(gè) CPU,這可以通過 top 命令獲取,或grep 'model name' /proc/cpuinfo

例1、假設(shè)現(xiàn)在在 4、2、1核的CPU上,如果平均負(fù)載為 2 時(shí),意味著什么呢?

Q1.在4 個(gè) CPU 的系統(tǒng)上,意味著 CPU 有 50% 的空閑。

Q2.在2 個(gè) CPU 的系統(tǒng)上,意味著所有的 CPU 都剛好被完全占用。

Q3.而1 個(gè) CPU 的系統(tǒng)上,則意味著有一半的進(jìn)程競爭不到 CPU。

PS: 平均負(fù)載有三個(gè)數(shù)值,我們應(yīng)該關(guān)注哪個(gè)呢?

實(shí)際上,我們都需要關(guān)注。就好比上海4月的天氣,如果只看晚上天氣,感覺在過冬天呢。但如果你結(jié)合了早上、中午、晚上三個(gè)時(shí)間點(diǎn)的溫度來看,基本就可以全方位了解這一天的天氣情況了。

1.如果 1 分鐘、5 分鐘、15 分鐘的三個(gè)值基本相同,或者相差不大,那就說明系統(tǒng)負(fù)載很平穩(wěn)。

2.但如果 1 分鐘的值遠(yuǎn)小于 15 分鐘的值,就說明系統(tǒng)最近 1 分鐘的負(fù)載在減少,而過去 15 分鐘內(nèi)卻有很大的負(fù)載。

3.反過來,如果 1 分鐘的值遠(yuǎn)大于 15 分鐘的值,就說明最近 1 分鐘的負(fù)載在增加,這種增加有可能只是臨時(shí)性的,也有可能還會(huì)持續(xù)上升,所以就需要持續(xù)觀察。

PS: 一旦 1 分鐘的平均負(fù)載接近或超過了 CPU 的個(gè)數(shù),就意味著系統(tǒng)正在發(fā)生過載的問題,這時(shí)就得分析問題,并要想辦法優(yōu)化了

在來看個(gè)例子3、假設(shè)我們?cè)谟?個(gè) CPU 系統(tǒng)上看到平均負(fù)載為 2.73,6.90,12.98

那么說明在過去1 分鐘內(nèi),系統(tǒng)有 136% 的超載 (2.73/2=136%)

而在過去 5 分鐘內(nèi),有 345% 的超載 (6.90/2=345%)

而在過去15 分鐘內(nèi),有 649% 的超載,(12.98/2=649%)

但從整體趨勢來看,系統(tǒng)的負(fù)載是在逐步的降低。

4.那么在實(shí)際生產(chǎn)環(huán)境中,平均負(fù)載多高時(shí),需要我們重點(diǎn)關(guān)注呢?

當(dāng)平均負(fù)載高于 CPU 數(shù)量 70% 的時(shí)候,你就應(yīng)該分析排查負(fù)載高的問題了。一旦負(fù)載過高,就可能導(dǎo)致進(jìn)程響應(yīng)變慢,進(jìn)而影響服務(wù)的正常功能。

但 70% 這個(gè)數(shù)字并不是絕對(duì)的,最推薦的方法,還是把系統(tǒng)的平均負(fù)載監(jiān)控起來,然后根據(jù)更多的歷史數(shù)據(jù),判斷負(fù)載的變化趨勢。當(dāng)發(fā)現(xiàn)負(fù)載有明顯升高趨勢時(shí),比如說負(fù)載翻倍了,你再去做分析和調(diào)查。

5.平均負(fù)載與 CPU 使用率有什么關(guān)系

在實(shí)際工作中,我們經(jīng)常容易把平均負(fù)載和 CPU 使用率混淆,所以在這里,我也做一個(gè)區(qū)分??赡苣銜?huì)疑惑,既然平均負(fù)載代表的是活躍進(jìn)程數(shù),那平均負(fù)載高了,不就意味著 CPU 使用率高嗎?

我們還是要回到平均負(fù)載的含義上來,平均負(fù)載是指單位時(shí)間內(nèi),處于可運(yùn)行狀態(tài)和不可中斷狀態(tài)的進(jìn)程數(shù)。所以,它不僅包括了正在使用 CPU 的進(jìn)程,還包括等待 CPU 和等待 I/O 的進(jìn)程。

而 CPU 使用率,是單位時(shí)間內(nèi) CPU 繁忙情況的統(tǒng)計(jì),跟平均負(fù)載并不一定完全對(duì)應(yīng)。比如:

CPU 密集型進(jìn)程,使用大量 CPU 會(huì)導(dǎo)致平均負(fù)載升高,此時(shí)這兩者是一致的;

I/O 密集型進(jìn)程,等待 I/O 也會(huì)導(dǎo)致平均負(fù)載升高,但 CPU 使用率不一定很高;

大量等待 CPU 的進(jìn)程調(diào)度也會(huì)導(dǎo)致平均負(fù)載升高,此時(shí)的 CPU 使用率也會(huì)比較高。

6.平均負(fù)載案例分析實(shí)戰(zhàn)

下面,我們以三個(gè)示例分別來看這三種情況,并用 stress、mpstat、pidstat 等工具,找出平均負(fù)載升高的根源。

stress 是 Linux 系統(tǒng)壓力測試工具,這里我們用作異常進(jìn)程模擬平均負(fù)載升高的場景。

mpstat 是多核 CPU 性能分析工具,用來實(shí)時(shí)查看每個(gè) CPU 的性能指標(biāo),以及所有 CPU 的平均指標(biāo)。

pidstat 是一個(gè)常用的進(jìn)程性能分析工具,用來實(shí)時(shí)查看進(jìn)程的 CPU、內(nèi)存、I/O 以及上下文切換等性能指標(biāo)。


#如果出現(xiàn)無法使用mpstat、pidstat命令查看%wait指標(biāo)建議更新下軟件包
wget http://pagesperso-orange.fr/sebastien.godard/sysstat-11.7.3-1.x86_64.rpm
rpm -Uvh sysstat-11.7.3-1.x86_64.rpm

場景一:CPU 密集型進(jìn)程

1.首先,我們?cè)诘谝粋€(gè)終端運(yùn)行 stress 命令,模擬一個(gè) CPU 使用率 100% 的場景:

[root@m01 ~]# stress --cpu 1 --timeout 600

2.接著,在第二個(gè)終端運(yùn)行 uptime 查看平均負(fù)載的變化情況


# 使用watch -d 參數(shù)表示高亮顯示變化的區(qū)域(注意負(fù)載會(huì)持續(xù)升高)
[root@m01 ~]# watch -d uptime
17:27:44 up 2 days,  3:11,  3 users,  load average: 1.10, 0.30, 0.17

3.最后,在第三個(gè)終端運(yùn)行 mpstat 查看 CPU 使用率的變化情況


# -P ALL 表示監(jiān)控所有 CPU,后面數(shù)字 5 表示間隔 5 秒后輸出一組數(shù)據(jù)
[root@m01 ~]# mpstat -P ALL 5
Linux 3.10.0-957.1.3.el7.x86_64 (m01)   2019年04月29日     _x86_64_    (1 CPU)


17時(shí)32分03秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
17時(shí)32分08秒  all   99.80    0.00    0.20    0.00    0.00    0.00    0.00    0.00    0.00    0.00
17時(shí)32分08秒    0   99.80    0.00    0.20    0.00    0.00    0.00    0.00    0.00    0.00    0.00


#單核CPU所以只有一個(gè)all和0

4.從終端二中可以看到,1 分鐘的平均負(fù)載會(huì)慢慢增加到 1.00,而從終端三中還可以看到,正好有一個(gè) CPU 的使用率為 100%,但它的 iowait 只有 0。這說明,平均負(fù)載的升高正是由于 CPU 使用率為 100% 。那么,到底是哪個(gè)進(jìn)程導(dǎo)致了 CPU 使用率為 100% 呢?可以使用 pidstat 來查詢


# 間隔 5 秒后輸出一組數(shù)據(jù)
[root@m01 ~]# pidstat -u 5 1
Linux 3.10.0-957.1.3.el7.x86_64 (m01)   2019年04月29日     _x86_64_(1 CPU)


17時(shí)33分21秒   UID       PID    %usr %system  %guest    %CPU   CPU  Command
17時(shí)33分26秒     0    110019   98.80    0.00    0.00   98.80     0  stress


#從這里可以明顯看到,stress 進(jìn)程的 CPU 使用率為 100%。

場景二:I/O 密集型進(jìn)程

1.首先還是運(yùn)行 stress 命令,但這次模擬 I/O 壓力,即不停地執(zhí)行 sync

[root@m01 ~]# stress  --io 1 --timeout 600s

2.然后在第二個(gè)終端運(yùn)行 uptime 查看平均負(fù)載的變化情況:

[root@m01 ~]# watch -d uptime
18:43:51 up 2 days,  4:27,  3 users,  load average: 1.12, 0.65, 0.00

3.最后第三個(gè)終端運(yùn)行 mpstat 查看 CPU 使用率的變化情況:


# 顯示所有 CPU 的指標(biāo),并在間隔 5 秒輸出一組數(shù)據(jù)
[root@m01 ~]# mpstat -P ALL 5
Linux 3.10.0-693.2.2.el7.x86_64 (bgx.com)   2019年05月07日     _x86_64_    (1 CPU)


14時(shí)20分07秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
14時(shí)20分12秒  all    0.20    0.00   82.45   17.35    0.00    0.00    0.00    0.00    0.00    0.00
14時(shí)20分12秒    0    0.20    0.00   82.45   17.35    0.00    0.00    0.00    0.00    0.00    0.00


#會(huì)發(fā)現(xiàn)cpu的與內(nèi)核打交道的sys占用非常高

4.那么到底是哪個(gè)進(jìn)程,導(dǎo)致 iowait 這么高呢?我們還是用 pidstat 來查詢


# 間隔 5 秒后輸出一組數(shù)據(jù),-u 表示 CPU 指標(biāo)
[root@m01 ~]# pidstat -u 5 1
Linux 3.10.0-957.1.3.el7.x86_64 (m01)   2019年04月29日     _x86_64_(1 CPU)
18時(shí)29分37秒   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
18時(shí)29分42秒     0    127259   32.60    0.20    0.00   67.20   32.80     0  stress
18時(shí)29分42秒     0    127261    4.60   28.20    0.00   67.20   32.80     0  stress
18時(shí)29分42秒     0    127262    4.20   28.60    0.00   67.20   32.80     0  stress


#可以發(fā)現(xiàn),還是 stress 進(jìn)程導(dǎo)致的。

場景三:大量進(jìn)程的場景

當(dāng)系統(tǒng)中運(yùn)行進(jìn)程超出 CPU 運(yùn)行能力時(shí),就會(huì)出現(xiàn)等待 CPU 的進(jìn)程。

1.首先,我們還是使用 stress,但這次模擬的是 4 個(gè)進(jìn)程

[root@m01 ~]# stress -c 4 --timeout 600

2.由于系統(tǒng)只有 1 個(gè) CPU,明顯比 4 個(gè)進(jìn)程要少得多,因而,系統(tǒng)的 CPU 處于嚴(yán)重過載狀態(tài)

[root@m01 ~]# watch -d uptime
19:11:07 up 2 days,  4:45,  3 users,  load average: 4.65, 2.65, 4.65

3.然后,再運(yùn)行 pidstat 來看一下進(jìn)程的情況:


# 間隔 5 秒后輸出一組數(shù)據(jù)
[root@m01 ~]# pidstat -u 5 1
平均時(shí)間:   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
平均時(shí)間:     0    130290   24.55    0.00    0.00   75.25   24.55     -  stress
平均時(shí)間:     0    130291   24.95    0.00    0.00   75.25   24.95     -  stress
平均時(shí)間:     0    130292   24.95    0.00    0.00   75.25   24.95     -  stress
平均時(shí)間:     0    130293   24.75    0.00    0.00   74.65   24.75     -  stress

可以看出,4 個(gè)進(jìn)程在爭搶 1 個(gè) CPU,每個(gè)進(jìn)程等待 CPU 的時(shí)間(也就是代碼塊中的 %wait 列)高達(dá) 75%。這些超出 CPU 計(jì)算能力的進(jìn)程,最終導(dǎo)致 CPU 過載。

分析完這三個(gè)案例,我再來歸納一下平均負(fù)載與CPU

平均負(fù)載提供了一個(gè)快速查看系統(tǒng)整體性能的手段,反映了整體的負(fù)載情況。但只看平均負(fù)載本身,我們并不能直接發(fā)現(xiàn),到底是哪里出現(xiàn)了瓶頸。所以,在理解平均負(fù)載時(shí),也要注意:

平均負(fù)載高有可能是 CPU 密集型進(jìn)程導(dǎo)致的;

平均負(fù)載高并不一定代表 CPU 使用率高,還有可能是 I/O 更繁忙了;

當(dāng)發(fā)現(xiàn)負(fù)載高的時(shí)候,你可以使用 mpstat、pidstat 等工具,輔助分析負(fù)載的來源

安全

防火墻

綠盟

深信服

啟明星辰

飛塔

思科

華為

華三

(網(wǎng)關(guān)處的硬件防火墻)


4表5鏈
iptables -L 查看 防火墻策略
iptables -F 清空 防火墻
systemctl disable firewalld 開機(jī)并啟動(dòng)
systemctl stop firewalled

selinux

美國國家安全局

配置文件 /etc/selinux/config

SELINUX=disabled # 關(guān)掉防火墻

setenforce 0 臨時(shí)生效

getenforce 查看selinux的狀態(tài)

紅帽認(rèn)證

rhcea

rhce

rhca

思考認(rèn)證:

ccnp

ccie

ccia

orcal認(rèn)證:

ocp

鏈接:https://www.cnblogs.com/coderxueshan/p/17950646

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3117

    瀏覽量

    75122
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3825

    瀏覽量

    82690
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4894

    瀏覽量

    70449
  • 進(jìn)程
    +關(guān)注

    關(guān)注

    0

    文章

    207

    瀏覽量

    14254

原文標(biāo)題:安全

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    進(jìn)程和線程的區(qū)別

    系統(tǒng)對(duì)應(yīng)用的并發(fā)性。進(jìn)程和線程的區(qū)別在于:簡而言之,一個(gè)程序至少有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少有一個(gè)線程. 線程的劃分尺度小于
    發(fā)表于 12-12 09:28

    進(jìn)程和線程區(qū)別

    `1、進(jìn)程和線程的區(qū)別和聯(lián)系進(jìn)程(process)和線程(thread)是操作系統(tǒng)的基本概念,但是它們比較抽象,不容易掌握。計(jì)算機(jī)的核心是CPU,它承擔(dān)了所有的計(jì)算任務(wù)。它就像一座工廠,時(shí)刻
    發(fā)表于 11-30 14:06

    怎么區(qū)別進(jìn)程和子進(jìn)程?

    怎么區(qū)別進(jìn)程和子進(jìn)程? 各位大神
    發(fā)表于 01-11 17:15

    線程、進(jìn)程、程序區(qū)別

    程序中同時(shí)運(yùn)行多個(gè)線程完成不同的工作,稱為多線程。線程和進(jìn)程區(qū)別在于,子進(jìn)程和父進(jìn)程有不同的代碼和數(shù)據(jù)空間,而多個(gè)線程則共享數(shù)據(jù)空間,每個(gè)
    發(fā)表于 03-23 13:09

    線程,進(jìn)程程序有什么區(qū)別

    我對(duì)于線程,進(jìn)程的概念一直都是比較模糊,最近整理了一下??偨Y(jié)起來就是,線程是進(jìn)程的一部分,進(jìn)程程序的一部分。
    發(fā)表于 08-05 08:17

    進(jìn)程和線程得區(qū)別在哪?

    1、進(jìn)程和線程區(qū)別:1. 線程是程序執(zhí)行的最小單位,而進(jìn)程是操作系統(tǒng)分配資源的最小單位;2. 一個(gè)進(jìn)程由一個(gè)或多個(gè)線程組成,線程是一個(gè)
    發(fā)表于 07-07 06:53

    進(jìn)程是什么?進(jìn)程程序區(qū)別在哪

    進(jìn)程是什么?進(jìn)程程序區(qū)別在哪?進(jìn)程的狀態(tài)有哪幾種?
    發(fā)表于 12-23 06:27

    線程與進(jìn)程有哪些區(qū)別

    線程和進(jìn)程區(qū)別在于,子進(jìn)程和父進(jìn)程有不同的代碼和數(shù)據(jù)空間,而多個(gè)線程則共享數(shù)據(jù)空間,每個(gè)線程有自己的執(zhí)行堆棧和程序計(jì)數(shù)器為其執(zhí)行上下文。多
    發(fā)表于 07-20 07:48 ?2085次閱讀
    線程與<b class='flag-5'>進(jìn)程</b>有哪些<b class='flag-5'>區(qū)別</b>?

    如何創(chuàng)建一個(gè)進(jìn)程 程序進(jìn)程區(qū)別

    那么,程序進(jìn)程(process)的區(qū)別又是什么呢?
    的頭像 發(fā)表于 10-06 11:53 ?6816次閱讀

    進(jìn)程和線程分別是什么,它們的區(qū)別是什么

    程和線程的區(qū)別是什么?有什么關(guān)系?相信大家對(duì)于進(jìn)程都很熟悉了吧,而線程相對(duì)于進(jìn)程而言,是一個(gè)更加接近于執(zhí)行體的概念,為了讓大家更好的了解進(jìn)程和線程,下面給大家介紹
    發(fā)表于 03-24 17:26 ?9511次閱讀
    <b class='flag-5'>進(jìn)程</b>和線程分別是什么,它們的<b class='flag-5'>區(qū)別</b>是什么

    Linux開發(fā)概念:程序進(jìn)程區(qū)別 進(jìn)程之間交互

    正在執(zhí)行的進(jìn)程, 由于等待某個(gè)事件而無法執(zhí)行時(shí), 便被操作系統(tǒng)剝奪了cpu的操作時(shí)間, 這是就是阻塞態(tài) 引起阻塞的原因多種, 例如: 等待I/O操作, 更高優(yōu)先級(jí)的任務(wù)搶走了CPU權(quán)限等.
    發(fā)表于 12-01 13:52 ?1085次閱讀

    進(jìn)程切換與線程切換有啥區(qū)別

    注意這個(gè)題目問的是進(jìn)程**切換**與線程**切換**的區(qū)別,不是進(jìn)程與線程的區(qū)別。當(dāng)然這里的**線程指的是同一個(gè)進(jìn)程中的線程**。 這
    的頭像 發(fā)表于 02-24 14:16 ?772次閱讀

    如何區(qū)分程序進(jìn)程

    到目前為止,你肯定已經(jīng)見過很多次這兩個(gè)詞了,“程序”“進(jìn)程”。那程序進(jìn)程到底有什么區(qū)別呢。 程序
    的頭像 發(fā)表于 02-24 14:17 ?1709次閱讀
    如何區(qū)分<b class='flag-5'>程序</b>與<b class='flag-5'>進(jìn)程</b>

    程序進(jìn)程和線程的區(qū)別

    什么是進(jìn)程 1、進(jìn)程和線程的區(qū)別 進(jìn)程是指正在運(yùn)行的程序,它擁有獨(dú)立的內(nèi)存空間和系統(tǒng)資源,不同進(jìn)程
    的頭像 發(fā)表于 06-22 11:39 ?961次閱讀
    <b class='flag-5'>程序</b>中<b class='flag-5'>進(jìn)程</b>和線程的<b class='flag-5'>區(qū)別</b>

    mcu線程和進(jìn)程區(qū)別是什么

    MCU線程和進(jìn)程是嵌入式系統(tǒng)中常見的并行執(zhí)行的概念,它們之間有許多區(qū)別,包括線程與進(jìn)程的定義、資源管理、通信機(jī)制、執(zhí)行方式等等。下面將詳細(xì)介紹MCU線程和進(jìn)程
    的頭像 發(fā)表于 01-04 10:45 ?1154次閱讀