国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

14 - 信號優(yōu)先級與安全性

這篇具有很好參考價(jià)值的文章主要介紹了14 - 信號優(yōu)先級與安全性。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

---- 整理自狄泰軟件唐佐林老師課程

查看所有文章鏈接:(更新中)Linux系統(tǒng)編程訓(xùn)練營 - 目錄

1. 信號優(yōu)先級

1.1 問題

  • 對于 同一個(gè)進(jìn)程,如果存在 兩個(gè)不同的未決 實(shí)時(shí)信號(可靠信號),那么先處理誰?

1.2 信號優(yōu)先級的概念

  • 信號的本質(zhì)是一種 軟中斷(中斷有優(yōu)先級,信號也有優(yōu)先級)
  • 對于 未決實(shí)時(shí)信號
    • 對于同一個(gè)未決實(shí)時(shí)信號,按照發(fā)送先后順序遞送給進(jìn)程
    • 對于不同的未決實(shí)時(shí)信號,信號值越小優(yōu)先級越高(優(yōu)先遞達(dá)目標(biāo)進(jìn)程)
  • 不可靠信號與可靠信號同時(shí)未決
    • 嚴(yán)格意義上,沒有明確規(guī)定優(yōu)先級
    • 實(shí)際上,Linux優(yōu)先遞送不可靠信號
  • 多個(gè)不可靠信號同時(shí)未決,優(yōu)先遞送誰?
    • 優(yōu)先遞送 硬件相關(guān)信號:SIGSEGV、SIGBUS、SIGILL、SIGTRAP、SIGFPE、SIGSYS
    • 優(yōu)先遞送 信號值小的不可靠信號

1.3 信號優(yōu)先級實(shí)驗(yàn)設(shè)計(jì)

  • 目標(biāo):驗(yàn)證信號的優(yōu)先級
  • 場景:不可靠VS不可靠;不可靠VS可靠;可靠VS可靠
  • 方案:對目標(biāo)進(jìn)程發(fā)送N次“無”序信號,驗(yàn)證信號遞達(dá)進(jìn)程的先后順序
  • 預(yù)備函數(shù):
int sigaddset(sigset_t* set, int signum);
int sigfillset(sigset_t* set);
int sigemptyset(sigset_t* set);
int sigprocmask(int how, const sigset_t set, sigset_toldset);
  • 需要思考的問題:
  • 如何使得多個(gè)信號同時(shí)未決,且以優(yōu)先級方式遞達(dá)進(jìn)程?
  • 如何記錄和對比信號的遞達(dá)次序及發(fā)送次序?
  • 對于實(shí)驗(yàn)中涉及的不可靠信號,是否特殊考慮?
  • ……

1.3.1 發(fā)送端

14 - 信號優(yōu)先級與安全性,Linux系統(tǒng)編程訓(xùn)練營,Linux系統(tǒng)編程,c語言,linux,信號安全性,信號優(yōu)先級,進(jìn)程

1.3.2 接收端

14 - 信號優(yōu)先級與安全性,Linux系統(tǒng)編程訓(xùn)練營,Linux系統(tǒng)編程,c語言,linux,信號安全性,信號優(yōu)先級,進(jìn)程
14 - 信號優(yōu)先級與安全性,Linux系統(tǒng)編程訓(xùn)練營,Linux系統(tǒng)編程,c語言,linux,信號安全性,信號優(yōu)先級,進(jìn)程

1.3.3 編程實(shí)驗(yàn):信號優(yōu)先級實(shí)驗(yàn)

【參看鏈接】:14 - 信號優(yōu)先級與安全性 / 00可靠信號優(yōu)先級實(shí)驗(yàn)

14 - 信號優(yōu)先級與安全性,Linux系統(tǒng)編程訓(xùn)練營,Linux系統(tǒng)編程,c語言,linux,信號安全性,信號優(yōu)先級,進(jìn)程
14 - 信號優(yōu)先級與安全性,Linux系統(tǒng)編程訓(xùn)練營,Linux系統(tǒng)編程,c語言,linux,信號安全性,信號優(yōu)先級,進(jìn)程

【參看鏈接】:14 - 信號優(yōu)先級與安全性 / 01所有信號優(yōu)先級實(shí)驗(yàn)

14 - 信號優(yōu)先級與安全性,Linux系統(tǒng)編程訓(xùn)練營,Linux系統(tǒng)編程,c語言,linux,信號安全性,信號優(yōu)先級,進(jìn)程
14 - 信號優(yōu)先級與安全性,Linux系統(tǒng)編程訓(xùn)練營,Linux系統(tǒng)編程,c語言,linux,信號安全性,信號優(yōu)先級,進(jìn)程
14 - 信號優(yōu)先級與安全性,Linux系統(tǒng)編程訓(xùn)練營,Linux系統(tǒng)編程,c語言,linux,信號安全性,信號優(yōu)先級,進(jìn)程

2. 信號安全性

2.1 再論信號處理

14 - 信號優(yōu)先級與安全性,Linux系統(tǒng)編程訓(xùn)練營,Linux系統(tǒng)編程,c語言,linux,信號安全性,信號優(yōu)先級,進(jìn)程

2.2 信號安全性概念

  • 什么是安全性?
    • 程序能夠正確且無意外的按照預(yù)期方式執(zhí)行
  • 信號處理的不確定性
    • 什么時(shí)候信號遞達(dá)是不確定的 ==> 主程序被中斷的位置是不確定的
  • 當(dāng)信號遞達(dá),轉(zhuǎn)而執(zhí)行信號處理函數(shù)時(shí),不可重入的函數(shù)不能調(diào)用
    • 不可重入函數(shù)函數(shù)不能由超過一個(gè)任務(wù)(線程 )所共享,除非能確保函數(shù)的互斥(或者使用信號量,或者在代碼的關(guān)鍵部分禁用中斷)

2.3 編程實(shí)驗(yàn):信號安全性問題

  • 下面的程序輸出什么?為什么?

14 - 信號優(yōu)先級與安全性,Linux系統(tǒng)編程訓(xùn)練營,Linux系統(tǒng)編程,c語言,linux,信號安全性,信號優(yōu)先級,進(jìn)程

【參看鏈接】:14 - 信號優(yōu)先級與安全性 / 02信號安全性實(shí)驗(yàn)/sigex.c

14 - 信號優(yōu)先級與安全性,Linux系統(tǒng)編程訓(xùn)練營,Linux系統(tǒng)編程,c語言,linux,信號安全性,信號優(yōu)先級,進(jìn)程14 - 信號優(yōu)先級與安全性,Linux系統(tǒng)編程訓(xùn)練營,Linux系統(tǒng)編程,c語言,linux,信號安全性,信號優(yōu)先級,進(jìn)程

2.4 深入信號安全性

  • 不要在信號處理函數(shù)中調(diào)用不可重入函數(shù)(如:使用了全局變量的函數(shù))
  • 不要調(diào)用函數(shù)中存在臨界區(qū)的函數(shù)(可能產(chǎn)生競爭導(dǎo)致死鎖)

14 - 信號優(yōu)先級與安全性,Linux系統(tǒng)編程訓(xùn)練營,Linux系統(tǒng)編程,c語言,linux,信號安全性,信號優(yōu)先級,進(jìn)程

  • 不要調(diào)用malloc()和free()函數(shù)
  • 不要調(diào)用標(biāo)準(zhǔn)I/O函數(shù),如:printf()函數(shù)(此前的實(shí)驗(yàn)中使用printf是不安全的)
  • ……

2.5 問題

  • 如何知道哪些函數(shù)是安全的?
  • man 7 signal-safety

14 - 信號優(yōu)先級與安全性,Linux系統(tǒng)編程訓(xùn)練營,Linux系統(tǒng)編程,c語言,linux,信號安全性,信號優(yōu)先級,進(jìn)程文章來源地址http://www.zghlxwxcb.cn/news/detail-536507.html

2.6 思考

  • 如何編寫信號安全的應(yīng)用程序?

到了這里,關(guān)于14 - 信號優(yōu)先級與安全性的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Linux】進(jìn)程優(yōu)先級

    【Linux】進(jìn)程優(yōu)先級

    Hello,大家好。本文我們要來介紹的是有關(guān)Linux下【進(jìn)程優(yōu)先級】,首先我們要了解的是其基本概念 在 Linux基礎(chǔ)篇之權(quán)限 一文中我們有談到過什么是權(quán)限,在Linux下有權(quán)限和無權(quán)限的區(qū)別在哪里。那現(xiàn)在的話我們就要來對比一下【權(quán)限】和【優(yōu)先級】這兩個(gè)概念 權(quán)限 : 表示

    2024年02月11日
    瀏覽(25)
  • Linux——進(jìn)程優(yōu)先級

    Linux——進(jìn)程優(yōu)先級

    1.什么是優(yōu)先級? ????????優(yōu)先級和權(quán)限息息相關(guān)。權(quán)限的含義為能還是不能做這件事。而優(yōu)先級則表示:你有權(quán)限去做,只不過是先去做還是后去做這件事罷了。 2.為什么會存在優(yōu)先級? ????????優(yōu)先級表明了狼多肉少的理念,舉個(gè)例子:在日常生活中我們進(jìn)行排隊(duì)

    2024年02月06日
    瀏覽(26)
  • 圖解Linux進(jìn)程優(yōu)先級

    圖解Linux進(jìn)程優(yōu)先級

    目錄 1.什么是進(jìn)程優(yōu)先級? 2.進(jìn)程優(yōu)先級原理 3.查看進(jìn)程優(yōu)先級 4.修改進(jìn)程優(yōu)先級 4.1 setpriority函數(shù)原型 4.2 getpriority函數(shù)原型 4.3 sched_setscheduler函數(shù)原型 4.4 sched_getscheduler函數(shù)原型 4.5 sched_setparam函數(shù)原型 4.6 sched_getparam函數(shù)原型 Linux進(jìn)程的優(yōu)先級是用來確定在多個(gè)進(jìn)程同時(shí)運(yùn)行

    2024年02月05日
    瀏覽(24)
  • 【Linux進(jìn)程篇-----進(jìn)程優(yōu)先級】

    【Linux進(jìn)程篇-----進(jìn)程優(yōu)先級】

    1.基本概念 cpu 資源分配的先后順序,就是指進(jìn)程的優(yōu)先權(quán)(priority) .優(yōu)先權(quán)高的進(jìn)程有優(yōu)先執(zhí)行權(quán)利。配置進(jìn)程優(yōu)先權(quán)對多任務(wù)環(huán)境的 Linux 很有用,可以改善系統(tǒng)性能。還可以把進(jìn)程運(yùn)行到指定的 CPU 上,這樣一來,把不重要的進(jìn)程安排到某個(gè) CPU,可以大大改善系統(tǒng)整體性能

    2024年02月08日
    瀏覽(21)
  • Linux--進(jìn)程狀態(tài)與優(yōu)先級

    Linux--進(jìn)程狀態(tài)與優(yōu)先級

    進(jìn)程指的是程序在執(zhí)行過程中的活動(dòng)。進(jìn)程是操作系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位 。 進(jìn)程可以看作是程序的一次執(zhí)行實(shí)體,它包含了程序代碼、數(shù)據(jù)以及相關(guān)的執(zhí)行上下文信息。操作系統(tǒng)通過創(chuàng)建、調(diào)度和管理多個(gè)進(jìn)程來實(shí)現(xiàn)對計(jì)算機(jī)系統(tǒng)資源的有效利用。 每個(gè)進(jìn)程都

    2024年02月01日
    瀏覽(26)
  • Linux進(jìn)程狀態(tài)及優(yōu)先級

    Linux進(jìn)程狀態(tài)及優(yōu)先級

    本文已收錄至《Linux知識與編程》專欄! 作者:ARMCSKGT 演示環(huán)境:CentOS 7 操作系統(tǒng)想管理好進(jìn)程并不簡單,對于Linux系統(tǒng)將進(jìn)程分為不同的狀態(tài)進(jìn)行管理;例如運(yùn)行,阻塞,休眠狀態(tài)等等,每一種狀態(tài)都有不同的效果,這樣才能發(fā)揮他的全部功效,且進(jìn)程之間也有優(yōu)先級,本

    2024年02月03日
    瀏覽(17)
  • 【Linux】進(jìn)程優(yōu)先級 + 環(huán)境變量

    【Linux】進(jìn)程優(yōu)先級 + 環(huán)境變量

    在學(xué)完進(jìn)程狀態(tài)之后,本章我們將來學(xué)習(xí)一下環(huán)境變量,還有進(jìn)程優(yōu)先級等??????…… 本文實(shí)驗(yàn)系統(tǒng): CentOS 7.6 ~ 優(yōu)先級是權(quán)限嗎? 在之前我們講解過什么是權(quán)限:?? 傳送門 我們這里講的優(yōu)先級并不是權(quán)限,那么優(yōu)先級到底是什么呢? 如果我們說權(quán)限是能不能的問題的

    2024年02月05日
    瀏覽(28)
  • 【Linux】環(huán)境變量和進(jìn)程優(yōu)先級

    【Linux】環(huán)境變量和進(jìn)程優(yōu)先級

    目錄 環(huán)境變量 什么是環(huán)境變量 系統(tǒng)結(jié)構(gòu) 系統(tǒng)接口 深度解析 命令行參數(shù) 進(jìn)程優(yōu)先級 優(yōu)先級查看 優(yōu)先級修改 進(jìn)程間的概念 ??平時(shí)在使用? Linux? 的時(shí)候,總會使用? ls? 、 pwd? 這類的命令,我們也都知道這些命令也是? C? 語言寫的,但是為什么我們自己寫的可執(zhí)行程序需

    2023年04月27日
    瀏覽(20)
  • linux c多線程優(yōu)先級

    在 Linux 系統(tǒng)中,可以使用 pthread_setschedparam 函數(shù)來設(shè)置線程的優(yōu)先級。該函數(shù)需要傳入一個(gè)指向 pthread_t 類型的線程 ID,以及一個(gè)指向 struct sched_param 類型的結(jié)構(gòu)體對象。 struct sched_param 結(jié)構(gòu)體包含了線程的優(yōu)先級信息。 下面是一個(gè)示例代碼,用于將線程的優(yōu)先級設(shè)置為最高級

    2024年02月01日
    瀏覽(30)
  • Kubernetes 污點(diǎn)、容忍策略、優(yōu)先級與搶占、Pod安全

    污點(diǎn)使結(jié)點(diǎn)與pod產(chǎn)生排斥與標(biāo)簽相反 污點(diǎn)策略是通過嵌入合在鍵值對上的污點(diǎn)標(biāo)簽進(jìn)行聲明 污點(diǎn)標(biāo)簽必須綁定在鍵值對上,格式為:key=value:[污點(diǎn)標(biāo)簽] taint翻譯就是污點(diǎn)的意思 查看污點(diǎn)標(biāo)簽 ? ? ? ? kubectl describe nodes [結(jié)點(diǎn)名] 設(shè)置污點(diǎn)標(biāo)簽 ? ? ? ? kubectl taint node [結(jié)點(diǎn)名字

    2024年02月05日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包