成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

linux查看中斷命令 linux排查命令

Linux下通過(guò)哪個(gè)命令怎么查看中斷

與Linux設(shè)備驅(qū)動(dòng)中中斷處理相關(guān)的首先是申請(qǐng)與釋放IRQ的API request_irq()和free_irq()。

南山ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:18982081108(備注:SSL證書(shū)合作)期待與您的合作!

C++是一種面向?qū)ο蟮挠?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,由美國(guó)ATT貝爾實(shí)驗(yàn)室的本賈尼·斯特勞斯特盧普博士在20世紀(jì)80年代初期發(fā)明并實(shí)現(xiàn),最初它被稱(chēng)作“C with Classes”(包含類(lèi)的C語(yǔ)言)。

它是一種靜態(tài)數(shù)據(jù)類(lèi)型檢查的、支持多重編程范式的通用程序設(shè)計(jì)語(yǔ)言,支持過(guò)程化程序設(shè)計(jì)、數(shù)據(jù)抽象、面向?qū)ο蟪绦蛟O(shè)計(jì)、泛型程序設(shè)計(jì)等多種程序設(shè)計(jì)風(fēng)格。

在C基礎(chǔ)上,一九八三年又由貝爾實(shí)驗(yàn)室的Bjarne Strou-strup推出了C++,C++進(jìn)一步擴(kuò)充和完善了C語(yǔ)言,成為一種面向 對(duì)象的程序設(shè)計(jì)語(yǔ)言。

C++目前流行的編譯器最新版本是Borland C++ 4.5,Symantec C++ 6.1,和Microsoft Visual C++ 2012。

4-5 Linux 中斷進(jìn)程 --- kill (kill -2 實(shí)驗(yàn))

1、信號(hào):傳遞給 Liunx 的事件發(fā)生通知機(jī)制。

2、kill -l:顯示所有信號(hào)。一共有62個(gè)信號(hào)(沒(méi)有32、33)。

3、常用的信號(hào)有:

kill -2 PID —— 正常中斷進(jìn)程(Ctrl + C 一樣)。程序在結(jié)束之前,能夠保存相關(guān)數(shù)據(jù),然后再退出。

kill -9 PID —— 強(qiáng)制殺死一個(gè)進(jìn)程。

kill -15 PID —— 正常方式終止一個(gè)程序。中斷進(jìn)程時(shí)應(yīng)首先用 -15,以便于其能夠預(yù)先清理臨時(shí)文件和釋放資源。-9?作為最后手段,應(yīng)對(duì)那些失控的進(jìn)程。

--------------------------------------------------------------------------------

1)、kill -2 中斷后臺(tái)運(yùn)行的進(jìn)程。

紅色下劃線(xiàn):sleep 10000 —— 后臺(tái)運(yùn)行延時(shí) 10000 秒的命令,進(jìn)程 ID 為1516。

ps -j —— 以作業(yè)格式列出進(jìn)程信息,可以看到 1516 sleep 命令的進(jìn)程。

(PID:進(jìn)程 ID、PGID:線(xiàn)程組 ID、SID:會(huì)話(huà) ID、TTY:進(jìn)程運(yùn)行的終端,標(biāo)識(shí)那個(gè)終端控制。(pts遠(yuǎn)程終端、tty系統(tǒng)終端)、TIME:進(jìn)程運(yùn)行的時(shí)間 和 CMD:命令的名稱(chēng)和參數(shù))。

jobs -l —— 列出后臺(tái)運(yùn)行的命令,可以看到 1516 sleep 命令正在后臺(tái)運(yùn)行。

黃色下劃線(xiàn):kill -2 1516 —— 中斷1516 進(jìn)程。執(zhí)行成功后,按 Enter 回車(chē)系統(tǒng)會(huì)給出提示Interrupt 提示(中斷進(jìn)程)。

藍(lán)色方框:ps -j 已查詢(xún)不到?1516 sleep 的進(jìn)程。jobs -l 也沒(méi)有后臺(tái)運(yùn)行的命令。

2)、kill -2 配合 fg 查看中斷掛起的進(jìn)程。

紅色下劃線(xiàn):前臺(tái)執(zhí)行 sleep 10000 (延時(shí)10000秒)后 ctrl + z 掛起。

黃色下劃線(xiàn):ps -j 查看進(jìn)程,可以看到 1344 sleep 進(jìn)程。jobs -l 查看后臺(tái)進(jìn)程 1344 的狀態(tài)是stopped 暫停狀態(tài)。

藍(lán)色下劃線(xiàn):kill -2 1344 中斷 1344 進(jìn)程。

綠色下劃線(xiàn):ps -j 查看進(jìn)程,仍有 1344 sleep 進(jìn)程。jobs -l 查看后臺(tái)進(jìn)程 1344 的狀態(tài)是stopped 暫停狀態(tài)。

暫時(shí)這樣看,好像 kill -2 并沒(méi)有起到中斷進(jìn)程的作用。

然而,用 fg 把后臺(tái)的命令調(diào)至前臺(tái)運(yùn)行時(shí)可以發(fā)現(xiàn) 1344 sleep 已經(jīng)被中斷。

紅色下劃線(xiàn):fg 把已經(jīng)執(zhí)行了 kill -2, 狀態(tài)為 stopped 的1344 sleep命令調(diào)至前臺(tái)執(zhí)行。系統(tǒng)也反饋已經(jīng)調(diào)至前臺(tái)執(zhí)行。(此時(shí),實(shí)際上已經(jīng)執(zhí)行了 kill -2 中斷了進(jìn)程)

黃色方框:ps -j 已經(jīng)沒(méi)有了 1344 sleep 的進(jìn)程。

藍(lán)色方框:jobs -l 后臺(tái)也沒(méi)有指令。

3)、kill -2 配合 bg 查看中斷掛起的進(jìn)程。

通過(guò)上面的思路,kill -2 配合 bg 實(shí)驗(yàn)看看效果。同樣的首先掛起一個(gè)命令,狀態(tài)為 stopped 暫停。然后用 bg 命令恢復(fù)執(zhí)行。

前面的步驟都是一樣,掛起一個(gè)命令。通過(guò) ps 和 jobs 查看進(jìn)程和后臺(tái)確認(rèn)有 1379 的進(jìn)程,狀態(tài)為 stopped 暫停。然后執(zhí)行 kill-2 中斷進(jìn)程,再次通過(guò)ps 和 jobs 查看進(jìn)程和后臺(tái)命令。確認(rèn)狀態(tài)為 stopped? 1379 的進(jìn)程仍然存在。

此時(shí),用 bg 恢復(fù)運(yùn)行掛起的命令,系統(tǒng)提示 sleep 命令已恢復(fù)在后臺(tái)運(yùn)行。然而通過(guò) ps -j 查看進(jìn)程會(huì)發(fā)現(xiàn) sleep 已經(jīng)被中斷。jobs -l 查看后臺(tái)也沒(méi)有了運(yùn)行的 sleep 命令了。

從實(shí)驗(yàn)上看:

1、后臺(tái)命令運(yùn)行時(shí)(Running),執(zhí)行 kill -2 可以中斷進(jìn)程。

2、掛起命令,處于暫停狀態(tài)時(shí)(Stopped),執(zhí)行 kill -2 后通過(guò) ps 還可以查詢(xún)到進(jìn)程, jobs還可以查詢(xún)到后臺(tái)命令,狀態(tài)仍然是 Stopped 暫停狀態(tài)。實(shí)際上,用 fg 把暫停的后臺(tái)進(jìn)程調(diào)至前臺(tái)運(yùn)行時(shí),系統(tǒng)反饋 sleep 命令調(diào)至前臺(tái)運(yùn)行。而再用 ps 查詢(xún)不到進(jìn)程,已經(jīng)中斷了進(jìn)程。用 jobs 已經(jīng)查詢(xún)不到后臺(tái)命令。

3、掛起命令,處于暫停狀態(tài)時(shí)(Stopped),執(zhí)行 kill -2 后通過(guò) ps 還可以查詢(xún)到進(jìn)程, jobs還可以查詢(xún)到后臺(tái)命令,狀態(tài)仍然是?Stopped 暫停狀態(tài)。用 bg 把暫停的后臺(tái)命令恢復(fù)運(yùn)行時(shí),系統(tǒng)反饋 sleep 命令在后臺(tái)運(yùn)行。再用 ps 查詢(xún)進(jìn)程已經(jīng)中斷,用 jobs 已經(jīng)查詢(xún)不到后臺(tái)命令。

【性能】Linux上網(wǎng)絡(luò)狀態(tài)和軟硬中斷動(dòng)態(tài)查看

1. 找系統(tǒng)類(lèi)的錯(cuò)誤, dmesg | tail

2. 直接的網(wǎng)絡(luò)錯(cuò)誤 sar -n ETCP 1 或者 sar -n EDEV 1

3.查看網(wǎng)絡(luò)狀態(tài), netstat -s 或者 watch -d netstat -s

4.網(wǎng)絡(luò)狀態(tài)的統(tǒng)計(jì) ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}'

#? netstat -s

#??watch -d netstat -s

#? netstat -s -u

# watch -d netstat -s -u

# cat /proc/softirqs

#?watch?-d?"/bin/cat?/proc/softirqs?|?/usr/bin/awk?'NR?==?1{printf?\"%-15s?%-15s?%-15s?%-15s?%-15s\n\",\"?\",\$1,\$2,\$3,\$4};?NR??1{printf?\"%-15s?%-15s?%-15s?%-15s?%-15s\n\",\$1,\$2,\$3,\$4,\$5}'"

# watch -d? ?"cat /proc/interrupts"

Linux內(nèi)核中斷之中斷申請(qǐng)接口

本文基于 RockPI 4A 單板Linux4.4內(nèi)核介紹中斷申請(qǐng)的常用接口函數(shù)。

1、文件

2、定義

說(shuō)明:

1)、 irq :要申請(qǐng)的中斷號(hào),可通過(guò) platform_get_irq() 獲取,見(jiàn)“Linux內(nèi)核中斷之獲取中斷號(hào)”。

2)、 handler :中斷處理函數(shù),發(fā)生中斷時(shí),先處理中斷處理函數(shù),然后返回 IRQ_WAKE_THREAD 喚醒中斷處理線(xiàn)程。中斷處理函數(shù)盡可能簡(jiǎn)單。

中斷處理函數(shù)定義: typedef irqreturn_t (*irq_handler_t)(int, void *);

中斷返回值如下:

3)、 thread_fn :中斷處理線(xiàn)程,該參數(shù)可為NULL。類(lèi)似于中斷處理函數(shù)的下半部分。

4)、 irqflags :中斷類(lèi)型標(biāo)志。

定義文件: include/linux/interrupt.h ,內(nèi)容如下:

5)、 devname :中斷名稱(chēng),可使用 cat /proc/interrupts 命令查看。

6)、 dev_id :設(shè)備ID,該值唯一。

在使用共享中斷時(shí)(即設(shè)置 IRQF_SHARED ),必須傳入 dev_id ,在中斷處理和釋放函數(shù)中都會(huì)使用該參數(shù)。

注:

1、 request_threaded_irq() 函數(shù)可替代 request_irq 加 tasklet 或 workqueue 的方式。

2、對(duì)應(yīng)的中斷釋放函數(shù)為: void free_irq(unsigned int, void *) ,需要和中斷申請(qǐng)函數(shù)成對(duì)出現(xiàn)。

1、文件

2、定義

說(shuō)明:

1)、 __must_check :指調(diào)用函數(shù)一定要處理函數(shù)的返回值,否則編譯器會(huì)給出警告。

2)、 request_irq() 函數(shù)本質(zhì)上是中斷處理線(xiàn)程 thread_fn 為空的 request_threaded_irq() 函數(shù)。

注 :

對(duì)應(yīng)的中斷釋放函數(shù)為: void free_irq(unsigned int, void *) ,需要和中斷申請(qǐng)函數(shù)成對(duì)出現(xiàn)。

1、文件

2、定義

說(shuō)明 :

devm_request_threaded_irq() 本質(zhì)上還是使用 request_threaded_irq() 函數(shù)實(shí)現(xiàn)中斷申請(qǐng)。

兩者區(qū)別:

1)多了一個(gè) dev 參數(shù);

2)在設(shè)備驅(qū)動(dòng)卸載時(shí),中斷會(huì)自動(dòng)釋放;

3)如果想單獨(dú)釋放中斷,可使用 void devm_free_irq(struct device *dev, unsigned int irq, void *dev_id) 函數(shù)。

1、文件

2、定義

devm_request_irq() 函數(shù)本質(zhì)上是中斷處理線(xiàn)程 thread_fn 為空的 devm_request_threaded_irq() 函數(shù)。

1、獲取中斷號(hào)

2、申請(qǐng)中斷

3、中斷處理函數(shù)

4、中斷處理線(xiàn)程

5、查看中斷

分享題目:linux查看中斷命令 linux排查命令
URL標(biāo)題:http://jinyejixie.com/article40/hpdieo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、虛擬主機(jī)、App開(kāi)發(fā)網(wǎng)站排名、自適應(yīng)網(wǎng)站ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管
永城市| 双鸭山市| 高阳县| 淮滨县| 乐业县| 正安县| 连山| 延川县| 宝坻区| 和政县| 洛南县| 雅安市| 当涂县| 雅江县| 沂源县| 麻阳| 孟州市| 磐石市| 陆河县| 长兴县| 乐至县| 阜新| 清徐县| 临朐县| 南澳县| 阿瓦提县| 鹿邑县| 屯昌县| 墨脱县| 谢通门县| 长治市| 东丰县| 遵化市| 娱乐| 洛扎县| 疏勒县| 冕宁县| 阳信县| 溧水县| 霍城县| 平江县|